永发信息网

如何用AVR studio 验证延时程序(同样适合KEIL)

答案:1  悬赏:30  手机版
解决时间 2021-11-19 03:15
如何用AVR studio 验证延时程序(同样适合KEIL)
最佳答案
那样的真实速度,尤其是模拟一个延时程序,需要比较长的时间,这里就阐述如何简单和正确的进行延时程序的调试。下面是个典型的AVR延时子程序DELAY:LDI R16,197PUSH R16DEL1:PUSH R16DEL2:PUSH R16DEL3:DEC R16BRNE DEL3POP R16DEC R16BRNE DEL2POP R16DEC R16BRNE DEL1POP R16 z 先将汇编程序中的延时参数197改为3,重新编译后进入调试方式。(更简单的方式是先单步执行初试化部分的指令,当执行完“ldi r16,197”一句后,使用鼠标双击Register窗口中R16寄存器,将R16的值改写为3,这样就不需要重新编译程序了。)
z 使用单步执行的方式执行延时子程序的每一句语句,查看程序的逻辑对不对,能否正确运行,堆栈是如何工作的,SP指针如何变化,各个寄存器如何变化,PC的变化,RAM中数据的变化。这样即了解了AVR的工作原理,也了解程序设计的技巧),或验证程序是否同自己想象的那样正确,而且训练了如何熟练使用DEBUG(熟练使用工具也是很重要的一环)。
z 验证了整个延时程序没有逻辑错误后,可以查看延时子程序的延时时间了。1.将延时参数由3改回197,编译后进入调试方式。 2.在调用该子程序的语句“rcall delay”处设置一个断点;在接下来的一个语句“sbi portc,0”处设置第二个断点。 3.按F5,全速运行程序。 4.当程序在第一个断点处停下时,到Processor的选项中(展开该图标)找到Stop Watch子项,双击将其清零。 5.按F5,从断点处继续全速运行程序(开始调用延时子程序)。 6.等大约十几秒或几十秒后(取决于你的PC速度),程序在第二个断点处停下(子程序模拟运行时,AVR Studio下面状态栏中的运行图标为绿色,暂停为黄色)。 7.查看Processor的选项中Stop Watch的值(本例中为999826.75us),它记录下调用子程序返回后的时间,该时间值即为延时子程序的运行时间。 由此验证了延时子程序的执行时间。调节延时参数,可以得到不同的延时时间,通过软件模拟可以精确的得到。这比使用在线实时仿真的手段要方便多了,而直接在目标板上运行,你也不能得到精确的时间。使用软件模拟仿真是现在调试技术的发展方向。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
2.5寸的SATA硬盘能不能用在台式机上?
求鹿晗单人西装的图片,要高清的,最好不要微
雨霖铃 问题
急求exo金钟仁Kai的一系列图!!!!!
庭院小鱼池如何用鹅卵石砌墙的
海门哪里有承兑汇票贴现的?或者说海门哪里有
中国联通有哪些领导搞权钱权色交易
临沂东下高速到临大怎么走
包头历史上我叫王土地的人物原型是谁?
2016考研报名定向和非定向的区别是什么
剑三雪山恩仇奇遇怎么做
哪位大哥知道鄄城考科目三去哪里考 我是问具
求廿乱的婚难从~~~~ 求发~
windows下IP转发的问题
中兴手机屏幕失灵应该怎么处理?
推荐资讯
紫外分光光度,溶液稀释N倍但最高吸收峰的吸光
潘香坪村地址在什么地方,我要处理点事!
我老婆嫌我没钱,跟我发了信息说一分钱也是爱,
继电器sj-s-112dm哪几个脚是通的
锦鲤抄这首歌的音高不高
马兰士SR73比较老的功放,后面有几个pre out
锂电池折叠电动车能续航四五十公里的有哪些品
学西点需要多长时间呢
excuse me 可以缩写吗
中国语文报刊协会课堂教学分会地址在哪,我要
450m路由器怎么样
龙文教育(金童路)地址在哪,我要去那里办事,
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?