CC1310中断
CC1310怎么能设置成电平或高电平触发中断了?谢谢
#define PIN_BM_OUTPUT_MODE (PIN_BM_GPIO_OUTPUT_VAL|PIN_BM_GPIO_OUTPUT_EN| \
PIN_BM_OUTPUT_BUF|PIN_BM_SLEWCTRL|PIN_BM_DRVSTR)
#define PIN_INV_INOUT (PIN_GEN|(1<<24)) ///< Logically invert input and output
#define PIN_BM_INV_INOUT (1<<24) ///< Bitmask for input/output inversion option
#define PIN_IRQ_DIS (PIN_GEN|(0x0<<16)) ///< (*) Disable IRQ on pin
#define PIN_IRQ_NEGEDGE (PIN_GEN|(0x5<<16)) ///< Enable IRQ on negative edge
#define PIN_IRQ_POSEDGE (PIN_GEN|(0x6<<16)) ///< Enable IRQ on positive edge
#define PIN_IRQ_BOTHEDGES (PIN_GEN|(0x7<<16)) ///< Enable IRQ on both edges
#define PIN_BM_IRQ (0x7<<16) ///< Bitmask for pin interrupt option
这一块儿没说明怎么弄电平触发中断
可以参考pinInterrupt例程
/*
* Application button pin configuration table:
* - Buttons interrupts are configured to trigger on falling edge.
*/
PIN_Config buttonPinTable[] = {
Board_PIN_BUTTON0 | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_NEGEDGE,
Board_PIN_BUTTON1 | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_NEGEDGE,
PIN_TERMINATE
};
/*
* ======== buttonCallbackFxn ========
* Pin interrupt Callback function board buttons configured in the pinTable.
* If Board_PIN_LED3 and Board_PIN_LED4 are defined, then we'll add them to the PIN
* callback function.
*/
void buttonCallbackFxn(PIN_Handle handle, PIN_Id pinId) {
uint32_t currVal = 0;
/* Debounce logic, only toggle if the button is still pushed (low) */
CPUdelay(8000*50);
if (!PIN_getInputValue(pinId)) {
/* Toggle LED based on the button pressed */
switch (pinId) {
case Board_PIN_BUTTON0:
currVal = PIN_getOutputValue(Board_PIN_LED0);
PIN_setOutputValue(ledPinHandle, Board_PIN_LED0, !currVal);
break;
case Board_PIN_BUTTON1:
currVal = PIN_getOutputValue(Board_PIN_LED1);
PIN_setOutputValue(ledPinHandle, Board_PIN_LED1, !currVal);
break;
default:
/* Do nothing */
break;
}
}
}