找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2050|回复: 14
收起左侧

51单片机定时器设置1微秒中断一次会影响主程序运行吗

  [复制链接]
ID:98195 发表于 2024-11-3 20:25 来自手机 | 显示全部楼层 |阅读模式
定时器中断服务函数设置1微秒加一次,这样短的时间中断一次会影响主程序吗
回复

使用道具 举报

ID:155507 发表于 2024-11-3 22:19 | 显示全部楼层
在51单片机上设置定时器每1微秒中断一次,确实会对主程序的运行产生较大影响,主要原因如下:

1.中断频率过高:1微秒的中断意味着每秒触发100万次中断。对于51单片机这样的8位MCU,时钟频率一般在12MHz到24MHz左右。以12MHz为例,每个机器周期是1微秒,因此每次中断几乎会占满整个系统的处理能力,导致主程序几乎没有时间执行。

2.中断处理时间:中断发生时,单片机需要保存现场并调用中断服务函数,这会消耗一定的时间。在每微秒中断一次的情况下,中断服务函数还没有执行完,下一次中断可能又发生了,这样会导致中断堆积,主程序几乎不能正常运行。

3.主程序的执行被极大延迟:主程序中的任务无法顺利执行,因为中断的优先级通常高于主程序,这会导致主程序频繁被打断。若主程序需要一定的连续时间处理任务,这样的频繁中断会严重干扰其执行。

回复

使用道具 举报

ID:401564 发表于 2024-11-3 23:20 | 显示全部楼层
没有人会这么干的
1微秒一次的中断,哪怕是STM32,也会一卡一卡的,更不用说8051了
中断中还会++或者if之类的,还会有现场保护,这么一来,主程序几乎没有执行的机会
回复

使用道具 举报

ID:517951 发表于 2024-11-4 07:22 | 显示全部楼层
啥活需要1us进中断做一次啊? 设1ms-10ms中断做一次不行吗?
回复

使用道具 举报

ID:1132101 发表于 2024-11-4 08:15 | 显示全部楼层
所有时间几乎都一直在处理中断程序,主程序就没办法跑了,这个还不算影响主程序吗?
回复

使用道具 举报

ID:1121801 发表于 2024-11-4 08:27 | 显示全部楼层
开玩笑吧,6Mhz的晶振机器周期就要2us了,12Mhz晶振的机器周期也要1us,如果你是1us中断,指令周期就不止1us了,你还让主程序执行什么,不要说主程序,就是中断程序你都执行不了
回复

使用道具 举报

ID:879348 发表于 2024-11-4 08:48 | 显示全部楼层
再高级的芯片,强如电脑CPU,也不可能使用1us中断
回复

使用道具 举报

ID:607298 发表于 2024-11-4 09:09 | 显示全部楼层
好像最快做过100us的中断
回复

使用道具 举报

ID:1109793 发表于 2024-11-4 09:40 | 显示全部楼层
我的5A60在22.1184下100US还是可以用的。对12864的显示基本看不出来。
回复

使用道具 举报

ID:57657 发表于 2024-11-4 13:59 | 显示全部楼层
你定时器设置1us中断一次,中断触发后必须在1us内返回,否则会导致程序异常、计时不准。
回复

使用道具 举报

ID:1135459 发表于 2024-11-4 14:14 | 显示全部楼层
51单片机的定时器通常是基于机器周期的,计数通常是基于时钟周期,标准定时器模式不支持这样的精确控制。如果成功实现1微秒中断,这将是一个非常高的中断频率。主程序将频繁地被中断,没办法运行的。
回复

使用道具 举报

ID:1135314 发表于 2024-11-5 10:02 | 显示全部楼层
在设置定时器中断时,需要权衡中断频率和系统性能之间的关系。建议可以根据实际应用场景的需求来选择合适的中断频率,以确保系统能够稳定、高效
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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