打印
[PIC®/AVR®/dsPIC®产品]

PIC单片机会重复执行main函数么?

[复制链接]
2408|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小弟刚接触单片机,试着谢了个灯闪的程序。如下。file:///C:\Users\advanpro-pc\AppData\Roaming\Tencent\Users\1102392232\QQ\WinTemp\RichOle\2L43`AZSCR86N7X_TB0$C3P.png
主函数使用while(1)实现重复灯闪,延时程序也比较简单。烧录后可以使LED等一闪一闪。但是当我把while循环去掉重新烧录入PIC单片机时却发现单片机还是能一闪一闪。不应该是只闪一次么?还是说PIC单片机本身会重复执行main函数。
file:///C:\Users\advanpro-pc\AppData\Roaming\Tencent\Users\1102392232\QQ\WinTemp\RichOle\2L43`AZSCR86N7X_TB0$C3P.png


2L43`AZSCR86N7X_TB0$C3P.png (22.7 KB )

灯闪程序

灯闪程序

5LFJVNDF1LP6B%YH80~DC.png (4.18 KB )

灯闪--延时程序

灯闪--延时程序
沙发
hbzjt2011| | 2015-8-17 13:47 | 只看该作者
你确认烧录成功了吗?没有用过PIC的单片机,不过我想肯定不会的。

使用特权

评论回复
板凳
青鸟的虚像|  楼主 | 2015-8-17 14:11 | 只看该作者
hbzjt2011 发表于 2015-8-17 13:47
你确认烧录成功了吗?没有用过PIC的单片机,不过我想肯定不会的。

谢谢。的确不是单片机的问题。刚才才查到,是编译器完成的功能,让这个程序执行完后可以重复执行。

使用特权

评论回复
地板
huarana| | 2015-8-17 16:48 | 只看该作者
你的代码有问题

你可以在你的代码后面加一行

while(1);   就可以了

因为你要让单片机有事可干,不能让单片机啥事都不干啊
那样程序肯定运行不正常。


ps:我当年也犯过这错误,实在51上。。呵呵

使用特权

评论回复
5
青鸟的虚像|  楼主 | 2015-8-17 17:27 | 只看该作者
huarana 发表于 2015-8-17 16:48
你的代码有问题

你可以在你的代码后面加一行

恩,其实后面还有一个调用程序要补充的,只是想先确定下前面部分有没有错,结果被编译器的重复功能误导了。谢谢你。

使用特权

评论回复
6
huarana| | 2015-8-19 10:42 | 只看该作者
青鸟的虚像 发表于 2015-8-17 17:27
恩,其实后面还有一个调用程序要补充的,只是想先确定下前面部分有没有错,结果被编译器的重复功能误导了 ...

这跟编译器没关系 - -

不信你换个编译器试试。。

使用特权

评论回复
7
scottmaxwell| | 2015-8-24 13:27 | 只看该作者
你这样写 ,程序运行到最后就跑飞了,main()函数循环运行  是因为程序跑飞后单片机又复位了,重新开始运行。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

37

帖子

1

粉丝