6 个解决方案
#1
定时器定时时间设置60us
uchar T1,T2,T3;//定义三个变量,分别保存你需要的PWM高电平宽度
uchar T=0;
定时中断函数中:
{
T++;
if(T==0)
{
P10=1;//三个输出都设高
P11=1;
P12=1;
}
if(T==T1)P10=0;//P10高电平结束
if(T==T2)P10=0;//P11高电平结束
if(T==T3)P10=0;//P12高电平结束
}
uchar T1,T2,T3;//定义三个变量,分别保存你需要的PWM高电平宽度
uchar T=0;
定时中断函数中:
{
T++;
if(T==0)
{
P10=1;//三个输出都设高
P11=1;
P12=1;
}
if(T==T1)P10=0;//P10高电平结束
if(T==T2)P10=0;//P11高电平结束
if(T==T3)P10=0;//P12高电平结束
}
#2
T不需要另外处理,当其溢出之后就回0,又从0开始,60us*256=15.36ms
#3
在主循环中改变T1,T2,T3就可以得到不同的占空比
#4
非常感谢,按照这思路我先编下代码 遇到问题再请教
#5
现在3路IO口都输出变占空比pwm
都是从低占空比到高占空比之后再变为低占空比这样子渐变,总的时长大概10s左右
1路开始渐变(2,3)保持不变,1路开始渐变6s后 2路开始渐变,2路渐变6s后3路开始渐变
,3路开始输出占空比6s后1路开始渐变。整个一个循环
都是从低占空比到高占空比之后再变为低占空比这样子渐变,总的时长大概10s左右
1路开始渐变(2,3)保持不变,1路开始渐变6s后 2路开始渐变,2路渐变6s后3路开始渐变
,3路开始输出占空比6s后1路开始渐变。整个一个循环
#6
为什么溢出后就归零呢?
#1
定时器定时时间设置60us
uchar T1,T2,T3;//定义三个变量,分别保存你需要的PWM高电平宽度
uchar T=0;
定时中断函数中:
{
T++;
if(T==0)
{
P10=1;//三个输出都设高
P11=1;
P12=1;
}
if(T==T1)P10=0;//P10高电平结束
if(T==T2)P10=0;//P11高电平结束
if(T==T3)P10=0;//P12高电平结束
}
uchar T1,T2,T3;//定义三个变量,分别保存你需要的PWM高电平宽度
uchar T=0;
定时中断函数中:
{
T++;
if(T==0)
{
P10=1;//三个输出都设高
P11=1;
P12=1;
}
if(T==T1)P10=0;//P10高电平结束
if(T==T2)P10=0;//P11高电平结束
if(T==T3)P10=0;//P12高电平结束
}
#2
T不需要另外处理,当其溢出之后就回0,又从0开始,60us*256=15.36ms
#3
在主循环中改变T1,T2,T3就可以得到不同的占空比
#4
非常感谢,按照这思路我先编下代码 遇到问题再请教
#5
现在3路IO口都输出变占空比pwm
都是从低占空比到高占空比之后再变为低占空比这样子渐变,总的时长大概10s左右
1路开始渐变(2,3)保持不变,1路开始渐变6s后 2路开始渐变,2路渐变6s后3路开始渐变
,3路开始输出占空比6s后1路开始渐变。整个一个循环
都是从低占空比到高占空比之后再变为低占空比这样子渐变,总的时长大概10s左右
1路开始渐变(2,3)保持不变,1路开始渐变6s后 2路开始渐变,2路渐变6s后3路开始渐变
,3路开始输出占空比6s后1路开始渐变。整个一个循环
#6
为什么溢出后就归零呢?