|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
#include <reg915.h> //用P89LPC915单片机的实时时钟模块进行计时
#define uchar unsigned char
sbit LED3=P0^3; //利用LED灯发光显示计时
sbit LED2=P1^4;
uchar data TIME_S;
uchar data TIME_M;
uchar data TIME_H;
uchar data TIME_D;
uchar data TIME_Y;
void Inc_time();
void RTC_ISR() interrupt 10 //中断程序
{
RTCCON&=0x63; //清除中断标志位
LED2=~LED2;
Inc_time(); //模拟计时程序
}
void main()
{
TIME_S=0;
TIME_M=0;
TIME_H=0;
TIME_D=0;
TIME_Y=0;
P0M1&=0xF7;
P0M2&=0xF7;
P1M1&=0xEF;
P1M2&=0xEF;
IEN0=0xC0; //对实时时钟初始化
WDCON=0xE0;
RTCH=0xE0; //定时1秒,每隔1秒中断一次
RTCL=0xFF;
RTCCON=0x63;
while(1)
{
}
}
void Inc_time()
{
TIME_S++;
if(TIME_S>4) //每过5秒LED3灯变化一次
{
LED3=~LED3;
TIME_S=0;
}
}
我要问的问题是,我的计时程序在中断中,并且运行时间没有超过1秒,计时应该很准确才对,为什么当计时100 多秒后,LED3发光会有延迟呢?大概慢1秒
我的程序是1秒来一次中断,计一个数,当计5个数后就是秒LED3灯变化一次
[ 本帖最后由 swallow8666 于 2009-5-31 21:22 编辑 ] |
|