原创 发现《AVR单片机应用专题精讲》一处Bug

2013-7-5 15:27 1060 9 10 分类: MCU/ 嵌入式

 

网友陈官威发现了我书中软件定时器代码的一个bug,会造成定时的不准。
 
修改的方法是,在文件softtmr.c中,修改
struct TSOFTTIMER sfTMR[SOFTTIMER_CNT];
volatile struct TSOFTTIMER sfTMR[SOFTTIMER_CNT];
 
在文件softtmr.h中,修改
extern struct TSOFTTIMER sfTMR[SOFTTIMER_CNT];
extern volatile struct TSOFTTIMER sfTMR[SOFTTIMER_CNT];
 
同时在struct TSOFTTIMER中,将
volatile unsigned int cnt;
修改为
unsigned int cnt;
 
avr

文章评论4条评论)

登录后参与讨论

shaoziyang 2014-3-3 09:45

因为文件较大,所以放在百度网盘上下载。 http://pan.baidu.com/share/link?shareid=458158&uk=321377241

用户1696113 2014-3-1 09:04

请问,书上完整的程序在你博客的那个位置下载!

shaoziyang 2013-7-9 09:51

以前一直以为只需要将中断使用的变量加volatile关键字,这次发现使用结构体变量中,如果只对中断使用的部分变量加volatile,而不是对整个结构体变量声明为volatile,结果还是可能会出错。

飞言走笔 2013-7-5 17:25

邵工,能讲下为什么要这么改吗?谢谢
相关推荐阅读
shaoziyang 2017-12-15 11:06
《micropython 入门指南》正式出版了
第一本专门介绍MicroPython的中文图书《MicroPython入门指南》由电子工业出版社正式出版了(各大书店和网络书店都有)。MicroPython是近年开源社区中最热门的项目之一,它功能强大...
shaoziyang 2017-11-01 15:30
《MicoPython入门指南》一书即将发行
《MicoPython入门指南》一书即将发行,这是第一本专业介绍MicroPython的中文书籍,请大家多关注和支持。​​...
shaoziyang 2017-07-13 19:50
micro:bit 专用电池扩展板
最近Microbit这么火,就想着要做点什么,于是就有了这个Microbit的专用电池扩展板。它完美配合原版的microbit,可以为microbit增加电池、蜂鸣器功能,功能上超过 MI:power...
shaoziyang 2017-06-13 09:09
用pyboard的dac播放音乐
官方的PyBoard带有DAC功能,使用DAC,我们可以播放简单的音乐。 先准备好两根铜丝,一个有源音箱,一个音频线。 然后从官方网站下载两个文件: http://micropython.org/...
shaoziyang 2017-06-13 09:03
microbit巡线小车 BoBBoT
BoBBoT 是一个使用 BBC micro:bit 控制的巡线小车套件,它很容易组装。 它特别为儿童设计,让孩子可以通过实践学习计算机科学概念。使用 BoBBoT 可以学习: 算法设计 (流程图和...
shaoziyang 2017-06-12 08:29
micropython升级到了 1.9.1
micropython升级到了 1.9.1,主要改进有: v1.9.1 修复了 stm32 的 USB 存储, lwIP 绑定和 VFS 问题 This release provides an imp...
我要评论
4
9
关闭 站长推荐上一条 /2 下一条