Ucos II用CVAVR开发,芯片选择atmega128,程序在AVR Studio 4仿真看到没有问题,但是用Pot
Ucos II用CVAVR开发,芯片选择atmega128,程序在AVR Studio 4仿真看到没有问题,但是用Poteus 7选择Amega128仿真没有现象,为什么?程序开发工具为CVAVR,版本信息是2.03.4:
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_609416O3J9SH.JPG
(原文件名:CVAVR版本信息.JPG)
AVR Studio 4版本信息是4.18:
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_609419ZHYZ1X.JPG
(原文件名:VR Studio 4版本信息.JPG)
Poteus 7版本信息是7.4 SP3(Build 6792):
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_609417GBMRDZ.JPG
(原文件名:Poteus 7版本信息.JPG)
Ucos中user任务为(详细程序见下载文件中的main.c):
#define LED0PORTA
INT8U LEDDATA = 0xff;
void Task(void *ppdata)
{
ppdata=ppdata;
for(;;)
{
LED0 = --LEDDATA;
OSTimeDly(5);
}
}
OSTimeDly()为20.48ms;原因为AVR Studio 4仿真中我使用8M内部晶振,T0初始化为(详细程序见下载文件中的OS_CPU_C.C):
#define OCR0_DELAY_20MS 160 (见os_cfg.h)
void InitHardware(void)
{
TCCR0= 0X0F; //T0:CTC模式,1024分频
TIMSK |= 0X02; //允许中断
TIFR&= 0XFD; //清除标志
OCR0 = OCR0_DELAY_20MS; //CTC比较值
}
理论上仿真时现象应该为每102.4ms(20.48*5)PORTA重新赋值一次。
实际上仿真现象为:
<font color=blue>AVR Studio 4断点运行时结果为:<font color=#000000><font color=black>
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_609422X5GWA8.JPG
<font color=green>(原文件名:第一次运行结果.JPG)
第一次运行结果
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_609421GGHC8R.JPG
(原文件名:第二次运行结果.JPG)
第二次运行结果
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_609420ZULRMD.JPG
(原文件名:第n次运行结果.JPG)
第n次运行结果
第一次与第二次间隔时间为:209874.38-106837.13=103037.25≈103.03ms
PORTA第一次为0XFE;第二次为0XFD;
第一次与第n次间隔时间为:5258837.38-106837.13=5152000.25≈5152ms,计算n为50
PORTA第一次为0XFE;第n次为0XCC;,计算n为50
从上面结果看出没有问题。
<font color=blue>Poteus 7仿真运行结果:<font color=#000000><font color=black>
从图上看到PORTA永远都是0XFE,没有变化,其设置如图:
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_609418BB09LG.JPG
<font color=green>(原文件名:Poteus 7仿真运行结果.JPG)
仿真时间我已经运行到10分钟之久,可是现象还是0XFE。设置里也已经设置为内部8M。
<font color=red>为什么会出现两者不一致的问题,现在我把文件都上传,下载后如果需要编译时直接用CVAVR打开后请安装下图设置CVAVR,无需勾选smart Register Allocation和Automatic Global Register Allocation,编译就可以通过。<font color=#000000><font color=black>
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_609423CRK75H.JPG
<font color=green>(原文件名:设置CVAVR.JPG)
<font color=blue>这样大虾们也可以帮忙仿真下,看看是否与小弟一样,如果哪位大虾手头上正有Atmega128的开发板,那么就请大虾下载小弟的程序,看看实物是否也如此呢,小弟刚刚学习ucos,邵贝贝的书看完不久,正准备用atmega28仿真,查错1天多了,还是没有结果。。。
点击此处下载 ourdev_609428SNUVWQ.rar(文件大小:2.77M) <font color=green>(原文件名:atmega128.rar) 自己顶一下,继续等待大虾解答 没有人弄ucos?还是没有人弄atmega128?? 可能是弄CVAVR的不多 我挺关注的,我想问一下楼主,你是直接使用官方的例子吗?官方貌似只有IAR和GCC的,坛里有ICC上成功的,你可以参考一下,成功了说一下 哥们,请你共享一下 基于AVR Studio 4的 AVR128 UCOS 代码,我正在学,有劳了 INT8U LEDDATA = 0xff;
前加DDRA = 0xFF;
设置成OUTPUT
试试看看可以不 我也是遇到这样的问题编译没问题就是仿真有问题没啥现象
页:
[1]