Hallo,
Ich habe einen MSP430x169 der mit einem 8Mhz(auf 4Mhz runtergeteilt)
über XT2 den SMCLK und MCLK bedient. Jetzt wollte ich zusätzlich den
32768kHz Quarz für eine RTC Application mit einbeziehen. Nur irgendwie
bekomme ich das nicht hin. Es scheint so als ob der LFXT abgeschaltet
ist. ich habe auch schon das Bit im SR mit:
_BIC_SR(OSCOFF);
gelöscht, nur gebracht hat es auch nichts. Ist es überhaupt möglich
beide laufen zu lassen?? Nach meinem Verständniss ja aber vlt liege ich
da ja auch falsch. Als Init setze ich folgendes:
1 | BCSCTL1 &= ~XT2OFF; /* XT2on */
|
2 |
|
3 | do
|
4 | {
|
5 | IFG1 &= ~OFIFG; /* Clear OSCFault flag */
|
6 | for (i = 0xFF; i > 0; i--); /* Time for flag to set */
|
7 |
|
8 | if (!(--Max_turns)) /* stop after 1k tries, error with ext osc! */
|
9 | {
|
10 | Error_code = 1;
|
11 | break;
|
12 | }
|
13 | }
|
14 | while ((IFG1 & OFIFG)); /* OSCFault flag still set? */
|
15 |
|
16 | BCSCTL2 |= SELM_2 | SELS; /* MCLK = SMCLK = XT2 (safe) */
|
17 |
|
18 | BCSCTL2 |= DIVS_1 | DIVM_1; /* SMCLK&MCLK = XT2 / 2 */
|
19 | BCSCTL1 |= DIVA_1;
|
Hoffe hier kann mir jemand etwas auf die Sprünge helfen!
Edit:
Hier noch mal die TimerInit:
1 | TBCTL = TBSSEL_1 | TBCLR; /* set timer register, clear TAR */
|
2 | TBCCTL0 |= CAP | CCIE;
|
3 | TBCCR0 = 32768;
|
4 | TBCTL |= MC_1;
|
jetzt sollte ja alle 500ms ein Interrupt ausgelöst werden, wird es aber
nicht.
Mfg
Stephan