Regelmäßige Messung + UART

Gast #861219
Lesenswert?
• ▲
▼
Hallo zusammen,

mein Atmega8 soll ca. alle 100 µSekunden einen Porteingang prüfen und 
dann per incrementellem counter zählen wie lange der Port diesen Zustand 
behält. Bei einem Wechsel des Zustands soll er dann von 0 anfangen zu 
zählen. Dies würde ich in einem ISR des Timers2 machen (Timer, 
Prescaller, Compare, etc. sind bereits auf die MHz des Quarzes und die 
Zeit abgestimmt).

Nun zu meiner Frage, nach jedem Zustandwechsel soll er ebenfalls per 
UART den Zählerstand ausgeben. Sollte die Ausgabe auch in dem ISR 
erfolgen oder besser im main?

Oder wie würdet Ihr das lösen? Andere Aufgaben erledigt der Atmega8 im 
Moment nicht, also könnte man evtl. alles per polling im main erledigen, 
jedoch wäre dann der 100 µSekunden Interval nicht so einfach zu 
bewerkstelligen.

Danke für Anregungen.

VG
Gast #861278
Lesenswert?
• ▲
▼
dann würde ich einen zweiten timer benutzen, in dessen isr geprüft
wird ob es was zusenden gibt und ggf dann auch sendet!
bedenke aber auch, das das senden über den uard zeit frißt.
100µs -> 10khz selbst wenn du nur ein byte sendest sind das mit start
und stop bit in der summe 10 bit. dh du mußt mit viel viel mehr als
100kbaud senden um die andere isr nicht zu behindern!

gruß pico
Gast #861299
Lesenswert?
• ▲
▼
@pico: würde es nicht mehr sinn machen im main per uart zu senden? 
dadurch könnte die timer2-isr immer zeitgenau messen und sogar bei 
bedarf das main inklusive uart unterbrechen. uart ist mit 115200 kbaud 
angbunden und es wird maximal 1 byte pro andzahl der zustandswechsel 
übertragen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren