#include "driverlib.h"
/* Application Defines */
#define TIMER_PERIOD 127
#define DUTY_CYCLE1 64
/* Timer_A Up Configuration Parameter */
const Timer_A_UpModeConfig upConfig =
{
TIMER_A_CLOCKSOURCE_SMCLK,
TIMER_A_CLOCKSOURCE_DIVIDER_1,
TIMER_PERIOD,
TIMER_A_TAIE_INTERRUPT_ENABLE,
TIMER_A_CCIE_CCR0_INTERRUPT_ENABLE,
TIMER_A_DO_CLEAR
};
/* Timer_A Compare Configuration Parameter (PWM1) */
const Timer_A_CompareModeConfig compareConfig_PWM1 =
{
TIMER_A_CAPTURECOMPARE_REGISTER_1,
TIMER_A_CAPTURECOMPARE_INTERRUPT_ENABLE,
TIMER_A_OUTPUTMODE_TOGGLE_SET,
DUTY_CYCLE1
};
int main(void)
{
MAP_WDT_A_holdTimer();
MAP_GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P7,
GPIO_PIN6 , GPIO_PRIMARY_MODULE_FUNCTION);
MAP_Timer_A_configureUpMode(TIMER_A1_MODULE, &upConfig);
MAP_Timer_A_initCompare(TIMER_A1_MODULE, &compareConfig_PWM1);
TA0CCTL0 = CCIFG;
MAP_Timer_A_clearInterruptFlag(TIMER_A1_MODULE);
MAP_Timer_A_startCounter(TIMER_A1_MODULE, TIMER_A_UP_MODE);
while (1)
{
MAP_PCM_gotoLPM0();
}
}
void TA1_isr()
{ MAP_Timer_A_clearInterruptFlag(TIMER_A1_MODULE);
MAP_Timer_A_clearCaptureCompareInterrupt(TIMER_A1_MODULE,
TIMER_A_CAPTURECOMPARE_REGISTER_0);
MAP_GPIO_setAsOutputPin(GPIO_PORT_P1,GPIO_PIN0);
MAP_GPIO_setOutputHighOnPin(GPIO_PORT_P1,GPIO_PIN0);
}
void TA1_0isr()
{MAP_Timer_A_clearInterruptFlag(TIMER_A1_MODULE);
MAP_Timer_A_clearCaptureCompareInterrupt(TIMER_A1_MODULE,
TIMER_A_CAPTURECOMPARE_REGISTER_1);
MAP_GPIO_setAsOutputPin(GPIO_PORT_P1,GPIO_PIN0);
MAP_GPIO_setOutputHighOnPin(GPIO_PORT_P1,GPIO_PIN0);
}
//why the program runs into the following rather than above 2 isrs ???
void CPU_wfi(void)
{
//
// Wait for the next interrupt.
//
__asm(" wfi\n");
}
#endif
↧
cannot enter isr
↧