Forum: Mikrocontroller und Digitale Elektronik Regelmäßige Messung + UART


von UART (Gast)


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

von pico (Gast)


Lesenswert?

mit welcher frequenz des zustandwechsel ist zu rechnen?

gruß pico

von UART (Gast)


Lesenswert?

@pico: maximal ein Zustandswechsel kann während der messphase von 100µS 
auftreten.

von pico (Gast)


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

von UART (Gast)


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.

von pico (Gast)


Lesenswert?

kanste machen, aber nur wenn der µc nichts anders tun soll
als zeitmessen und daten senden!

gruß pico

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
Noch kein Account? Hier anmelden.