找回密码
 立即注册
查看: 683|回复: 8

STC8H的外部中断2的开关控制

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-11-08 17:03:44

4

主题

7

回帖

49

积分

新手上路

积分
49
发表于 2023-6-15 11:52:09 | 显示全部楼层 |阅读模式
用EX2做了按键用以启动电机旋转,按一次电机正反转一次,时间约3秒。进入中断后立即关闭中断,电机正反转旋转完成回位后再打开中断并清零中断标志,这个过程没有问题。问题是在电机旋转过程中,EX2明明是关闭了的,但在约1~2秒电机停转前再次按下这个外部中断2的按键,单片机仍能捕捉到这个操作并记录下来,这样导致在电机回位停转后又会再来一个正反转的循环。不知道这个问题是怎么导致的。电机回位停转时重打开EX2后也立即清0中断标志了,但仍然会再次进入电机正反转循环。。。何故?
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:135
  • 最近打卡:2024-12-25 10:15:05

47

主题

1350

回帖

8058

积分

荣誉版主

冲哥视频教程和各种开源资料QQ交流群884047237,可群

积分
8058
QQ
发表于 2023-6-15 13:51:11 | 显示全部楼层
看不到代码怎么写的,应该是代码的问题,建议如下修改:
1.仔细检查中断的开关是否关闭,是不是关错了中断,再不然关闭总中断也可
2.尝试在代码里增加电机运动结束标志位,如果电机没有运行结束,中断按键怎么按都不让他记录,这样就不会多次触发了。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-11-08 17:03:44

4

主题

7

回帖

49

积分

新手上路

积分
49
发表于 2023-6-15 15:36:36 | 显示全部楼层
进中断后即执行
INTCLKO &= 0xEF;
关闭中断。电机回位后执行
INTCLKO |= EX2;
再开中断,如果不开中断,则按键确实不影响,说明中断确实关闭了,但是在开中断前执行按键,该次按键操作仍然会被记录并执行,不知道什么原因。总中断不能关闭,需要计时控制电机工作时间。谢谢。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-11-08 17:03:44

4

主题

7

回帖

49

积分

新手上路

积分
49
发表于 2023-6-15 16:34:01 | 显示全部楼层
INTCLKO &= 0xEF;关中断的语句放中断外面。
---这样试过,放到主程序中断处理函数中,同样的问题复现。

点评

重新打开中断之前清空一下这个标志寄存器  详情 回复 发表于 2023-6-15 16:48
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:135
  • 最近打卡:2024-12-25 10:15:05

47

主题

1350

回帖

8058

积分

荣誉版主

冲哥视频教程和各种开源资料QQ交流群884047237,可群

积分
8058
QQ
发表于 2023-6-15 16:48:00 | 显示全部楼层
大*** 发表于 2023-6-15 16:34
INTCLKO &= 0xEF;关中断的语句放中断外面。
---这样试过,放到主程序中断处理函数中,同样的问题复现。 ...




重新打开中断之前清空一下这个标志寄存器
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-11-08 17:03:44

4

主题

7

回帖

49

积分

新手上路

积分
49
发表于 2023-6-15 17:16:12 | 显示全部楼层
AUXINTIF &= 0xEF;
加上这句后问题解决了,但硬件自动清零应该不需要软件再清啊?这是个什么问题?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-11-08 17:03:44

4

主题

7

回帖

49

积分

新手上路

积分
49
发表于 2023-6-15 17:16:32 | 显示全部楼层
AUXINTIF &= 0xEF;
加上这句后问题解决了,但硬件自动清零应该不需要软件再清啊?这是个什么问题?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-11-08 17:03:44

4

主题

7

回帖

49

积分

新手上路

积分
49
发表于 2023-6-15 17:20:31 | 显示全部楼层
大概明白了,虽然中断关闭了,但是产生了中断事件,所以在打开中断后会立即响应之前的中断事件请求。是这样理解吧?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 2023-6-15 18:43:34 | 显示全部楼层
这些标志位产生中断后,进入中断程序时硬件会自动清除
但是如果没有开启中断,满足触发条件时仍然会设置中断标志,开启中断后就会进入中断并自动清除标志
如果不希望出现一开启中断就进入中断函数的话,在开启中断前先手动清一下中断标志。
回复 支持 1 反对 0

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 15:27 , Processed in 0.165459 second(s), 102 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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