对于长期玩单片机的朋友都知道,程序运行BUG在所难免,重复性的调试过程永远是痛苦的,加入你对所使用的IDE应用还不是很熟悉,对于他的在线仿真调试工具使用不是很顺手,那么下边的方法可能会帮到你哦。
为了可以更好地帮助到哪些处于困难阶段的朋友,我特此针对于通用型单片机和AVR系列单片机的特点,总结了两种可以调试程序的方法,仅供于大家参考使用! If you have a better way, please leave a comment below.
方法一:通用方法:想知道程序执行到那里或者是不是到达了这里,可以在该处加上流水灯的闪烁程序。一目了然。代码实现方法如下:
开头定义一下
#define DEBUG_HERE_PROGRAM 1
unsigned char PB1 = 0;
中间的部分省略。。。。。。。
需要测试地方如下
if DEBUG_HERE_PROGRAM == 1
if (PB1=0)
{
PORTB &=~( 1<<PB1);
PB1=1;
}
else
{
PORTB |=( 1<<PB1);
PB1=0;
}
delayxms(100);
#endif
方法二:AVR专用方法 : 通过初始化串口以后,利用寄存器的设置,向缓冲区发送数据传送到串口!!
while(!(UCSR1A&(1<<UDRE1)));
UDR1=0xff;//此处的0xff为自己想要看到的数据(可自定义);
好了,以上我自己用到的两种调试方法,希望给大家带去灵感,请大家批评指正!
转载请注明出处~