[AVR单片机] 高分悬赏IAR Atmega8 计数器T1

[复制链接]
3998|7
 楼主| aoshi0603 发表于 2011-11-30 21:26 | 显示全部楼层 |阅读模式
本帖最后由 aoshi0603 于 2011-12-12 09:28 编辑

用IAR AVR编译的M8程序,能让下面的计数器T1跑起来就行,我仿真时TCNT1就是不增长。不知道为什么,以前用ICC是好用的
工程在附件中。
  1. #include <iom8.h>
  2. #include <iomacro.h>

  3. #include <intrinsics.h>
  4. #include <comp_a90.h>

  5. void init_time1(void)
  6. {
  7.    TCCR1B = 0x00;                        //stop
  8.    TCNT1  = 0x0000;                        //
  9.    TCCR1A = 0x00;
  10.    TCCR1B = 0x02;                        //start Timer
  11. }

  12. main()
  13. {
  14.    unsigned int a;
  15.    
  16.    _CLI();                //全局中断禁用
  17.    init_time1();
  18.    MCUCR = 0x00;
  19.    GICR  = 0x00;
  20.    //_SEI();                //全局中断使能
  21.   
  22.   while(1)
  23.   {
  24.     a = TCNT1;
  25.   }
  26. }
ccxlslr 发表于 2011-12-1 08:46 | 显示全部楼层
你上面的设置会对时钟8分频,要多跑几步才会变。
ccxlslr 发表于 2011-12-1 08:48 | 显示全部楼层
要看TCNT1,不要看a
airwill 发表于 2011-12-1 09:40 | 显示全部楼层
也有可能是仿真软件的问题.
所以不要过于相信纯仿真的东西, 也要注重实际运行.
 楼主| aoshi0603 发表于 2011-12-1 11:38 | 显示全部楼层
这个Timer1我配置用来做计数器, 实际工程用到的一个功能. 但是用IAR AVR仿真时, TCNT1不变, 将程序下载到目标板上看效果时, TCNT1也是不变的, 问题不知道出在什么地方.
有可能是IAR AVR选项配置问题? 其它功能是好用的

还请熟悉IAR AVR的朋友下载工程帮看看:)
我用的IAR AVR v5.40.1
uc_zigbee 发表于 2011-12-2 17:56 | 显示全部楼层
iar 要硬件仿真才行。
airwill 发表于 2011-12-3 10:54 | 显示全部楼层
将程序下载到目标板上看效果时, TCNT1也是不变的?
    真要看看 IAR AVR 选项配置, 寄存器的地址定义,
还有, 程序里读出 TCCR1B  的值来验证一下
 楼主| aoshi0603 发表于 2011-12-12 09:27 | 显示全部楼层
谢谢大家, IAR确实是不支持软件仿真,或支持的不好, Time计数器都不走
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

113

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部