ARM9按键驱动程序,有个看不懂的地方~请指教。

ARM9按键驱动程序,有个看不懂的地方~请指教。,第1张

其实这个 就是通过移行枯大位 和 逻辑运算

然后给寄存器赋值

解释下 第一句rGPFCON &= ~((3<败世<GPF0_CON)|(3<<GPF1_CON)

|(3<<GPF2_CON)|(3<<GPF4_CON))

意思是

1:0x03左移GPF0_CON 或上 0x03左移GPF1_CON 或上0x03左移GPF2_CON 或上0x03左移GPF4_CON这些值运算后 假设得到X

2:rGPFCON =rGPFCON &(~X) 这样 就间接的给 rGPFCON 赋值

一般来说 想给寄存器 某档竖一位 置1 应该采用或运算

想给寄存器 某一位清零 应该采用与运算

举个一目了然的例子

将rGPFCON 第3位置1

rGPFCON |=1<<3 //rGPFCON 或 0000 1000

将rGPFCON 第3位清零

rGPFCON &=~(1<<3) //rGPFCON 与 1111 0111

这样应该能明白了吧

程序略混乱,没细看,提渣册含供点简单的思路:

//外部事件中断处理程序

void EXTIn_IRQ()

{

static u8 key_input_time = 0//按一下亮,按一下灭

//清中断标志位

if(!key_input_time ){

rGPBDAT=0 //点灯

}else{

rGPBDAT = 0xff //全灭如笑

}

key_input_time++

}

void main()

{

System_init() //初始时钟 中断 外设配置 IO等

while(1)

{姿袭

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12483835.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存