Ryan 发表于 2006-11-18 10:44:01

為什麼我把程序下到M16後可以運行,但是把ISP線從PC上拔掉就不可以了呢?

這是我第一個例子,用來使8隻LED燈動態跑起來的,用GCC編譯的,當我把ISP線從PC的並口拔掉後,燈就不能亮了,我不知道是怎麼回事,不是說程序下載到芯片中後,就可以運行嗎?我實在是不明白,請馬老師指點,非常感謝!!!

源程序如下:

#include<avr/io.h>

int main()

{

char i,j,k=1;

DDRC=0xFF;

PORTC=0x01;

while(1)

{

for(k=0;k<8;k++)       

{

   PORTC=~(1<<k);

          for(i=0;i<255;i++)

                  for(j=0;j<255;j++)

                             ;

}

}

}

hao3361 发表于 2007-7-10 22:52:50

为什么我的液晶屏第一次下载时候显示的是好的,但是关掉电源重新打开后就变成乱码了,液晶接口接线没问题,急,哪位高手指点一下??

julou 发表于 2009-8-26 16:20:31

狂顶起来,我也出现了楼主一样的问题,等高手来解答!

jackielau 发表于 2009-8-26 16:51:20

楼主
估计是复位问题!把ISP的连接线和CPU断开!

albert_w 发表于 2009-8-26 17:59:06

正常,下载线拔掉那头后把rst给拉低了

hollymacs 发表于 2009-8-29 09:15:16

把使用的口都加4.7K上拉电阻。

Ryan 发表于 2009-8-30 22:37:16

问题早解决了,忘了来这里说怎么解决的了!
如下:
我是直接把ISP线连接PC的那端给断开了,而另一端还和ISP口(开发板上的插座)连接着,当把这个也断开后,就没问题了!

armok 发表于 2009-8-30 23:08:03

machao 发表于 2009-8-31 20:39:56

阿莫的解释不完全对,容易照成误解。

并口ISP中实际有6跟线,5V,GND,ISP的3根,还有一根是RESET。如果你的ISP引脚没有其它用途,是可以不用断开的。

但还有一个关键是RESET!

    我提供的并口ISP,里面HC244的供电是目标板给的,没有使用PC电源,这是为了保护PC(PC比AVR贵)。连接AVR的RESET脚是HC244的输出,当从下载线从PC的打印口拔掉后,HC244输出RESET所对应的输入口悬空了。悬空是什么概念?输入一定是“1”吗?如果不是“1”,那么RESET就是“0”,那么AVR就不启动。

    正确的应该是拔与目标板的连接。如果非要拔与PC的连接(我真不知道你们处于什么考虑么,难道拔与目标板的连接比与PC的困难?),那么建议你在我给出的并口参考图中,在HC244的6、7、8脚上对电源拉个5-10K电阻。

   特别说明:我只是分析我推荐给出的电路,也就书上125页的图,其它的ISP不在此列。不过分析的方法和思路相同。

    一个这么简单的下载线,我的设计还是不能满足所有人的需要。自己还需要努力也。

machao 发表于 2009-8-31 20:41:57

1楼的问题不属于此问题,见帖子“马老师,我板子不能仿真下载的问题解决了。”
页: [1]
查看完整版本: 為什麼我把程序下到M16後可以運行,但是把ISP線從PC上拔掉就不可以了呢?