Hi ich muss ein interrupt schreiben das immer nach einer bestimmten Zeit eine Prozedur aufruft um zwei radencoder abzutasten das hab ich mal so verwirklicht: outp((1<<WGM01)|(1<<CS02)|(1<<CS00),TCCR0); outp((1<<OCIE0),TIMSK); outp(121,OCR0); Mein Problem ist dass ich im Interrupt nur auf den einen Radencoder zugreifen kann aber der andere nicht abgefragt werden kann woran kann das denn liegen oder wie müsste mein Code richtig heißen
Warum legst du die beiden Radencoder nicht einfach auf INT0 bzw. INT1. Bei Pegelwechsel bedingt durch die Radencoder wird automatisch ein Interrupt ausgelöst. In der ISR muss dann nur eine entsprechende Variable inkrementiert werden. Finde ich besser, als Polling mittels eines Timers. Gruss, Alex
Hi! >Mein Problem ist dass ich im Interrupt nur auf den einen Radencoder >zugreifen kann aber der andere nicht abgefragt werden kann woran kann >das denn liegen oder wie müsste mein Code richtig heißen Das Versteh ich nicht so ganz. Wo sind denn die Encoder angeschlossen? Btw: outp/inp etc. sind deprecated, siehe: http://www.nongnu.org/avr-libc/user-manual/deprecated.html Gruß, Patrick...
"Mein Problem ist dass ich im Interrupt nur auf den einen Radencoder..." Woher soll denn das einer wissen ? Ohne den Code zu sehen, kann das keiner. Hast Du auch beide angeschlossen ? Peter
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.