PIC18F452定时器0问题
是用18452,开了定时器0,想使用定时器0,但现在开启定时器0定时1S后,使得某一个管脚上的LED灯闪烁,以提示时间,现在的情形是发现定时器0已启动,但不知道是什么影响到定时器,现象就是定时有时候1S闪烁一次,但有时候会突然在1S内闪烁几次,程序部分如下:void InterruptHandlerHigh (void)
{
if((INTCONbits.T0IF)&&(INTCONbits.TMR0IE)) //定时器溢出中断
{
timegrow = timegrow + 1;
TMR0L = 0x27; //CF 27 定时2.5ms
TMR0H = 0xCF;
INTCONbits.T0IF = 0; //清除T0IF
}
}
void main(void)
{
TRISC = 0X00; //如果屏蔽该句,发现端口不断有00输出,但此时并无串口初始化
TRISD = 0X00;
PORTD = 0X01;
Time0Iint();
while(1) //等待通讯中断命令。
{
time_basic_set();
if(F_1S_BACK)
{
PORTDbits.RD0 = ~PORTDbits.RD0; //通过RD0接的LED来判断出定时器存在异常情况
}
time_basic_reset();
}
}
已经将相应的其它中断都关闭,且硬件接有232输出,但发现如果屏蔽TRISC = 0X00;发现端口不断有00输出,但此时并无串口初始化
很无解中,请各位给些建议,谢谢! 自己先顶一个,等待高手解答! time_basic_set();
time_basic_reset();
这个是什么意思???? yklstudent 发表于 2013-5-1 21:02 static/image/common/back.gif
time_basic_set();
time_basic_reset();
这个是什么意思????
time_basic_set();是定时器0中断超过一定次数后,将F_1S_BACK置位;
time_basic_reset();是将F_1S_BACK清0;
sinc_mark 发表于 2013-5-2 08:58 static/image/common/back.gif
time_basic_set();是定时器0中断超过一定次数后,将F_1S_BACK置位;
time_basic_reset();是将F_1S_BACK清 ...
一直在清????????????? yklstudent 发表于 2013-5-2 10:43 static/image/common/back.gif
一直在清?????????????
恩,是一直在清,但置位的时候只有在1S到达的时候才会置位! 昨天测试的时候,发现只要使能了这一句:RCSTAbits.SPEN = 1; //(设置错误,有问题)//允许同步串行口工作。
就会影响到RD0,RD0的LED灯一直在闪烁,有时候串口会发出一些00 的数据来,是连续不断的发送,但我虽然是使能了串口,并没有给TXREG装载数据,无解中。。 不建议使用这个片子,建议 18F4520 代替,452这个片子厂家已经不推荐使用了。 Wxy8030 发表于 2013-5-3 10:29 static/image/common/back.gif
不建议使用这个片子,建议 18F4520 代替,452这个片子厂家已经不推荐使用了。 ...
谢谢楼上的,我最近自己的折腾这个芯片,感觉总是乖乖的,都不知道是不是自己的程序有问题还是什么回事,暂时手上没有4520,下次出去买一个看看就知道了! PIC的编译器有软件模拟功能,模拟运行一下便知道问题出在哪里了! Wxy8030 发表于 2013-5-3 10:44 static/image/common/back.gif
PIC的编译器有软件模拟功能,模拟运行一下便知道问题出在哪里了!
求一份软件模拟说明,谢谢! sinc_mark 发表于 2013-5-3 10:45 static/image/common/back.gif
求一份软件模拟说明,谢谢!
自己顶一下,顺道报道一下:我使用外接10M晶振,然后使用倍频,出现异常(LED灯闪烁),不开倍频的时候,倒是没有什么问题,现在还没找出导致该问题原因! 归结了一下,很可能是因为我原先使用的晶振有问题,原先使用10M的晶振,开启倍频之后会出现一些很奇怪的现象,现在使用20M的晶振,没开倍频,暂时不会出现异常! 不错,学习了
页:
[1]