Hi
ehm.. so ähnlich geht mein ELV Modul, aber ich würde da nix mit timer
machen, sondern einfach auf die Flanke des Clocks den Seriellen Wert
auslesen. Ausserdem ist das nicht UART Tauglich wie Karkheinz Reiner
schon sagt.
hier z.B. ein Codeschnipsel um eine LOW-HIGH Flanke abzufragen
;LH Flanke abfrage
LHabfrage1:
sbic PINC , 1
rjmp LHabfrage1
LHabfrage2:
sbis PINC , 1
rjmp LHabfrage2
dann speicher ich bei mir (es sind 24 Bit) das ganze in 3 Registern ab
byteout:
cpi r20 , 8
brsh j24to8_1
lsl r21
in r24 , PINC
andi r24 , 0b00000001
or r21, r24
inc r20
rjmp bitout_out
j24to8_1:
cpi r20 , 16
brsh j24to8_2
lsl r22
in r24 , PINC
andi r24 , 0b00000001
or r22, r24
inc r20
rjmp bitout_out
j24to8_2:
cpi r20 , 24
brsh bitout_out
lsl r23
in r24 , PINC
andi r24 , 0b00000001
or r23, r24
inc r20
bitout_out:
ret
und wandel diesen BCD Codierten Zahlenwert in ASCII mit
BCD2ASCII:
andi temp1,0b00001111
ori temp1,0b00110000
ret
also so ähnlich würd ich das bei dir auch machen :)
Zwischendrin sind noch ein paar Zeilen, wo ich z.B. den zu wandelden
Register Wert nach Temp1 verschieb... das hab ich jetzt mal nicht
dazugeschrieben.
Wenn du willst, kann ich dir aber gerne den kompletten Code schicken
Gruss
Darko