11 2011 档案
摘要:刚刚接触IAR,编译默认生成的是.a90文件,但直接用avr studio下载时提示非正规HEX文件,不给我下载,郁闷了。其实也简单,如下图所示配置文件后面加几行字就OK了。//Output File-Ointel-extended,(XDATA)=.eep-Ointel-extended,(CODE)=.A90-Ointel-extended,(CODE)=.hex这时在编译链接,.hex文件就产生了,而且这时候生成的.a90文件也可以下载了。
阅读全文
摘要:最近因为项目需要开始使用IAR for AVR,我用的是5.40版本的,主要是5.40以上才包括了aTtiny87,至于安装文件和和谐文件,大家自己找吧,很好找的。 1.编译报错如图所示:很显然你没有使能寄存器的位定义。方法如下:Project ——> Option ——> General Options ——> System(如下图所示),勾选Enable bit definitions in I/O-Include files即可2.MCU型号选择如果和我一样都次都是以空工程创建的话,不过忘了第一步先进Project ——> Option ——> Genera
阅读全文
摘要:在一些智能充电器中,单片机要一直监测电池的电压,一旦超过某一数值,就由恒流充电切换到恒压充电。撇开充电器制作相关的各种知识和概念不说我们集中注意力来考察:当电压接近那个设定的临界值时发生的一些事情。 当电压接近临界值的时候,系统还处于恒流充电状态,于是电压开始朝突破临界值的方向上升……在某一时刻,电压突破了临界值,程序检测到了这一数值变化,立即将充电状态由恒流切换为恒压。然而,由于恒流状态时加载在电池上的电压要远远高于恒压时所保持的电压,所以几乎在同一瞬间,单片机监测到的电池电压又跳回了临界值以下——于是,系统又头脑简单地将工作模式切换回了恒流状态……如此反复,在电池电压处于该临界值附近的时.
阅读全文
摘要:分辨率、参考电压这些地球人都知道的就不说了。当“参考电压”和“分辨率”被确定后,每两个数值间的差值,即“步进量”。上面的“步进量”在AD中称为1LSB(最低有效位,Least Significant Bit)所代表的电压值。以5V参考电压、10位精度的AD为例1LSB能够表示的电压值为:1LSB所表示的电压值 = 参考电压5V / (0x3FF + 1)= 4.88mv对任何AD来说,量化后输出的数字信号值都是以1LSB的电压值步进的,介于1LSB之间的电压将按照一定的规则进行入位或舍弃,这个过程中造成的误差被称为“量化误差”,量化误差属于原理性误差,是无法消除的。0.5 LSB的非线性度:在
阅读全文
摘要:调度器: 一方面,调度器可以看作是一个简单的操作系统,允许以周期性或(更少见)单次方式来调用任务 从底层的角度看,调度器可以看作是一个由许多不同任务共享的定时器中断服务程序,因此,只需要初始化一个定时器,而且改变定时的时候通常只需要改变一个函数。此外,无论需要运行1个、10个还是100个不同的任务,通常都可以使用同一个调度器完成。注意,这种“共用中断服务程序”与桌面操作系统提供的共用打印功能非常类似。合作式调度器: 合作式调度器不但可靠而且可预测的主要原因是在任一时刻只有一个任务是活动的。抢占式调度器:混合式调度器:这里面一个关键性问题就是如何解决不可重入函数: a、修改或读取变量(尤其是用于
阅读全文
摘要:这几天终于开始正式上班了,似乎我梦寐以求这一天已经很久了,但总的来说还是很兴奋的。 虽然这两天被寝室里的吵的要死,他们天天在寝室玩游戏到凌晨3、4点还开音响,这两天困的要死,但到了公司,还是可以写代码一直到下班,虽然我的眼睛都疼。不过现在已经搬到实验室住了,也不存在这个问题了。 压力还是有的,主要是想好好的做好PKE这个项目,虽然这个项目还没有立项,但我很想表现一下。 还有就是英语的压力,听说读写,貌似都有要求,感觉技术差点,只要英语好,想学都是很快的。英语,英语,英语。。。。。。 努力,努力,努力。。。。。。 老婆。。。。。。。
阅读全文
摘要:80C51 在电源重置后(Power On Reset)所执行的第一个程序模块并不是使用者的主程序main(),而是一个隐藏在KEIL-C51 标准链接库中称为startup.a51 的程序模块。
阅读全文