[an error occurred while processing this directive]
|
доброе время суток.
Подскажите пожалуйста.
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: info@telesys.ru