电机测速感觉无法进入中断计数
{
TMOD = 0x01; //设置定时器0 1 均为工作方式1
TH0 = (65536 - 50000) / 256;//设置定时器0为50ms定时
TL0 = (65536 - 50000) % 256;
EA = 1;
EX0 = 1; //打开外部中断0
IT0 = 0;
ET0 = 1;
TR0 = 0;
}
void ser(void) interrupt 0
{
count++;
}
void Time0(void) interrupt 1
{
char num;
TH0 = (65536 - 50000) / 256;//重装初值
TL0 = (65536 - 50000) % 256;
num++;
if(num == 20)
{
num = 0;
TR0 = 0; //关闭定时器
speed = count*60; //测出当前的速度为多少圈每分钟
count = 0; //计数清零
TR0 = 1; //重新开启定时器
}
}
你要计数的话,我建议你 IT0 = 1;
void Time_init(void) //定时器初始化
{
TMOD = 0x01; //设置定时器0 1 均为工作方式1
TH0 = (65536 - 50000) / 256;//设置定时器0为50ms定时
TL0 = (65536 - 50000) % 256;
EA = 1;
EX0 = 1; //打开外部中断0
IT0 = 0;
ET0 = 1;
TR0 = 1;
}
void ser(void) interrupt 0
{
count++;
}
void Time0(void) interrupt 1
{
char num;
TH0 = (65536 - 50000) / 256;//重装初值
TL0 = (65536 - 50000) % 256;
num++;
if(num == 20)
{
num = 0;
TR0 = 0; //关闭定时器
speed = count*60; //测出当前的速度为多少圈每分钟
count = 0; //计数清零
TR0 = 1; //重新开启定时器
}
}
现在弄得差不多了