主题中讨论的其他器件:SEGGER
工具/软件:Code Composer Studio
我是 BeagleBone Black Noob。 我必须修改一个现有的工作项目来响应 GPIO0.4上的外部中断
基本项目运行良好-我使用的是 CCS 7、3、0.00019以及使用 Segger J-link 进行编程和调试
我已经修改了工作例程"ioinit()",方法是添加您看到的与"//stife"窒息的行。
此外、这些其他子例程调用 位于程序的正文中
intAINTCInit();//called before the ioinit()
IntMasterIRQEnable();//之后调用
如果有人能找到我出错的地方、我将不胜感激。
我没有遇到编译错误、只是没有中断!
谢谢
Steve Robinson
这是修改后的"ioinit()"......
void ioinit (void)
{
//为 GPIO1实例启用时钟
GPIO1ModuleClkConfig();
GPIO0ModuleClkConfig();//Steve
//启用 GPIO1模块
GPIOModuleEnable (SOC_GPIO_1_regs);
GPIOModuleEnable (SOC_GPIO_0_regs);//Steve
//将 LED1配置为 GPIO (GPIO1_21/GPMC_A5)
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_GPMC_A (5))= CONTRAL_CONF_MUXMODE (7);
//将 LED2配置为 GPIO (GPIO1_22/GPMC_A6)
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_GPMC_A (6))= CONTRAL_CONF_MUXMODE (7);
//将 LED3配置为 GPIO (GPIO1_23/GPMC_A7)
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_GPMC_A (7))= CONTRAL_CONF_MUXMODE (7);
//将 LED4配置为 GPIO (GPIO1_24/GPMC_A8)
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_GPMC_A (8))= CONTRAL_CONF_MUXMODE (7);
HWREG (SOC_CONTRAL_REGS + GPIO_0_4)= CONTRAL_CONF_MUXMODE (7);//Steve
//Steve 将其配置为输入
GPIODirModeSet (SOC_GPIO_0_regs、4、GPIO_DIR_INPUT);//Steve
GPIOPinIntEnable (SOC_GPIO_0_regs、GPIO_INT_LINE_1、4);//Steve
GPIOIntTypeSet (SOC_GPIO_0_regs、4、GPIO_INT_TYPLE_FALL_EDGE);//Steve
IntSystemEnable (SYS_INT_GPIOINT0A);//Steve
IntPrioritySet (SYS_INT_GPIOINT0A、3、AINTC_HOSTINT_route _IRQ);//Steve
IntRegister (SYS_INT_GPIOINT0A、gpio0Isr);//Steve
//将 LED1配置为输出
GPIODirModeSet (SOC_GPIO_1_regs、21、GPIO_DIR_OUTPUT);
//将 LED2配置为输出
GPIODirModeSet (SOC_GPIO_1_regs、22、GPIO_DIR_OUTPUT);
//将 LED3配置为输出
GPIODirModeSet (SOC_GPIO_1_regs、23、GPIO_DIR_OUTPUT);
//将 LED4配置为输出
GPIODirModeSet (SOC_GPIO_1_regs、24、GPIO_DIR_OUTPUT);
}
。 这是我的服务例程
静态空 gpio0Isr (空)
{
//清除中断
GPIOPinIntClear (SOC_GPIO_0_regs、0、4);
GPIOPinIntEnable (SOC_GPIO_0_regs、0、4);
GPIOPinIntWakeUpEnable (SOC_GPIO_0_regs、0、4);
GPIOPinWrite (SOC_GPIO_1_regs、23、GPIO_PIN_HIGH);//查看是否发生
}