本帖最后由 xingnaipeng 于 2017-4-12 21:49 编辑
是这样的一个模块:1:控制口为单线口。
2:启动脉冲1ms低+4ms 高
3:输出字节:1ms低+3ms高为0;1ms高+3ms低为1,
目前采用的办法是delay_ms(X)来输出,但是这样,MCU的效率有点低。如果输出字节多的话,要有好几秒的delay了。
突然想到一个办法,就是把数据放到DMA里面,控制PWM。
求助是否可行,或者解决思路。
目前的程序:
void Write(u8 addr)
{
u8 i;
S_Low();
delay_ms(1);
S_High();
delay_ms(4);
for(i=0;i<8;i++)
{
S_High();
if(addr&0x01)
{
delay_ms(3);
S_Low();
delay_ms(1);
}
else
{
delay_ms(1);
S_Low();
delay_ms(3);
}
addr >>=1;
}
S_High();
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>