欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > 第27篇 基于ARM A9处理器用C语言实现中断<三>

第27篇 基于ARM A9处理器用C语言实现中断<三>

2025/2/23 16:21:46 来源:https://blog.csdn.net/weixin_47841246/article/details/145367944  浏览:    关键词:第27篇 基于ARM A9处理器用C语言实现中断<三>

Q:基于ARM A9处理器怎样设计C语言工程,同时使用按键中断和定时器中断在红色LED上计数?

A:基本原理:设置HPS Timer 0和按键中断源,主程序调用set_A9_IRQ_stack( )函数设置中断模式的ARM堆栈指针,然后调用config_GIC( )函数配置GIC将HPS Timer 0和按键产生的中断发送到ARM处理器,接着调用config_HPS_timer( )配置HPS Timer 0使其产生某个周期的中断,调用config_KEYs( )函数配置按键端口,最后调用enable_A9_interrupts( )函数使能中断。

image-20241128102801326

主程序执行一段无限循环,将全局变量count的值写入红色LED。在HPS Timer 0中断服务程序中,将变量count和run的值相加再赋值给count,其中,run的值为0或1。每次按下按键时,按键中断服务程序中的全局变量run的值在1和0之间切换。当run=0时,count的值保持不变,当run=1时,count的值每0.25s增加1。

image-20241128102956181

编译下载程序到DE1-SoC开发板上,可以看到红色LED上显示的计数值每隔0.25秒递增1,10个红色LED从全熄灭到全点亮状态循环显示,按下任意KEY[3:0]其中任意一个按键会停止计数,再次按下任意一个按键会继续计数。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词