Hallo zusammen, ich möchte einen DMX-Empfänger zum ansteuern von LEDs bauen. Die Hardware ist aufgebaut und schon überprüft. Mit der Software habe ich angefangen und bin jetzt auf ein Problem gestoßen. Ich verwende den internen Oszillator mit 8MHz. DMX benötigt 250 kHz. Der µC empfängt Daten, bringt aber das FERR-Bit im RCSTA-Register. Der Baudrategenerator hat die Länge 16 Bit und das Highbaudrate-Bit ist gesetzt. Somit muss ich eine 7 nach der Berechnung in das Register schreiben. Ich habe das Application Note von Microchip genommen und den Teil kopiert. Ich vermute ein Fehler bei den ganzen Takten, dass ich irgendwas übersehen habe. Den Code habe ich als Datei angehängt. Ich bin für alle Tipps Dankbar.
So, habe jetzt ein bisschen mit dem Timer0 gespielt. Ich benutze den 8 MHz internen Oszillator. Nachdem ich einen Teiler von 256 im Timer 0 Controllregister eingegeben habe und 31250 im Timer0 eingestellt habe hat alle 16 Sekunden der Interrupt zugeschlagen. Dann habe ich die PLL aktiviert und nun hat der Interrupt natürlich alle 4 Sekunden zugeschlagen. Nachdem ich den Teiler im Timer 0 Controllregister auf 64 gestellt hatte, schlug der Interrupt jede Sekunde zu. Die Formel lautet doch normalerweise (8MHz/(250kHz*4))-1 Oder heißt es (2MHz/(250kHz*4))-1
Also direkt Daten per RS232 zu übermitteln funktioniert. Es muss mit 8 MHz gerechnet werden. Nur mit Freestyler funktioniert es nicht, das die Daten richtig empfangen werden. Hat jemand eine Idee? Ich habe den überarbeiteten Quelltext angehängt.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.