一个定时器产生3路pwm

yoveldf 2015-06-22 02:46:05
现一单片机,有一个8bit定时器,其余普通IO口,先需利用定时器实现输出3路pwm,且占空比可变(从小变到大,再从大变到小),周期大概15ms
...全文
313 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
overlordmax 2015-08-09
  • 打赏
  • 举报
回复
为什么溢出后就归零呢?
yoveldf 2015-06-28
  • 打赏
  • 举报
回复
非常感谢,按照这思路我先编下代码 遇到问题再请教
yoveldf 2015-06-28
  • 打赏
  • 举报
回复
现在3路IO口都输出变占空比pwm 都是从低占空比到高占空比之后再变为低占空比这样子渐变,总的时长大概10s左右 1路开始渐变(2,3)保持不变,1路开始渐变6s后 2路开始渐变,2路渐变6s后3路开始渐变 ,3路开始输出占空比6s后1路开始渐变。整个一个循环
worldy 2015-06-22
  • 打赏
  • 举报
回复
在主循环中改变T1,T2,T3就可以得到不同的占空比
worldy 2015-06-22
  • 打赏
  • 举报
回复
T不需要另外处理,当其溢出之后就回0,又从0开始,60us*256=15.36ms
worldy 2015-06-22
  • 打赏
  • 举报
回复
定时器定时时间设置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高电平结束 }

27,383

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧