Hallo Ich versuche wie so viele eine USART Schnittstelle zwischen PC und uC einzurichten. Hierzu habe ich einen AtMega644p auf einer Testplatine mit einem 20MHz Crystal angeschlossen. Der Programmer des STK500 ist über eine ISP Schnittstelle mit dem AtMega auf der Testplatine verbunden. Die CPU läuft mit 5V. In dem Testprogramm habe ich den Takt auf 20 000 000 Hz eingestellt. In einer Schleife läuft nun _delay_ms(1000); und ibi(PORTA,0); (invertiere Bit). Die Diode blinkt zwar aber wesendlich langsamer als mit einer Sekunde. Die Fuse bits habe ich mit dem STK500 Automatisch geschrieben: Ext. Crystal Osc. 8.0- MHz; Star-up time: 16CK + 4,1 ms Achso der USART ist so Programmiert, dass er mir das emfangende Zeichen zurück sendet. Eine LED geht aus sobald ein Zeichen empfangen wurde. Die LED geht nur aus wenn ich mit HTerm 2 Zeichen sende. Dann bekomme ich aber meistens 2 00 00 zurück egal was ich sende.
Doku zu _delay_ms gelesen? Mit 1s Delay und toggeln wirst Du außerdem höchstens 0,5Hz Blinken erreichen, selbst wenn der Rest der Schleife so gut wie keine Zeit braucht. Übrigens heißt das noch immer Quarz, Kristallglas ist was anderes.
Hört sich an, als hast du die CKDIV8-Fuse noch gesetzt, dann läuft der Prozessor nur mit 1/8 der Quarztaktung. Mark
Danke :) War der div 8. Jetzt geht auch der USART und die Diode blinkt wie gewünscht
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.