.include "usb1287def.inc" ldi R16, $FF out DDRD, R16 loop: cbi PORTD, 0 sbi PORTD, 0 cbi PORTD, 0 sbi PORTD, 0 cbi PORTD, 0 sbi PORTD, 0 cbi PORTD, 0 sbi PORTD, 0 rjmp loop Hallo! Da ich Probleme mit meiner UART habe: Ich denke ich habe einen externen Quarz (8MHz) auf dem STK525 als CLK. Doch wenn ich mit diesem Takt meine Baud Rate bestimme oder aus dem Datenblatt entnehme sendet die UART nur Müll. Habe herausgefunden, dass alles wunderbar funktioniert, wenn ich einen Takt von 1MHz zur Berechnung der Baud Rate annehme. Bei den Fuses ist folgende aktiviert: Ext.Crystal Osc.; Frequency 8.0- MHz; Start-up time: 258 CK + 65ms; [CKSEL=1110 SUT=01] Deshalb möchte ich mit dem oben stehenden Code meine Taktfrequenz ermittelnermitteln. Habe mit dem Oszilloskop für die Taktdauer und die Taktpause jeweils 2µs gemessen. (Die Taktdauer bei der er die Schleife aufruft ist 4µs) Kann ich jetzt einfach annehmen, dass ein Assemblerschritt einem Takt entspricht? (Hab noch nie Assembler programmiert...Bin erst seit gestern dabei) Vielen Dank für die Hilfe. Anbei noch der Code mit dem ich über die UART ein hochlaufendes Register senden möchte
je nach Befehl dauert es 1 oder 2 Takte, das steht im Datenblatt. Aber die set/reset dürften nur einen Takt brauchen bei Sprungbefehlen kommts darauf an, ob ein Sprung stattfindet, dann dauerts einen TAkt länger. Der rjmp loop dürfte 2 Takte dauern
> Ich denke ich habe einen externen Quarz (8MHz) auf dem STK525 als > CLK. Was genau heißt "Ich denke..."? > Habe herausgefunden, dass alles wunderbar funktioniert, wenn ich > einen Takt von 1MHz zur Berechnung der Baud Rate annehme. Dann wird dein µC wohl mit 1 Mhz laufen. > Bei den Fuses ist folgende aktiviert: > Ext.Crystal Osc.; Frequency 8.0- MHz; Start-up time: 258 CK + > 65ms; > [CKSEL=1110 SUT=01] CKDIV8-Fuse? > Kann ich jetzt einfach annehmen, dass ein Assemblerschritt einem > Takt entspricht? (Hab noch nie Assembler programmiert...Bin erst seit gestern dabei) Kommt drauf an, was du mit "Assemblerschritt" meinst. Im Datenblatt steht für jeden Befehl, wieviele Taktzyklen er braucht. sbi und cbi benötigen beispielsweise jeweils zwei Taktzyklen. Also läuft dein µC definitiv mit 1 Mhz.
Hab in der Hilfe nachgeschaut. SBI benötigt 2 Takte. Damit komme ich dann ja auch wieder auf meinen CLK von 1MHz. Aber warum 1MHz? Ich habe doch bei den Fuses angegeben, dass er den externen 8MHz Quarz nehmen soll. Habe den Quarz auch nachgemessen. Genau 8MHz. Am Eingang XTAL1 vom AT90USB1287 liegen auch 8MHz. Habe die Jumper die den CLK vom STK500 übernehmen würden offen. Andere Jumper (für CLK) habe ich auf dem STK525 nicht gefunden. Muss ich da noch irgendwas in den Fuses umstellen? Bitte helft mir. Sitze da schon den ganzen Tag dran und verzweifle bald.
Okay, danke das mit dem CLK hat sich erledeigt. Bin eben noch mal genau die Fuses durchgegangen und habe gesehen, dass eine aktiviert war, die meinen außen anliegenden Takt durch 8 teilt...
@Rolf: Jetzt steh ich ja doof da... Aber Deine Antworten wurden bei mir noch nicht angezeigt als ich das geschrieben habe. Aber vielen Dank für Deine Hilfe
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.