Hallo,
mir fällt nur auf, das beim schreiben der 16Bit Register die Reihenfolge nicht stimmt.
Du kannst auch direkt dem TCNT1 den 16 Bit wert zusweisen, den Rest macht der Compiler damit die Reihenfolge passt.
Obs das schon war kann ich nicht sagen.
hallo
habe folgendes problem:
habe eine schaltung, auf dessen ausgangssignal (fallende flanke) der
atmel at90s8535 reagieren soll.
Fallende Flanke ICES1=0, muss ich ICES1 extra auf 0 setzen?, sollte
doch ohne setzen auch stimmen!
wenn das ausgangssignal der schaltung eine fallende flanke ausgibt und
das prog auch auf die fallende flanke programmiert ist -> prog hängt
sich auf.
wenn ich aber beim prog die steigende flanke verwende funktioniert es
-> falsche messung
mfg
Hallo,
mir fällt nur auf, das beim schreiben der 16Bit Register die Reihenfolge nicht stimmt.
Du kannst auch direkt dem TCNT1 den 16 Bit wert zusweisen, den Rest macht der Compiler damit die Reihenfolge passt.
Obs das schon war kann ich nicht sagen.
meinst du damit nur statt
TCNT1L = 0x00 und TCNT1H = 0x00
-> TCNT1 = 0x0000 zu schreiben?
Genau,
und beim lesen auch
Intvar = TCNT1;
Das sieht etwas verworren aus...
Das ICR1 solltest du in der ISR sichert, und ein Flag setzen, daß die Messung fertig ist, ebenso wie in OCR1B (dient wohl als Timeout).
Disclaimer: none. Sue me.
@SprinterSB
was meinst du damit genau?
für das ICP verwende ich
SIGNAL(SIG_INPUT_CAPTURE1)
Ist es besser ISR zu verwenden? wie sieht das aus?
ISR(??_vect)
ja, ocr1b dient dazu, dass die messung abgeschlossen ist
habe statt icp -> int0 verwendet und nun funktioniert die schaltung!
danke für die antworten!!
mfg
Lesezeichen