Signallänge korrekt vermessen

Gast #2121126
Lesenswert?

Hallo, ich habe eine technische Schwierigkeit. Ich möchte mit Atmega48 4 
Signallänge jeweils an 4-Pins(PD0-PD0) messen lassen. Bei Pegelwechsel 
wird Interuppt  auslösen. Die Zeit wird mit 16-Bit-Timer1 ausgemessen. 
Ich möchte den Messwert  aus OCR1AH und OCR1AL korrekt auslesen. Wenn 
ich  den Messwert direkt aus aus OCR1AH und OCR1AL auslese, dann könnte 
es zum falschen Ergebnis führen. Weil man liest erst  OCR1AH und dann 
OCR1AL oder umgekehrt. Dabei gebt ein Problem: Der Übergang von 8-Bit zu 
9bit.
 Um das zu vermeiden soll man die zwei Register gleichzeitig ablesen.

Gibt es eine vernünftige Lösung?
Gast #2121149
Lesenswert?

Hi

>Tut mir leid , der Messwert steht in TCNT1 Register nicht in  OCR1A

Macht nichts:

To ensure that both the high and low bytes are read and written
simultaneously when the CPU accesses these registers, the access is
performed using an 8-bit temporary High Byte Register (TEMP).
This temporary register is shared by all the other 16-bit registers.

MfG Spess

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