求助 : 在用MC68HC908JL8的产品中有出现定时器延时不稳定情况?程序如下,各位高手帮忙指点
#include
#include "derivative.h" /* include peripheral declarations */
#include
#define in_T _PTD.Bits.PTD4//输入信号(周期方波)
#define control_T _PTD.Bits.PTD3//输出信号
#define check_T _PTD.Bits.PTD5//PTD5
/******************************************************/
/*本程序想实现:在输入一个周期方波T信号中,同步输出5个T宽度的信号方波 ;但在程序定时+判断时候,波行漂移很大,不知道是何原因 ?
情况如下:
1: 如果我不加: while(in_T==0);//等待输入信号高电平
信号很正常,但输出方波不能和源信号T同步.
2: 加了后却出现定时时间老是变动,也不能同步,不知道为何?
3: 我也用过扑捉中断方式,但我要执行其他动作的时候,会当机的?
*/
/******************************************************/
void main(void)
{
_CONFIG2.Byte=0x11;//
_CONFIG1.Byte=0x09;//disable cop
DisableInterrupts; /* enable interrupts DisableInterrupts*/
//--------INSET PORT In/Out PIN-------?
DDRD=0xCB; //set I/O IND4/PD5 OUTD3/PD1/PD0
PTD=0;
//-------------------------------------
asm LDA T1SC
T1SC=0X82;//time 控制 CS_PIN=1;
T1MOD=0x5D41;// 48ms overflow
T1SC_TOF=0; //启动定时
while(1)
{
T1MOD=0x5D41; //重新配置数据50MS
T1SC_TOF=0; //启动定时
control_T=1;//p1_2
//延时部分4.7个T时间
while(T1SC_TOF!=1);//等待时间溢出
while(in_T==0);//等待输入信号高电平
//************************//
T1MOD=0x5D41; //重新配置数据50MS
T1SC_TOF=0; //启动定时
control_T=0;//p1_2
//延时部分4.7个T时间
while(T1SC_TOF!=1);//等待时间溢出
while(in_T==0);//等待输入信号高电平
}
/* please make sure that you never leave main */
}
[此贴子已经被作者于2007-2-1 11:22:10编辑过]
[此贴子已经被作者于2007-2-1 11:43:55编辑过]
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |