天嵌 ARM开发社区

 找回密码
 注册
查看: 2710|回复: 4

菜鸟求解tq源程序中---按键控制led的一个问题

[复制链接]
jing007520 发表于 2012-5-19 20:41:17 | 显示全部楼层 |阅读模式
本帖最后由 jing007520 于 2012-5-19 20:50 编辑

void KeyScan_Test(void)
{
        Uart_Printf("\nKey Scan Test, press ESC key to exit !\n");        

        rGPBUP = rGPBUP & ~0x03f0|0x03f0;                        //  LED [8:5] => PU En
        rGPBCON = rGPBCON & ~0x3d57fc|0x3d57fc;                //LED[8:5] => OUTPUT;
        rGPFCON = rGPFCON & (~((3<<4)|(3<<0)|(3<<8)|(3<<2))) | ((2<<4)|(2<<0)|(2<<8)|(2<<2)) ;                //GPF4,2,1,0 set EINT
        
        rEXTINT0 &= ~(7|(7<<4)|(7<<8)|(7<<16));        
        rEXTINT0 |= (0|(0<<4)|(0<<8)|(0<<16));                //set eint0,1,2,4 falling edge int


        rEINTPEND |= (1<<4);                                                        //clear eint 4
        rEINTMASK &= ~(1<<4);                                                //enable eint 4
        ClearPending(BIT_EINT0|BIT_EINT1|BIT_EINT2|BIT_EINT4_7);
        pISR_EINT0 = pISR_EINT1 = pISR_EINT2 = pISR_EINT4_7 = (U32)Key_ISR;
        EnableIrq(BIT_EINT0|BIT_EINT1|BIT_EINT2|BIT_EINT4_7);        

         while( Uart_GetKey() != ESC_KEY ) ;
         DisableIrq(BIT_EINT0|BIT_EINT1|BIT_EINT2|BIT_EINT4_7);        
}

就红色部分看不懂用来干什么的,是不是设置GPB的端口为led的输出端口,和上拉电阻电位的设置?
Main程序中的Port_Init()不是设置过了么?
这里的rGPBUP & ~0x03f0|0x03f0,到底有什么用呢?感觉像是多余的。


:)版主大人希望您百忙之中能够给小弟指点一二,也希望广大路过的XDJM能帮忙解答,不胜感激!!!!!
 楼主| jing007520 发表于 2012-5-19 21:03:07 | 显示全部楼层
顶一下,求路过
 楼主| jing007520 发表于 2012-5-20 12:46:44 | 显示全部楼层
我再顶,求关注
sdhgood 发表于 2012-6-14 14:15:11 | 显示全部楼层
红色部分的程序是不是错了,0x3d57fc这个数不对吧,
还有设置下降沿触发方式应为rEXTINT0 |= (2|(2<<4)|(2<<8)|(2<<16));
lastnight 发表于 2012-6-15 17:59:46 | 显示全部楼层
其实自己用Uart_Printf函数打印出来就可以发现,红色部分是多余的。
注释是错误的,源程序为低电平触发,楼上的是对的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-6 03:31 , Processed in 1.031257 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表