wifi之1M传输速率时占空比

当设备在找热点时,工作时最低速率1M,按思科的计算公式,在1M时,如果一个是64个字节的包,约可以发1000个包左右,


如果我们的设备一直在找路由器, 那么发送数据包的间隔时间最短为1ms,或更小上点,后面采用避让算法会加长,


按实际与路由器交换数据来看,1秒约通讯了40-60个数据包, 那换算过来说,也是说,当40个左右的设备在同样的环璄中


找路由器就会导致网络不能用。



以下是STC8A8K通过串口传输设置PWM占空比的程序: ``` #include <STC8.H> #define FOSC 24000000UL //系统钟频率,单位Hz #define BAUD 9600 //串口波特率 sbit LED = P1^0; //PWM输出引脚 unsigned int dutyCycle = 0; //PWM占空比 void InitUART() //初始化串口 { TMOD &= 0x0F; TMOD |= 0x20; //设定为定器1的方式2(8位自动重载) TH1 = TL1 = -(FOSC/12/32/BAUD); //设定波特率(需要根据实际情况修改) TR1 = 1; //启动定器1 SM0 = 0; SM1 = 1; //设定为模式1(8位异步收发) REN = 1; //启动接收 EA = 1; ES = 1; //启动串口中断 } void InitPWM() //初始化PWM { TMOD &= 0xF0; //设定为定器0的方式1(16位定器) TMOD |= 0x01; TH0 = 0; TL0 = 0; //设定初值为0 ET0 = 1; //使能定器0中断 TR0 = 1; //启动定器0 } void main() { InitUART(); //初始化串口 InitPWM(); //初始化PWM while(1); } void UART_ISR() interrupt 4 using 1 //串口中断服务程序 { if(RI) //接收中断 { RI = 0; dutyCycle = SBUF; //读取占空比 LED = 1; //启动PWM输出 } } void PWM_ISR() interrupt 1 using 2 //PWM中断服务程序 { static unsigned int cnt = 0; cnt++; if(cnt > 10000) //设定PWM周期为10ms(需要根据实际情况修改) { cnt = 0; LED = 0; //关闭PWM输出 } else if(cnt > dutyCycle*100) //根据占空比设定PWM输出 { LED = 0; } else { LED = 1; } } ``` 在该程序中,通过串口接收到的数据为PWM占空比,然后通过定器0中断来控制PWM输出。其中,PWM输出的引脚为P1.0,可以根据实际情况进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mcusun2000

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值