[an error occurred while processing this directive]
Помогитеее плиз. крыша едит. msp 430
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено maks_12 26 января 2006 г. 05:49

доброе время суток.
Подскажите пожалуйста.
AGF_1 = AGF_1 + 1; выполняется один раз затем уходит в прерывание
у от туда не выходит.
помоему флаг прер не сбрасывается,
или я что то делаю не так??????????

#include "msp430x14x.h" // Standard Equations

int AGF_1;

void InitOsc (void);

void main (void)
{
InitOsc();
P4DIR |= 0xFF;
_EINT(); // Enable interrupts

while(1)
{
AGF_1 = AGF_1 + 1;
}
}

#pragma vector=TIMERA1_VECTOR //Timer A
__interrupt void TIMER2A (void)
{
P4OUT = P4OUT ^ 0X01;
}

void InitOsc(void)
{
// XT1 as high-frequency
BCSCTL1 |= XTS;

// turn on XT1 oscillator
_BIC_SR(OSCOFF);

// Wait for crystal to stabilize
do
IFG1 &= ~OFIFG;
while (IFG1 & OFIFG);

// ACLK = XT1 / 2
BCSCTL1 |= DIVA0;
BCSCTL1 &= ~DIVA1;

// Disable WDT interrupt and clear WDT interrupt flag
IE1 &= ~WDTIE;
IFG1 &= ~WDTIFG;

// Use WDT as timer, flag each 512 pulses from ACLK
WDTCTL = WDTPW | WDTTMSEL | WDTCNTCL | WDTSSEL | WDTIS1;

// Count 1024 pulses from XT1 (until XT1's amplitude is OK)
while (!(IFG1 & WDTIFG));

// Clear oscillator fault interrupt flag
IFG1 &= ~OFIFG;

// Set XT1 as MCLK
BCSCTL2 = SELM0 | SELM1;

// ACLK = XT1 / 4 = 2 MHz
BCSCTL1 &= ~DIVA0;
BCSCTL1 |= DIVA1;

// Stop timer, use ACLK / 8 = 250 kHz, generate interrupts
TACTL = ID1 | ID0 | TASSEL0 | TAIE;

// Start timer in continuous up-mode
TACTL |= MC1;
}


Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru