MSP43016F10 XT2 Oscillator Init?

OP #2228760
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?
Persönliche Seite #2228782
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren