器件型号:TMDXRM42HDK
工具/软件:Code Composer Studio
我在 main()中为时钟信号运行 while 循环。 但是,当我按下 S1 (GIOA7)时,我想进入一个具有短串行输出的中断例程。 当处理器始终处于 while 循环中时、我不知道如何实现这一点。 如何跳入 ISR 并返回到 while 时钟循环?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
器件型号:TMDXRM42HDK
工具/软件:Code Composer Studio
我在 main()中为时钟信号运行 while 循环。 但是,当我按下 S1 (GIOA7)时,我想进入一个具有短串行输出的中断例程。 当处理器始终处于 while 循环中时、我不知道如何实现这一点。 如何跳入 ISR 并返回到 while 时钟循环?
Marcel、您好!
您可以启用 GIO 中断。 请使用 HALCoGen 生成项目并将该项目导入 CCS
1.打开 HALCoGen 项目
2.选中"驱动程序启用"下的"启用 GIO 驱动程序"
3.检查"PINMUX"下的 GIOA
4. 检查"VIM 通道0-31"下的 VIM 通道9 (GIO 内部 A)
5. 单击"GIO"选项卡,选中启用 pf 位7.
6.保存项目并生成代码
这是生成的 GIO ISR
/**@fn void gioHighLevelInterrupt (void)
*@GIO 中断处理程序简介
*
*用于 GIO 引脚中断的高级中断处理程序
*
*
#pragma CODE_STATE (gioHighLevelInterrupt、32)
#pragma INTERRUPT (gioHighLevelInterrupt、IRQ)
/* sourceId:gio_sourceId_011 */
/* DesignId:GIO_DesignId_011 */
/*要求:HL_SR35、HL_SR36 */
void gioHighLevelInterrupt (void)
{
uint32 offset = gioREG->OFF1;
/*用户代码开始(14)*/
/*用户代码结束*/
if (偏移!= 0U)
{
偏移=偏移- 1U;
gioNotification (gioPORTA、偏移量);
}
/*用户代码开始(15)*/
/*用户代码结束*/
}
8.在 gioNotification (../)中添加代码 功能
#pragma weak (gioNotification)
void gioNotification (gioPORT_t *端口、uint32位)
{
/*在用户代码开始和用户代码结束之间输入用户代码。 *
/*用户代码开始(19)*/
在此处添加您的代码
/*用户代码结束*/
}