Hallo, eine kurze Frage, da ich es selber Testbedingungen nicht zuverlässig reproduzieren kann: Für Levelinterrupts steht im Datenblatt der MEGA164 Serie, dass der Pegel eine gewisse Zeit anliegen muss, um den Interrupt Vektor zu aktivieren. Wie sieht es bei PinChange Interrupts aus? Ich möchte, dass ein Vibrationssensor den AVR weckt, jedoch kann es bauartbedingt bei den Sensoren (SW-18020) zu sehr kurzen Spikes kommen, die ich jedoch auch gerne zuverlässig abarbeiten würde... Findet man irgendwo Daten wie lange der Pegelwechsel mindestens andauern muss? Danke für Informationen --Daniel
DerDaniel schrieb: > Findet man irgendwo Daten wie lange der Pegelwechsel mindestens andauern > muss? Im Datenblatt unter External Interrupts - Pin Change Interrupt Timing mfg.
Hallo, sorry, ich habe gerade Tomaten auf den Augen und finde es nicht. X-( Könntest du mir die Seite.zahl im Datenblatt geben? Danke
DerDaniel schrieb: > sorry, ich habe gerade Tomaten auf den Augen und finde es nicht. X-( > Könntest du mir die Seite.zahl im Datenblatt geben? Ja, ich sehe gerade, dass du da lange suchen kannst. Das ist im Datenblatt vom 164 & Co. zumindest an der Stelle gar nicht drin. Guck mal ins Datenblatt vom 48..328. Da steht das an oben angegebener Stelle. Das Timing ist für alle AVR gleich. mfg.
:
Bearbeitet durch User
Zu den rein Hardwarebedingten Zeiten kommen noch ein Push (akt. Adresse) und ein Sprung-Sprung (in die Sprungtabelle) hinzu. Manchmal sind noch Register zu sichern, praktisch immer das Status-Flag. Am Ende der Routine müssen die Register geputzt werden. Ein iret kann auch nicht schaden. Und das alles ohne Deine Sequenzen.
Das interessiert jedoch alles nicht, da der Interrupt zu diesen Zeiten schon ausgelöst wurde ;)
> zu sehr kurzen Spikes kommen, die ich jedoch auch > gerne zuverlässig abarbeiten würde Mittels eines externen Latches aufgebaut aus einem schnellen Transistor könntest du in den Bereich von 1-2 Picosekunden kommen. Wenn's noch kürzer sein soll, wird es langsam aufwendig. Wie kurz darf's denn sein?
asdfasd schrieb: > Wie kurz darf's denn sein? "sehr", steht doch gleich im Eröffnungspost. DerDaniel schrieb: > ... sehr kurzen Spikes ...
DerDaniel schrieb: > jedoch kann es bauartbedingt bei den > Sensoren (SW-18020) zu sehr kurzen Spikes kommen, die ich jedoch auch > gerne zuverlässig abarbeiten würde... Unter Spikes versteht man in der Regel Störungen, die man unterdrücken möchte (Entprellung). Wenn es aber Nutzsignale sind, nenne sie besser kurze Impulse. Und noch besser, sage wie kurz sie minimal sein dürfen, z.B. >=10µs.
Thomas Eckmann schrieb: > Guck mal ins Datenblatt vom 48..328. http://www.mikrocontroller.net/attachment/251828/timing.png Für mich als Laie;-) Muss das Signal nun 4 Takte bis PCIF=1 anliegen oder reicht 1 Takt bis pci_sync?
Thomas Forster schrieb: > Muss das Signal nun 4 Takte bis PCIF=1 anliegen oder reicht 1 Takt bis > pci_sync? 1 Takt. Allerdings wirds beim Power-Down komplizierter. Da muß man erst warten, bis der Taktgenerator wieder angeschwungen ist, und bei einem Quarz kann das gerne mal 10ms dauern oder mehr. Ein 32kHz Quarz kann sogar mehrere Sekunden benötigten. Ob der Takt bei kürzeren Impulsen wieder stoppt oder nur der Interrupt nicht kommt, konnte ich nicht im Datenblatt finden.
:
Bearbeitet durch User
Danke für die bisherigen Antworten! Es handelt sich um einen Vibrationssensor, bei dem um ein stehenden Kontakt eine Feder aufgebaut ist, die bei Erschütterung oder Schwingung gegen den stehenden Kontakt kommt und einen Kurzschluss erzeugt. Bei sehr leichten Berührungen hatte ich es bereits mehrmals, dass das Oszi ausgelöst hat und ich gerade so noch einen Low Pegel auf dem Schirm erkennen konnte. (10us/DIV) Der Graphik entnehme ich zwar nicht ab wo der uC wieder geweckt wird, aber nach der Schaltung muss der Pegelwechsel mindestens bis zum ersten Takt nach dem aufwachen anhalten, damit das D-FF bei pcint_syn den Pegelwechsel übernimmt (so es denn ein D-FF ist). Also ist die Startzeit der Taktquelle der Flaschenhals. >Mittels eines externen Latches aufgebaut aus einem schnellen Transistor >könntest du in den Bereich von 1-2 Picosekunden kommen. Ein externes Latches wollte ich eigentlich umgehen, ist wieder ein Bauteil mehr. >Für mich als Laie;-) >Muss das Signal nun 4 Takte bis PCIF=1 anliegen oder reicht 1 Takt bis >pci_sync? Nach einem Takt bekommt das erste FF den neuen Pegel und das XOR wird L. Daher gibt es garnicht mehr als einen Takt den ein PC andauern kann. Siehst du auch bei /pcint_in_(0)/. Ab da ist ist der PCINT erfasst, muss jedoch noch paar mal durchgereicht werden um endgültig anzuschlagen.
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.