capcomsnk 发表于 2024-7-9 10:26:54

能否输出一组18个不同周期不同占空比的脉冲。

如题。能否输出1组脉冲共18个,每个都不同周期和不同占空比。如下图。


hsrzq 发表于 2024-7-9 10:40:37

你这个感觉用PWM无法实现,或者至少说用PWM是不合适的。
感觉反而和单总线比较近似,只不过只有输出没有输入而已。
要不去看看单总线的处理办法?

晓飛飛 发表于 2024-7-9 10:53:02

脉冲的周期和占空比有无具体数值,提供一下,帮你匹配合适的方案

capcomsnk 发表于 2024-7-9 10:58:13

主要是这是用高电平的脉宽传递数据。改变高电平的脉宽传递数据。    单总线貌似占空比不变。

晓飛飛 发表于 2024-7-9 11:10:30

capcomsnk 发表于 2024-7-9 10:58
主要是这是用高电平的脉宽传递数据。改变高电平的脉宽传递数据。    单总线貌似占空比不变。 ...

根据高电平的脉冲宽度,找到周期的最大公约数,作为基本延时单元,再根据脉冲宽度和延时单元的比例做个码表(数组),循环顺序输出低电平和高电平延时即可。
最笨的办法就是用STC-ISP软件对逐个脉冲宽度生成18个delay函数,顺序调用即可。

capcomsnk 发表于 2024-7-9 11:25:50

好的,感谢提示。{:handshake:}

soma 发表于 2024-7-9 15:28:41

pwm实现估计有点难,如果短时间可以单线通讯形式实现。

capcomsnk 发表于 2024-7-9 16:17:12

遇到新问题了,目前TIMER中断的方式来累计,1us中断一次来累计时间。低电平固定350us,到了时间也就是累计到了350就反转为高电平。但是用示波器测试发现,低电平时间居然有500us。哪里会造成延迟呢?

梁工 发表于 2024-7-9 17:04:39

capcomsnk 发表于 2024-7-9 16:17
遇到新问题了,目前TIMER中断的方式来累计,1us中断一次来累计时间。低电平固定350us,到了时间也就是累计 ...

1us中断一次MCU是忙不过来的,进入中断、退出中断都差不多1us了。

梁工 发表于 2024-7-9 17:11:59

单单一个波形图,没有时序参数,没法判断的。
页: [1] 2
查看完整版本: 能否输出一组18个不同周期不同占空比的脉冲。