[an error occurred while processing this directive]
|
#pragma vector=NMI_VECTOR
#pragma type_attribute=__interrupt
void OSC_FAULT_ISR(void)
{ BCSCTL2=SELM_0+DIVM_0+DIVS_0; //сначала перейдем на
//внутреннее тактирование
BCSCTL1=DIVA_0+RSEL2+RSEL1+RSEL0; //ACLK=LFXT/1=32768Гц
DCOCTL=DCO1+DCO2; //DCO около 4МГц
while((IFG1&OFIFG)!=0) IFG1&=~OFIFG;//Ожидаем пока
//стабилизируются колебания
//кварца XT2
BCSCTL2=SELM_2+DIVM_0+SELS+DIVS_0; //MCLK=XT2/1=7.3728МГц,
//SMCLK=XT2/1=7.3728МГц
IE1|=OFIE; //разрешить прерывание от
//детектора ошибки резонатора
}#pragma type_attribute=__task
void main (void)
{
WDTCTL = WDTPW+WDTHOLD; //остановим WDTimer
IFG1|=OFIFG; //устаним флаг ошибки
//осциллятора, для вызова
//процедуры инициализации
//источников тактирования
IE1=OFIE; //разрешим прерывание от
//детектора ошибки кварца
....}
E-mail: info@telesys.ru