Hallo, wenn ich das Richtig verstanden habe, dann sind die PCint0-7 Pins ein PCint0 softwaremässig, und springen immer zur selben Unterfunktion. Meine frage jetzt, kann man in der Unterfunktion abrufen, welcher PCint der auslöser WAR, oder muss man den Wert vorher irgendwie gespeichert haben, und dann in der Unterfunktion NOCHMALS den Wert des Pins abfragen? Ich benutze Bascom.
Du musst den Status der Pins speichern von denen der PCMSK aktiv ist. In der PCINT ISR musst du dann schauen wo sich was geändert hat.
Timmo H. schrieb: > Du musst den Status der Pins speichern von denen der PCMSK aktiv ist. In > der PCINT ISR musst du dann schauen wo sich was geändert hat. Und darauf vorbereitet sein, daß es auch mal vorkommt, daß sich nichts geändert hat, wenn nämlich der Puls am Eingang zu kurz war. Ich persönlich halte die PCINT-Geschichte für eine ziemliche Fehlkonstruktion, für viele Sachen nicht wirklich zu gebrauchen. Es hätte noch ein Register dazugehört, welches alle Änderungen zwischen zwei Abfragen speichert und dessen Auslesen es auch gleichzeitig zurücksetzt. Ohne dieses Register sind die Anwendungsmöglichkeiten doch arg eingeschränkt. Entweder man beschränkt sich auf einen aktiven Pin pro PCINT oder man sorgt mit externer Hardware für definierte Signaleigenschaften oder man hat eine Anwendung, bei der es keine Rolle spielt, an welchem Pin genau was gewackelt hat. Letzteres ist eher selten, mir ist nur eine derartige Anwendung bekannt (Aufwachen durch eine beliebige Taste einer Keymatrix).
c-hater schrieb: > Ohne dieses Register sind die Anwendungsmöglichkeiten doch > arg eingeschränkt. allerdings... c-hater schrieb: > oder man > sorgt mit externer Hardware für definierte Signaleigenschaften wie würde sowas aussehen?
frager schrieb: > c-hater schrieb: >> oder man >> sorgt mit externer Hardware für definierte Signaleigenschaften > > wie würde sowas aussehen? Das hängt natürlich von der konkreten Anwendung ab. Möglich wären z.B. Monoflops zur Impulsverlängerung oder D-Flipflops zur Impulsspeicherung. Letzteres würde im Prinzip näherungsweise das fehlende PCINT-Register ersetzen, bräuchte aber einen zusätzlichen Pin für den Reset des "Registers".
c-hater schrieb: > Ich persönlich halte die PCINT-Geschichte für eine ziemliche > Fehlkonstruktion Stimmt. Die einzig praktikable Anwendung ist nur das Aufwachen aus dem Power-Down. Danach macht man alles wie üblich, z.B. Tasten entprellen im Timerinterrupt. Etwas besser ist es, wennn man je PCINTx nur einen Pin enabled. Dann weiß man wenigstens den Pin, aber immer noch nicht die Flanke.
c-hater schrieb: > D-Flipflop klingt gut. Kann man den FlipFlop so ansehen, dass dieser wenn an einem Pin high anliegt, es praktisch gespeichert wird, auch wenn die Stromversorgun nicht mehr anliegt? Sozusagen ein Nichtflüchtiger Speicher?
frager schrieb: > klingt gut. Nö. Erstmal mußt Du festlegen, was Du überhaupt machen willst. Erst danach kannst Du eine Lösung suchen. Es gibt keine Lösung, die für alles paßt.
c-hater schrieb: > D-Flipflops zur Impulsspeicherung Peter Dannegger schrieb: > Nö. > Erstmal mußt Du festlegen, was Du überhaupt machen willst. Einen Impuls dauerhaft speichern!
Peter Dannegger schrieb: > Gehts nicht noch unkonkreter? Beitrag "Not or + AND gatter" Brauch ich bei einem D-Flipflop diese Clock leitung und die Data leitung? Ich benötige für eine Impulsspeicherung nur, SET, Reset und Output oder? Brauche ich Reset, wenn ich dieses Signal nur einmal benötige? Wird der zustand nun auch ohne Strom gespeichert?
Eigentlich brauchst Du nicht ein D-Flipflop, sondern ein RS Flipflop: http://www.elektronik-kompendium.de/sites/dig/0209302.htm Selbstverständlich verlieren sie ihren Zustand ohne Strom. Wenn Du etwas brauchst, was ganz ohne Strom den Zustand speichert, brauchst Du etwas, das nicht elektrisch funktioniert. Zum Beispiel ein bistabiles Relais. Das wiederum funktioniert nur bei ausreichend langen Impulsen. Dann kannst Du auch wieder mit dem Interrupt arbeiten und den Zustand ggf im E²prom speichern. Du schuldest uns immer noch eine Beschreibung des konkreten Anwendungsfalls.
Wusel Dusel schrieb: > Du schuldest uns immer noch eine Beschreibung des konkreten > Anwendungsfalls. Ein parallel Eprom das fast Komplett mit "00" beschrieben ist und nur an einer bestimmten stelle mit "FF" gibt an seinem Data-Output eine 1 zurück. Dies allerdings nur sehr kurz, zu kurz für ein Mikrocontroller der damit arbeiten soll. Wenn jetzt zugriff auf diese Zelle war, soll am Mikrocontroller entweder immer oder solange damit der Mikrocontroller dies mitbekommt. Ist eigentlich egal, da ich nicht wissen möchte, wie oft zugegriffen wurde. Dieser zugriff ist nur einmal wichtig. Erst wenn das Gerät neu gestartet wird, soll alles von vorne beginnen. Zudem sollte das alles platzsparend sein, also eine 1 IC oder 1 bauteillösung ist vorzuziehen.
frager schrieb: > Ein parallel Eprom das fast Komplett mit "00" beschrieben ist und nur an > einer bestimmten stelle mit "FF" gibt an seinem Data-Output eine 1 > zurück. Wenn es ein paralleles EPROM ist, hat es ja mehrere Outputs. Wenn es tatsächlich nur um die Unterscheidung zwischen 00 und FF ginge, würden die Fähigkeiten der PCINT-Hardware dafür ja völlig ausreichen. Du hast also entweder dein Problem nicht wirklich verstanden oder du hast es falsch dargestellt. Tatsächlich glaube ich, daß du derselbe Typ bist, der schon mehrere Threads zu dem Thema "Beobachtung eines EPROM" losgetreten hat und der in diesen Threads insbesondere gezeigt hat, daß er absolut keine Ahnung hat, daran auch nicht wirklich was andern möchte, aber trotzdem ein Ergebnis haben will. Sowas werde ich keinesfalls unterstützen. Kurz: Mach's dir selbst!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.