猛的这么一来还真不知道从那里开是讲好
我觉得应该从电路方面说起,不过考虑到说了可能也白说
我就先不说电路方面的问题了,要有人感兴趣我在继续
我今天就说一下 通用计时器
操作:
令端口B递加计数,以通用计时器T1来延时,时间为1秒
程序:如 TIME1.C
/*Filename : TIME1C.C*/
/*端口B递加计数,总计时间=200*5ms=1秒*/
#include "f240regs.h"/*这个我想就没有必要说了吧,要不明白自己查去*/
int i,del=200;
main(void)
{
OCRA=0;/*设定端口A及B为一般I/O*/
PBDATDIR=PADATDIR=0xffff;/*设定端口A及B输出全暗*/
InitCPU();
T1CNT=0;
TlPR=50000;/*设定T1周期=50000*0。1us=5ms*/
GPTCON=0x0000;/*禁用TxCMP*/
T1CON=0x1140;/*内部基本计时=cpu_clk/2=10MHz=0.1us,连续上数*/
while(1)/*重复执行*/
{
for(i=0;i<0xff;i++)/*数据递加00---ff*/
{
PBDATDIR=~i!0xff00;/*数据由端口B低准位输出*/
while(del>0)/*重复计时200次*/
{
while((EVIFRA&0x0080)==0);/*若上数T1CNT〈 T1PR,T1PINT=0,等待之*/
EVIFRA=EVIFRA|0x0000;/*清楚T1PINT标志*/
del--;/*重复次数-1*/
}
del=200;/*重复计时200次,总计时间=200*5ms=1秒*/
}
}
}