完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近碰到一个有趣的问题,想用PIC16F1828的定时器1来简单的记个时,到时间后让一个小灯翻转亮起来,现在问题就出现在这个小灯上~#include
__CONFIG(0x0182); __CONFIG(0x38ff); #define uint unsigned int #define uchar unsigned char #define LED1 RC0 #define LED2 RC5 #define LED_TRI TRISC=0x00 void interrupt tmer1(void); char data1,data0,data2; void main() { LED_TRI; //设灯的管脚为输出模式 GIE=1; //开总中断 PEIE=1; //开外部中断 TMR1IE=1; //开定时器1中断 TMR1GIE=0; //关定时器1门控中断 TMR1IF=0; //清除定时器1标志位 TMR1GIF=0; TMR1H=0x3C; TMR1L=0xAF; T1CON=0x01; //开定时器1 T1GCON=0x00; data1=0; LED2=1; while(1); } void interrupt tmer1(void) { if(TMR1IF==1) { TMR1IF=0; TMR1H=0x3C; TMR1L=0xAF; data1++; if(data1==0x28) { data1=0; data2++; LED1=!LED1; LED2=!LED2; } } } 现在的现象是到时间后,LED2能正常的翻转闪烁,但是LED1却不能,感觉就是执行到那里后,直接跳过去了。LED1单独测试时没有问题的,如果把LED2放到while(1)里面翻转闪烁,LED1在中断里也是能正常的闪烁,真是奇了怪了,管脚的配置都没有问题,就是不能亮~ 希望大神来解释一下这种现象。 |
|
相关推荐
8个回答
|
|
不太懂,学习下,等楼下答案!
|
|
|
|
除了LED2赋值了,LED1没有赋值,其他也看不出什么问题来,等楼下
|
|
|
|
|
|
|
|
可以试下加点延迟以后再赋值
|
|
|
|
几个月过去了,不知道楼主 解决了,找到问题了吗
|
|
|
|
并没有,后来就没继续追下去了,可能跟使用的板子有关,毕竟用的是自己焊的电路板~ |
|
|
|
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
求解外围电路实现的是4脚给持续低电平复位并正常工作,高电平不工作的原因
2077 浏览 1 评论
3501 浏览 3 评论
PIC1946程序有一个变量在运行过程中恢复初始值其他变量保持不变
2333 浏览 2 评论
2758 浏览 0 评论
PIC16F1825的RC5引脚,在主程序中操作无效,在中断中可以改变是为什么?
4015 浏览 5 评论
964浏览 0评论
用XC8编译PIC18F25K80时提示下面Error,求怎么解决这个问题
6347浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 09:51 , Processed in 0.668947 second(s), Total 65, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号