STM8之外部中断长按键识别相关内容

STM8常用中断指令

开总中断

_asm(“rim”);

禁止中断

_asm(“sim”);

进入停机模式

_asm(“halt”);

中断返回

_asm(“iret”);

等待中断

_asm(“wfi”);

软件中断

_asm(“trap”);

STM8S常用中断映射

 STM8之外部中断长按键识别相关内容_设计制作_光电显示

如使用中断函数时,可以通过在上图中查找相对应的中断向量号,而中断函数的名字可以自定义

 STM8之外部中断长按键识别相关内容_设计制作_光电显示

 STM8之外部中断长按键识别相关内容_设计制作_光电显示

外部中断长按键识别相关配置

??STM8S为外部中断事件专门分配了五个中断向量:

PortA 口的5个引脚:PA[6:2]

PortB 口的8个引脚:PB[7:0]

PortC 口的8个引脚:PC[7:0]

PortD 口的7个引脚:PD[6:0]

PortE口的8个引脚:PE[7:0]

PD7是最高优先级的中断源(TLI);

 中断IO设置

这里选用EX  TI 2(端口C外部中断)。那么需要将中断促发的IO(PC5)设置为上拉输入或中断上拉输入,悬浮输入的话很容易受干扰。

/*PC5设置为上拉输入*/

void Init_EX  TI 2_GPIO(void)

{

PC_DDR &= 0XDF;

PC_CR1 &= 0XDF;

PC_CR2 |= 0x20;

}

外部中断寄存器配置

CPU CC寄存器中断位:

I0不能直接写,只能通过开中断或关中断来写,上电默认是11;当用指令开中断时( _asm(“rim\n”);),为00;当发生中断时,由当前中断(ITC_SPRx)载入I[1:0],主要用于做中断优先级;退出中断自动清0;因此在写EX  TI _CR1,需将ITC_SPRx配置成11,或加入禁中断指令 。

EX  TI _CR1:

??配置促发方式;

 测试代码

 STM8之外部中断长按键识别相关内容_设计制作_光电显示

 STM8之外部中断长按键识别相关内容_设计制作_光电显示

 STM8之外部中断长按键识别相关内容_设计制作_光电显示

另参见不用外部中断长按键识别:不用外部中断识别长按键

5
78
0
46

相关资讯

  1. 1、司藤经费都用来拍外景和给奇迹藤藤置办行头了吧?群演全靠抓壮丁4339
  2. 2、女星出演高颜值姐妹花,姐妹各有千秋,最喜欢哪对姐妹组合?2008
  3. 3、豆瓣高分剧的致胜秘密,藏在这25部剧里477
  4. 4、专访《里约大冒险2》导演:我来中国“谢票”了2063
  5. 5、是枝裕和的《小偷家族》:裂缝中的烟花684
  6. 6、就地过年,影院迷茫2707
  7. 7、《笔仙3》7月4日公映焦俊艳破尺度演出获赞827
  8. 8、《木府风云》惹争议秋瓷炫再演“复仇女神”1128
  9. 9、平安夜票房1.8亿创三年新高,刘德华易烊千玺新片争贺岁档冠军224
  10. 10、白百何方否认新恋情,情侣装男子只是工作伙伴,网友:来挡枪了?2335
全部评论(0)
我也有话说
0
收藏
点赞
顶部