KEIL的逻辑分析仪(Logic analyzer)测得的时间真的准吗?
这是我实验的一个多任务程序。
N1是1s取反一次的,T[0].Run是每隔1s置1一次,T[1].Run是每隔2s置1一次。
这些变量在逻辑对应关系上完全正确,但是x轴所显示的时间却与软件有很大差别。为什么会这样呢?
用示波器测得N1的确是每隔1S取反1次,逻辑分析仪(Logic analyzer)下显示的N1却是每隔48ms取反1次,这个算不算软件自身BUG呢?
之后又用Logic analyzer测了1个定时器中断取反的方波,显示还是有问题,网上查了一下Logic analyzer的使用,人家显示怎么就能正常呢?有遇见过这种情况的吗? 也可以试试你的逻辑分析仪仿真时间准不准,,,欢迎提出意见, 我用的是51 KEIL3
《51单片机轻松入门 基于STC154K系列》有详细说明:软件仿真只能仿功能简单的老型号,比如AT89C2051,STC89C52等,增强型单片机的新功能无法软件仿真,只有硬件仿真才是准确的,也就是说,软件仿真只能仿STC单片机的部分功能,硬件仿真才能仿STC所有功能,IAP开头的单片机,比如IAP15W4K58S4具有硬件仿真功能,只要能下载程序,即可硬件仿真。STC开头的型号,可使用IAP开头单片机的代替实现硬件仿真。STC与IAP都是STC公司的单片机,价格都在7元内,这7元比传统上千元的仿真器更简便好用。
查查看keil里的单片机晶振设置的是多少
晶振频率设置的与定时器设计时的频率一致。
单片机选型后来又更改为80C51型号,Logic analyzer显示的波形(相同的栅格时间0.05s)与上图相比变宽了一些,旦是时间依然不对。这会是什么设置上的问题呢?
上图MCU选型用的是STC15W401as
Logic analyzer属于软件仿真,这样仿真的参数就就很重要,如果软件包有这些参数,那应该就是准的,如果参数不对,那结果也就不对了。
最好能从keil的库里选一个单片机型号,然后再看测试的数据对不对
本人就是从KEIL库里面选择的单片机型号
就是从KEIL库里面选择的单片机型号
那就不太清楚了
谢谢解答,呵呵呵。
但是我后来又选型89C51老型号的mcu,单独进行了定时器IO口取反的软件仿真,在软件逻辑分析仪窗口显示的时间和程序还是相差很大呀!这有怎么说呢
看来51MCU的软件仿真只能选择老版89C51才行。
之前定时器取反IO口软件仿真测试,之所以存在问题,是因为疏忽了老版89C51定时器无自动重装初值导致,到底还是程序问题,改成定时器中断手动重装初值仿真就正确了。
同样的程序设置,同样的功能,仅仅更换将mcu型号更换为STC15W401AS,软件仿真下的逻辑分析仪显示的IO口取反时间就有问题了!
结个贴,做个备忘