完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
一个定时器就可以,只说说我的思路:首先要有一个公共的时基,比如你的三路PWM范围是0~1000Hz,而你的占空比是以1%步进,那么就让定时器以10ms中断一次。
建立全局变量 【计数数组[3]】 和 【三份正占空比变量ABC】,这个正占空比变量是char类型,是在主while(1)中根据你的占空比得出来的,表示每中断多少次就翻转一次,在中断里只是为整个计数数组每个变量加一,在主while(1)中计数数组每到正占空比变量的值就翻转相应引脚,同时翻转标志变为【100-正占空比变量】。 表达能力有限,有很多地方说不清楚,就不多说了。 或许你可以看看讲并发机制的书。 |
|
|
|
|
|
谢谢,没听太懂,能简单的用程序表达一下吗?
|
|
|
|
|
|
一个定时器内跑最小的时基,然后定义变量自++到你需要的时间
void WMout(PWMH) //PWM输出 { if(time0<WMH) {  WM=1; } else {  WM=0; }> 同时注意要在定时器内加time0的范围限制函数 if(time0>100) { time0=0; } |
|
|
|
|
|
简单点说就像乐队的指挥,一个人指挥所有人
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1599 浏览 0 评论
imx6ull 和 lan8742 工作起来不正常, ping 老是丢包
4738 浏览 0 评论
4229 浏览 9 评论
3822 浏览 16 评论
4398 浏览 1 评论
4210浏览 3评论
2379浏览 0评论
3393浏览 0评论
1158浏览 0评论
2843浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 19:28 , Processed in 0.766817 second(s), Total 80, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
5637