Цитата(Lucky:) @ Jan 26 2007, 07:27)

Вопрос 1.Кak я понимаю, это частота для работы CPU и только. И если я "питаю" CPU от XT2CLK(8 MHz) или от DCOCLK (max 900kHz) то код
Код
...
BCSCTL1 &= ~XT2OFF; // turn ON XT2
вариант 1. BCSCTL2 = SELM_2 + DIVM_0; // Select MCLK = XT2; Divider for MCLK = 1
or
вариант 2. BCSCTL2 = SELM_0 + DIVM_0; // Select MCLK = DCOCLK; Divider for MCLK = 1
...
P1OUT ^= 0x01;
j = 50000;
do (j--);
while (j != 0);
должен выполнятся с заметной разницей?
но я не получаю никакой разницы для P1OUT ^= 0x01;
В первых DCO не 900 кГц максимум, а 5 МГц. Его частота зависит от RSELx DCOx бит в регистрах BCSCTL1 и DCOCTL соответственно. В приведенном коде вы не устанавливаете их (хотя по умолчанию вроде он установлен в режим 43, то есть 800 кГц). Лучше эти регистры задавать целиком явно, а не отдельные биты типа BCSCTL1 &= ~XT2OFF;
Напишите, например BCSCTL1=RSEL1;
DCOCTL=DCO2;
Это соответствует частоте в несколько сотен кГц. Можете еще ниже дать.
И я правильно понимаю, что код
Код
P1OUT ^= 0x01;
j = 50000;
do (j--);
while (j != 0);
у вас обрамлен неким бесконечным циклом?
Цитата(Lucky:) @ Jan 26 2007, 07:27)

Вопрос 2.Как можно выключить DCOCLK?
Manual говорит надо установить SCG0, но
Код
_BIS_SR(SCG0 + GIE);
не даёт желаемого результата.
смотрите стр 2-15 даташита на первое семейство.
Чтоб выключить DCO надо перейти в режим LPM1 или ниже. Можно сам осциллятор не выключать а выключить проц, тогда это режим LPM0, то есть взведен CPUOFF.