Hallo, ich beschäftige mich gerade mit den ersten Gehversuchen von (AVR) Mikrocontrollern. Nun frage ich mich, welchen Wert Register haben, die nicht explizit initialisiert sind. Sind die bits in den Registern automatisch gelöscht? Konrektes Beispiel: Ich möchte einen Timer starten im Compare Match Modus (Atmega 8, Timer1 16-bit). Hierzu müssen im TCCR1A Register COM1A0 und COM1A1 gelöscht sein. Muss ich diese bei der Initialiisierung explizit löschen oder sind diese bereits 0? Gleiches gilt für den Timer selbst. Muss ich schreiben TCNT1=0 oder startet der Timer automatisch bei 0? Danke. Grüßchen Steffi
> Muss ich diese bei der Initialiisierung explizit löschen > oder sind diese bereits 0? Was/Das steht im Datenblatt bei der Registerbeschreibung.
Hallo Steffi, im Datenblatt des µC findest Du die Register einzeln beschrieben. Zu jedem ist erklärt, welche Funktion die einzelnen Bits haben. Darunter steht der "initial value", der meist 0 ist.
Hallo, ist der "initial value" der Wert hinter dem Doppelpunkt im Datenblatt, z.B. COM1Ax1:0? Oder wo steht das?
Schade, wollte gerade den Screenshot mit "roter Einrahmung" absenden ;-) Ach ja, noch als Hinweis: Wenn Du den Controller nicht über einen Reset zurücksetzt, sondern z.B. durch eine Sprung auf Adresse 0 (Startadresse), dann werden die Initialen Werte nicht wiederhergestellt. Auch wenn man von einem Bootloader (der z.B. einen Timer oder UART initialisiert hat) in das Hauptprogramm springt, dann muss man den Urzustand der Register vor dem Sprung selber wiederherstellen. Vor allem wenn die eigentliche Applikation bei der Initialisierung von den Defaultwerten ausgeht! (Sollte bei einem "sauberen" Programmierstil eigentlich nicht sein....)
Hallo, weil es so schön zu thema passt, hier noch ein fundstück. gruss klaus
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.