完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include
__CONFIG(0X065A); __CONFIG(0X18FE); #define led RC2 #define led1 RC5 #define _XTAL_FREQ 8000000 #define uchar unsigned char int x; uchar count=0; void init(void); void interrupt tiMER1_ISR(void) { if(TMR0IF&&TMR0IE) { TMR0IF=0; led=1; for(count=0;count<1000;count++); } } void main(void) { init(); while(1) { led1=1; } //CLRWDT(); } void init(void) { TRISC=0X00; PORTC=0X00; OPTION_REG=0X00; //TMR0CS=0; TMR0IF=0; TMR0IE=1; PEIE=1; GIE=1; } |
|
相关推荐
8个回答
|
|
数据溢出了,把uchar count 改为uint count
最佳答案
|
|
|
|
这个论坛有没有大神啊?
|
|
|
|
我把uchar count 和中断里面的for()循环都去了 还是不能运行主函数 但是中断函数能正常运行 |
|
|
|
正常运行了啊,led=1;一直是灭的状态吧 |
|
|
|
led=1,灯是会亮的,只是时间很短,所以我就加了一个for循环延长时间 灯就会亮 灯亮了就说明执行了中断服务函数了,现在问题是,主函数里面的while()循环里面有一个语句是让另外一个灯亮,正常情况下这个灯应该一直亮才对啊,但是并没有亮,我用mplab sim了一下,程序一直在执行初始化函数 不执行while() 不知道为什么?另外我写了一个电平变化中断测试后 也是一样 中断能执行 但是就是出不来 正常情况下 定时器中断像这样写 应该没问题的啊 我用protues仿真 有堆栈溢出警告 |
|
|
|
努力加奋斗 发表于 2016-4-7 11:55 你先把count改为uint类型,uchar类型最大的数只能是255,255永远小于1000,所以跳不出for循环 我没用过pic单片机,不知道你定时器配置对了没有,你再看看配置 |
|
|
|
Aidaohuakai 发表于 2016-4-7 12:18 好的 谢谢了 |
|
|
|
。。。。。。本帖子已结帖
|
|
|
|
只有小组成员才能发言,加入小组>>
求解外围电路实现的是4脚给持续低电平复位并正常工作,高电平不工作的原因
2086 浏览 1 评论
3630 浏览 3 评论
PIC1946程序有一个变量在运行过程中恢复初始值其他变量保持不变
2336 浏览 2 评论
2763 浏览 0 评论
PIC16F1825的RC5引脚,在主程序中操作无效,在中断中可以改变是为什么?
4029 浏览 5 评论
978浏览 0评论
用XC8编译PIC18F25K80时提示下面Error,求怎么解决这个问题
6365浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 18:10 , Processed in 0.656822 second(s), Total 63, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号