|
#include <ti/devices/msp432p4xx/driverlib/driverlib.h>
/* Standard Includes */
#include <stdint.h>
#include <stdbool.h>
#define TIMERPERIOD 46875
uint8_t counter=0;
const Timer_A_UpModeConfig upConfig={
TIMER_A_CLOCKSOURCE_SMCLK,
TIMER_A_CLOCKSOURCE_DIVIDER_64,
TIMERPERIOD,
TIMER_A_TAIE_INTERRUPT_DISABLE,
TIMER_A_CCIE_CCR0_INTERRUPT_ENABLE,
TIMER_A_DO_CLEAR
};
//![Simple GPIO Config]
int main(void)
{
volatile uint32_t ii;
/* Halting the Watchdog */
MAP_WDT_A_holdTimer();
/* Configuring P1.0 as output */
MAP_GPIO_setAsOutputPin(GPIO_PORT_P1, GPIO_PIN0);
MAP_GPIO_setAsOutputPin(GPIO_PORT_P2,GPIO_PIN0 | GPIO_PIN1 | GPIO_PIN2);
MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P2,GPIO_PIN0 | GPIO_PIN1 | GPIO_PIN2);
MAP_GPIO_setAsInputPin(GPIO_PORT_P1,GPIO_PIN1 | GPIO_PIN4);
MAP_GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1,GPIO_PIN1 | GPIO_PIN4);
MAP_GPIO_clearInterruptFlag(GPIO_PORT_P1,GPIO_PIN1 | GPIO_PIN4);
MAP_GPIO_enableInterrupt(GPIO_PORT_P1,GPIO_PIN1 | GPIO_PIN4);
MAP_Interrupt_enableInterrupt(INT_PORT1);
MAP_Interrupt_enableSleepOnIsrExit();
MAP_Timer_A_configureUpMode(TIMER_A1_BASE,&upConfig);
MAP_Interrupt_enableInterrupt(INT_TA1_0);
MAP_Timer_A_startCounter(TIMER_A1_BASE,TIMER_A_UP_MODE);
MAP_Interrupt_enableMaster();
while (1)
{
MAP_PCM_gotoLPM0();
}
}
//![Simple GPIO Config]
void PORT1_IRQHandler(void)
{
uint32_t status;
status=MAP_GPIO_getEnabledInterruptStatus(GPIO_PORT_P1);
MAP_GPIO_clearInterruptFlag(GPIO_PORT_P1,status);
if(status & GPIO_PIN1)
MAP_GPIO_toggleOutputOnPin(GPIO_PORT_P1,GPIO_PIN0);
else if(status & GPIO_PIN4)
MAP_GPIO_toggleOutputOnPin(GPIO_PORT_P2,GPIO_PIN0);
}
void TA1_0_IRQHandler(void)
{
counter++;
MAP_Timer_A_clearCaptureCompareInterrupt(TIMER_A1_BASE,TIMER_A_CAPTURECOMPARE_REGISTER_0);
if(counter==1)
MAP_GPIO_toggleOutputOnPin(GPIO_PORT_P2,GPIO_PIN0);
else if(counter==2)
MAP_GPIO_toggleOutputOnPin(GPIO_PORT_P2,GPIO_PIN0 | GPIO_PIN1);
else if(counter==3)
MAP_GPIO_toggleOutputOnPin(GPIO_PORT_P2,GPIO_PIN1 | GPIO_PIN2);
else if(counter==4)
MAP_GPIO_toggleOutputOnPin(GPIO_PORT_P2,GPIO_PIN1 | GPIO_PIN2);
else if(counter==5){
MAP_GPIO_toggleOutputOnPin(GPIO_PORT_P2,GPIO_PIN1 | GPIO_PIN0);
counter=1;
}
}
|
-
1.jpg
(2.47 MB, 下载次数: 399)
-
2.jpg
(4.03 MB, 下载次数: 401)
|