这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » AtmanAVR AtmanAVR向导生成程序的一个错误!

共4条 1/1 1 跳转至

AtmanAVR AtmanAVR向导生成程序的一个错误!

院士
2006-09-17 18:14:16     打赏
AtmanAVR AtmanAVR向导生成程序的一个错误!



关键词: AtmanAVR     向导     生成     程序     一个     错误    

院士
2006-12-22 22:43:00     打赏
2楼
问     用AtmanAVR的向导生成程序可以很方便的完成很多初始化设置。
但是,当使用(16位)定时器时,将会有一个明显的错误,导致运行失败!

    “要同步写16位寄存器时,应先写入该寄存器的高位字节,再立即
写入它的低位字节。”(引用自《Atmega8原理及应用手册》第79页17行)

    而AtmanAVR的向导生成的程序中,恰恰将(16位)定时器的寄存器写入
顺序颠倒,结果,在AVRStudio调试时,就可以发现,赋值失败;而运行
当然也会出现错误。



    PS:AtmanAVR是需要注册的,未注册版本有30天使用限制,过期就无
法使用。
    另外,AtmanAVR安装后,是无法卸载的。运行它的Uninstall程序将会
使你的CPU使用率达到100%,却无法实现真正的功能。从某种意义上说,这
(卸载程序)是个病毒程序(呵呵。。。个人意见,only a joke)!
   
    保证有效的完全卸载AtmanAVR的方法是:重装系统! 1: 试验了一下,并没有出现你说的问题。……
    OCR1A = 0x0;
  ba:    10 92 4b 00     sts    0x004B, r1
  be:    10 92 4a 00     sts    0x004A, r1
    OCR1B = 0x0;
  c2:    10 92 49 00     sts    0x0049, r1
  c6:    10 92 48 00     sts    0x0048, r1
    TCNT1 = 0x0;
  ca:    10 92 4d 00     sts    0x004D, r1
  ce:    10 92 4c 00     sts    0x004C, r1
……
以上是自动生成的代码。3.8版本。

另外:对于30天限制版本,本人虽然不赞同(因为gcc是free的),但是考虑到毕竟作者付出了心血。建议最好30天过后,改为代码限制版本。小于4K或2K的代码还可以运行,同时可以生成HEX文件。这样对于初学者来说,还可以继续使用。同时也会扩大软件的影响力。

对于卸载,我试验了一下,确实没有把目录下的文件删掉。不知是不是软件的一个BUG。
2: 我的办法是:用CV的向导生成初始化代码,贴到GCC的程序中使用。 3: 我没有发现这个问题。另外楼主说的赋值的先后顺序,仅仅影响计时的精确程度。并不会造成仿真无法运行。怀疑楼主是否真的试过。

专家
2023-02-03 22:10:56     打赏
3楼

学习


专家
2023-02-03 22:16:47     打赏
4楼

学习


共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]