·首页 ·单片机应用 ·pic单片机教程 ·arm学习教程 ·AVR单片机 ·DSP芯片 ·接口电路 ·无线通信 ·存储器 ·模拟电路
·电路图 ·嵌入式系统 ·WinCE ·ucLinux ·Vxworks ·ucOSII ·可编程逻辑器件 ·led显示屏 ·PCB设计 ·传感器技术 ·仪器仪表

单片机论文网>AVR单片机>文章内容


上篇:AVR单片机从零开始
下篇:AVR 单灯闪烁的实现(2)

AVR 单灯闪烁的实现(3)

51c51  本站整理 

 
3.进入调试
3.1用AvrStudio进行调试
进入AVRStudio后,如图1所示,可以看到,除了标准的菜单、工具条等之外,下面就是若干个窗口。其中中部左侧是Workspace窗口,该窗口有3个页面卡,进入调试后自动转到I/O页面,这里有单片机内部的各种资源。从这里,可以看出为什么在进入调试时要选定型号了,选了型号,这里出现的内容也各不相同。我们点击Portb将Portb展开,可以看到有3个项:
PORTB  端口寄存器
DDRB  端口方向寄存器
PINB   引脚
用十六进制和二进制方式清晰地表达出了各位的清况。
右侧是源程序窗口,黄色箭头指向主程序。
这两个窗口下面又有两个窗口,左侧是OutPut窗口,进入调试后自动切换到信息页面。显示了调入文件的各种信息。右侧是观察窗口,有若干个页面卡,可以分组在各种页面卡中显示变量值。
除此之外,还可以通过菜单View分别调出寄存器、内存等各个不同的观察窗口。

图1 AvrStudio的窗口
按下F11,即可单步执行程序,按下F10可以用过程单步的方式执行程序(将一个函数作为一个语句来执行,不进入这个函数的内部)。
按下F10以过程单步的方式执行(很奇怪,io_init()按说应该一次执行完毕,但却跟踪进入了这个函数体,原因暂未明),执行到:DDRB=0x01后可以看到左侧窗口中DDRB的相应变化。如图2所示。

图2 DDRB的变化
继续按F10执行程序,可以看到PORTB和PINB都发生了变化,如图3所示

图3 PORTB和PINB发生变化
执行一个循环后,我们按F11,跟踪到函数内部看一看,如图4所示是跟踪进入了mDelay函数。
此时,可以看到,观察窗口中原来没有显示的变量此时已显示出了其数值。
 
图4 进入mDelay函数
这样,一步一步执行程序,即可观察各变量的变化。如果跟踪一段时间后已查看到结果,觉得这样的查看太慢了,也可以将光标置于本函数的未一行,然后点击Debug->Run to Cursor,即可全速执行到该光标处。
在调试时,我们也感到AvrStudio的模拟执行速度较慢,比如mDelay(500)在实际中延时约0.5s,但在作者的机器上却要执行好长一段时间―――我的机器还算是新的。因此,在调试时希望先给一个较小的数值,以免影响调试的效率。为此,回到winavr的Programmer Notpad中,将mDelay(500)改为mDelay(5),然后重新编译,切换回AvrSTudio时,可以发现AVRStudio已“察觉”这种变化,并询问是否要重新加载,如图5所示。
 
图5 重新加载更新了的目标文件
除了以上的一些调试方法外,Debug菜单还提供了诸如Reset(复位)、AutoStep(自动单步)等调试手段,大家可以自行测试。
3.2用AtmanAvr进行调试
如果使用AtmanAvr,那么在编译完成后,按F5进入调试。此时,可以看到菜单上多出一项Debug项,同时,在菜单、工具条的下方多出了一些窗口,如图6所示。从图中可以看出,其窗口与图1有些类似,事实上,Atmavr应该是嵌入的AvrStudio的早期版本的调试窗口。
除了这些窗口外,还可以通过查看->调试窗口 选项来获得更多的窗口,除了AvrStudio原有的一些窗口外,AtmanAvr还得供了LCD、LED和键盘这样三个窗口,可用于真实仿真。
 
图6 AtmanAvr进入仿真状态
进行调试的方法和3.1节的叙述基本类似,通过Debug菜单进行单步、过程单步、全速、自动单步、设置断点、运行到光标处等方法进行程序的调试,这里就不再一一叙述了。Debug菜单条如图7所示。

图7 AtmAvr的Debug菜单条

相关资料:
·AVR单片机从零开始
·AVR 单灯闪烁的实现(2)
·AVR开发软件介绍
·AVR 单灯闪烁的实现(1)
·ISP下载线介绍
·74HC595串入并出例子
·AVR熔丝设置
·USART与PC通信例子
·BASCOM-AVR入门第一例
·在BASCOM终端仿真窗口里练习QBASIC
·AVR单片机C语言入门第一例
·BASCOM基础知识

Copyright © 2004-2007 单片机论文网 - 免责条款