Gast
#357609
Tag, hab ein Signal gebastelt für den Atmega88 in C. http://www.mikrocontroller.net/forum/read-1-381874.html#new Dieses Signal besitzt einen dauerhaften Highpegel mit 9 unterschiedlich langen Lowpegel Impulsen. Die Lowpegel Impulse varieren zwischen 10 und 20µs. Zwischen diesen Lowpegelimpulsen besitzt der Highpegelimpuls eine Länge von 160µs. Nach diesem Signal kommt eine Pause von ca. 60ms bevor das Signal wieder von vorn beginnt. Das Signal wird mit einem Timer und dem Compare Interrupt erzeugt. Dabei wird die entsprechende Länge des Impulses als Wert in ein Array geschrieben, der OCRxA auf diesen Wert gesetzt und bei jedem Interrupt der neue Wert übergeben. So enstehen die verschiedenen Impulslängen. (Siehe Anhang und noch mal vielen Dank an Karl Heinz Buchegger für die Hilfe) Nun geht es darum, dass ich bei einem empfangenen Zeichen über UART neue Werte ins Array schreiben will. Das klappt auch! Aber nur solange die Werte für die hinteren Lowimpulse größer sind als der erste Wert für den ersten Lowimpuls. Nur dann bekomm ich ein sauberes und richtiges Signal. Sobald irgendein mittlerer Wert kleiner ist, als der Wert für den ersten Lowimpuls, bekommen ich ein verschobenes Signal, dass heißt die Impulslängen paasen nicht mehr.... Hat jemand eine Idee woran dass liegen kann?