3c2410裸板程序入门---单按键(二)

发布时间:2023-05-10  

key.c 


1#include"key.h"

2#include"uart.h"

3#include"s3c2410.h"

17

__irq

void

key_handler()

18

{

19

sendstring(

"key1 down!!!n"

);

20

21

EINTPEND |=

0x1

<<

19

;

22

SRCPND |=

0x1

<<

5

;

23

INTPND = INTPND;

24

}

25

26void

key_init()

27

{

28

INTMOD =

0x0

;

29

INTMSK &= ~(

0x1

<<

5);

31

GPECON = (GPECON & ~(

0x3

<<

22

)) |

0x1

<<

22

;

32

GPEDAT &= ~(

0x1

<<

11);

34

GPGCON = (GPGCON & ~(

0x3

<<

22

)) |

0x2

<<

22;

36

EXTINT2 = (EXTINT2 & ~(

0x7

<<

12

)) |

0x2

<<

12;

38

EINTMASK &= ~(

0x1

<<

19);

40

*(

unsigned

int

*)(

0x33ffff20

+

5

*

4

) = (

unsigned

int

)key_handler;

41

}

注意__irq 修士的key_handler 就是二级中断处理函数,这里没有查二级中断号,也没有做消除抖动处理,所以不完善,只是为了演示中断过程,用串口向pc发送了一个字符串。注意处理完成后要清除中断,否则会一直中断。还要注意中断的返回,__irq是armcc的关键字,gcc是不能用的,使用它以后,调试时看对应的汇编代码:


 STMDB     R13!,{R0-R3,R12,R14} ...


 LDMIA     R13!,{R0-R3,R12,R14}


SUBS      PC,R14,#0x00000004 可知自动做了pc指针的调整,适应流水线机构。

key_init函数中的这一句


 *(unsigned int *)(0x33ffff20+5*4) = (unsigned int)key_handler;

正是把二级中断处理函数的地址安装到中断向量表中。中断控制的寄存器包括pnd, mask等,专门讲中断的文章中有讲到,芯片资料说明也很详细。


main.c


 1 #include "key.h"

 2 #include "led.h"

 3 #include "uart.h"

 4 #include "s3c2410.h"

 5 

 6 

 7 

 8 int main(void)

 9 {

10     key_init();

11     uart_init();

12     sendstring("hello world!n");

13     myblink();

14     return 0;

15 }


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

        delayms(1000);   }   return 0; } 是不是比起寄存器点灯方便多啦!!! 二、按键库函数开发 按键库开发要添加库文件:stm32f4xx_gpio.c (1)理解按键输入原理图......
    马上执行相应的动作,这就是按键检测的原理。 图5 按键与单片机连接图 2、 按键的抖动与消除 由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而......
    STM32的GPIO 输入—按键检测;硬件设计 按键机械触点断开、闭合时,由于触点的弹性作用,按键开关不会马上稳定接通或一下子断开,使用按键时会产生图1 中的带波纹信号,需要用软件消抖处理滤波,不方......
    通过将开发板的12M晶振分频(参考分频程序)出1Hz的计时频率,实现秒钟的效果。将clk_1s的上升沿作为触发信号计时。通过开发板上的按键开关置零,实现复位功能。通过拨码开关置1或0,实现......
    复位时序是否满足芯片手册和推荐电路要求。 复位开关 单板按键开关设计,要防止长按按键......
    发射模块仅仅是一手持遥控器,由AT89C2051单片机及键盘电路、按键K及红外发光二极管组成。发射电路原理图如图2所示。 发射模块设置的密码必须与本机接收模块相同(设置密码方法见2.2.1节),所设......
    按键开关机电路图 按键开关机电路设计方案;最近做个基于STM32脑波检测的项目,甲方爸爸要求使用按键进行开关机。在网上查了一些资料,找到了很多案例分享,在此进行总结。 主要分为以下两部分: 单片机控制按键开关......
    K12S 系列表面贴装按键开关具备 12N 操作力与 IP 密封保护;  K12S 系列表面贴装按键开关具备 12N 操作力与 IP 密封保护 马萨诸塞州沃尔瑟姆 — 2022年 6 月 30......
    C&K 推出透明、冷白光带灯按键开关;  C&K 推出透明、冷白光带灯按键开关 坚固耐用的 IP67 防护等级 K12S 系列表面贴装式按键开关采用先进材料, 可实......
    常用的手持遥控器所用的红外发射二极管);一种是近距离发射型红外发光二极管,这种二极管把红外光的发射与接收共集为一体。由于本设计实现的是家居遥控,因此采用第一种即可。 如图所示为系统遥控发射原理图,P1.0 口为按键输入口;P2.0......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>