PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 8535 und ICP



wheelchair
05.03.2006, 14:34
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

linux_80
05.03.2006, 15:57
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.

wheelchair
05.03.2006, 16:37
meinst du damit nur statt

TCNT1L = 0x00 und TCNT1H = 0x00
-> TCNT1 = 0x0000 zu schreiben?

linux_80
05.03.2006, 17:06
Genau,
und beim lesen auch
Intvar = TCNT1;

SprinterSB
05.03.2006, 23:08
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).

wheelchair
06.03.2006, 10:57
@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

wheelchair
06.03.2006, 17:04
habe statt icp -> int0 verwendet und nun funktioniert die schaltung!

danke für die antworten!!

mfg