PWM为什么产生不了 作用!急求!
时间:10-02
整理:3721RD
点击:
void time0() interrupt 1
{
unsigned char i;
if(i)
{
TH0=(65536-pwm)/256;
TL0=(65536-pwm)%256;
P10=0;
}
if(~i)
{
TH0=65536-pwm/256;
TL0=65536-pwm%256;
P10=1;
}
}
我改变pwm的值 为嘛 P1^0口为什么不是矩形波 我用示波器看确实脉冲 怎么回事!
{
unsigned char i;
if(i)
{
TH0=(65536-pwm)/256;
TL0=(65536-pwm)%256;
P10=0;
}
if(~i)
{
TH0=65536-pwm/256;
TL0=65536-pwm%256;
P10=1;
}
}
我改变pwm的值 为嘛 P1^0口为什么不是矩形波 我用示波器看确实脉冲 怎么回事!
i设为全局变量
仔细看看你写的程序,逻辑错了
void time0() interrupt 1
{
unsigned char i;
if(flag==1)
{
TH0=(65536-pwm)/256;
TL0=(65536-pwm)%256;
P10=0;
flag=0;//这个是电平的时间
}
if(flag==0)
{
TH0=pwm/256;
TL0=pwm%256;
P10=1;//这个是高电平的时间
flag=1;
}
}
是这个 我打错了!我的实验的程序是这个!为什么也不对
有区别吗? 在中断程序,p1.0已经翻转2次了。 T0已经重置了2次了
void time0() interrupt 1
{
if(flag==1)
{
TH0=(65536-pwm)/256;
TL0=(65536-pwm)%256;
P10=0;
flag=0;//这个是电平的时间
}
else
{
TH0=pwm/256;
TL0=pwm%256;
P10=1;//这个是高电平的时间
flag=1;
}
}
这样应该就对了。