#include <REGX52.H>
sbit ENA=P1^0;
sbit ENB=P1^5;
/**
* @brief 定时器0初始化,100毫秒@12.000MHz
* @param 无
* @retval 无
*/
unsigned int Duty_cycle_A ,Duty_cycle_B;
void Timer0Init(void)
{
TMOD &= 0xF0; //设置定时器模式
TMOD |= 0x01; //设置定时器模式
TL0 = 0xA4; //设置定时初始值
TH0 = 0xFF; //设置定时初始值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
ET0=1;
EA=1;
PT0=0;
}
void Timer0_Routine() interrupt 1
{
static unsigned int T0Count;
TL0 = 0xA4; //设置定时初始值
TH0 = 0xFF; //设置定时初始值
T0Count++;
if(T0Count<Duty_cycle_A)
{
ENA=1;
}
else
{
ENA=0;
}
if(T0Count<Duty_cycle_B)
{
ENB=1;
}
else
{
ENB=0;
}
if(T0Count>=100)
{
T0Count=0;
}
}
这是我的定时器和中断函数
#include <REGX52.H>
#include"Timer0.h"
#include"direction.h"
void main()
{
Timer0Init();
EA=1;
while(1)
{
Duty_cycle_A=0;
Duty_cycle_B=100;
advance();
}
}
这个是我的主函数,目的是用L298N驱动模块控制电机转速,没有报错,但是发现却调用不了定时器,也就是无法控制转速,这是什么情况啊?