海淀网站建设枣庄,微信官网小程序注册,马鞍山市直网站集约化建设,网站原型图是什么Q#xff1a;基于ARM A9处理器怎样设计C语言工程#xff0c;同时使用按键中断和定时器中断在红色LED上计数#xff1f;
A#xff1a;基本原理#xff1a;设置HPS Timer 0和按键中断源#xff0c;主程序调用set_A9_IRQ_stack( )函数设置中断模式的ARM堆栈指针#xff0c…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( )函数使能中断。 主程序执行一段无限循环将全局变量count的值写入红色LED。在HPS Timer 0中断服务程序中将变量count和run的值相加再赋值给count其中run的值为0或1。每次按下按键时按键中断服务程序中的全局变量run的值在1和0之间切换。当run0时count的值保持不变当run1时count的值每0.25s增加1。 编译下载程序到DE1-SoC开发板上可以看到红色LED上显示的计数值每隔0.25秒递增110个红色LED从全熄灭到全点亮状态循环显示按下任意KEY[3:0]其中任意一个按键会停止计数再次按下任意一个按键会继续计数。