Gast
#44026
Hallo, ich bekomme ein PWM-Signal an einem PORT geliefert, der gelesen werden soll. Highs und Lows des PWM-Signals unterscheiden sich in der Länge der Highpegel. Das Erkennen der Low-High-Flanke kann ich in einer Schleife realisieren. Wie ermittle ich die Länge der Highpegel? -------------------------------------------------------------- .def timer1 =r17 ;*** Programm MAIN MAIN: MAIN_LOOP: sbis PINA, 0x00 ;Springe, wenn 0. Bit des PORTA 1 ist rjmp MAIN_LOOP ;Endloschleife rcall PAKET rjmp MAIN_LOOP ;Endloschleife ;*** Unterprogramm PAKET PAKET: ;Start der Zeitmessg clr timer1 ;Register clr auf 0 setzen PAKET_LOOP: inc timer1 sbis PINA, 0x00 ;Springe, wenn 0. Bit des PORTA 1 ist ;Stop der Zeitmessg, Laenge des Highpegels ermitteln ... rjmp PAKET_LOOP -------------------------------------------------------------- MfG Wolfram Hubert