找回密码
 立即注册
查看: 248|回复: 2

《8051U深度入门到32位51大型实战视频》定时器中断学习心得

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-04-29 11:42:39

11

主题

18

回帖

157

积分

注册会员

积分
157
发表于 2025-1-13 15:45:11 | 显示全部楼层 |阅读模式

第7集

定时器是一个重要的单片机外设,很多与时间尺度相关的引用都需要用到定时器。比如精准的计时,精准的延时。

例如单线的DS18B20通信,就要精准计时,不然就无法识别出0和1,以及WS2812三色LED,也是需要时间刻度来确保区分出串行数据。
配置的时候结合手册外设的结构图来配置就很容易了。上面标注的寄存器名字跟头文件都是一一对应的。
定时器计数,溢出后可以中断,中断后触发中断函数,中断函数内处理相关的时间节点事件。
截图202501131543328410.jpg
像8051一样,定时器的中断入口通过关键字确定

void Timer0_Isr(void) interrupt 1                //3秒执行一次
{
        state = !state;               
        
        P00 = state;
        P01 = !state;
}


学arm的时候也是,中断的入口都是在某个配置文件内设置好的。
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-04-29 11:42:39

11

主题

18

回帖

157

积分

注册会员

积分
157
发表于 2025-1-13 17:00:36 | 显示全部楼层
第十一集

矩阵按键学习心得

矩阵按键可以实现更多的按键功能,通过扫描方式,逐行确定是哪个按钮被按下的。
通过对不同的行列组合测试以确定是哪一行,哪一列短接了,这样就可以判断处是哪个按钮被按下了。
截图202501131658062051.jpg
该课程可以学到IO的基本输入和输出功能,以及上拉电阻的概念。另外就是通过逻辑组合识别出是哪个位置按钮被按下了。
这个方法有给缺点没法实现组合按钮的识别,不知道我的理解正确不。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-04-29 11:42:39

11

主题

18

回帖

157

积分

注册会员

积分
157
发表于 2025-1-13 17:11:58 | 显示全部楼层

第八集

定时器周期性调度任务 学习心得

通过定时器实现周期性的对各个任务执行,可以有效避免卡在某个任务里,这样就需要对每个任务做细分了,确保每个任务在自己的执行周期内能够执行完毕。
定时器只需要在指定的周期内标记对应的任务要执行,并在主函数内执行相关的函数后清理标记确保下个周期再被记录。
实现类似的功能还可以通过时钟参考点,类似Ardunio提供的时间函数一样,循环里在每个任务有一个时间记录变量,循环到自己就去读取一下时钟看看有没有到自己的任务执行点,如果有就执行,否则就跳过去。
我觉得这两者还是挺像的。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-6 18:05 , Processed in 0.151089 second(s), 66 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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