Forum: Mikrocontroller und Digitale Elektronik MSP43016F10 XT2 Oscillator Init?


von Mark M. (mom-jovi)


Lesenswert?

In der Init des MSP430 steht für den XT2 folgendes:
1
BCSCTL1 &= XT2OFF;
2
do{
3
   IFG1 &= ~OFIFG;
4
   for (i = 0xFF; i > 0; i--);
5
}
6
while ((IFG1 & OFIFG) != 0);

Wozu dient die do-while-Schleife? Soll das Runterzählen von 0xFF eine 
Probe für den Oszillator sein, bei dem kein OFIFG auftreten darf?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Mark M. schrieb:
> Wozu dient die do-while-Schleife?

Der Oszillator braucht nach dem Einschalten eine gewisse Zeit, bis er 
korrekt angeschwungen ist. Solange das nicht der Fall ist, wird von der 
Oszillator-Hardware das Oszillator-Fehler-Flag OFIFG gesetzt.

Das wird in der While-Schleife zurückgesetzt, dann wird etwas Zeit 
verbraten (die For-Schleife) und wieder nachgesehen, was das Fehler-Flag 
macht. Würde es ohne die For-Schleife ständig zurückgesetzt, hätte die 
Oszillatorhardware keine Chance, es zu setzen und die Routine keine 
Chance, herauszufinden, ob die Oszillatorhardware es nicht setzt.

Im übrigen nehme ich an, daß es sich bei Deinem µC um einen 'F1610 
handelt, MSP43016F10" ist sicherlich nur ein Typo.

von Mark M. (mom-jovi)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Im übrigen nehme ich an, daß es sich bei Deinem µC um einen 'F1610
> handelt, MSP43016F10" ist sicherlich nur ein Typo.

Ja stimmt ;)

Danke für die Erklärung.

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
Noch kein Account? Hier anmelden.