
下面这个程序是应用在stc上的pwm程序,测试成功
#includesfr CCON =0xD8; //PCA control register
sfr CMOD =0xD9;
sfr CL =0xe9;
sfr CH =0xF9;
sfr CCAP0L=0xea;
sfr CCAP1L=0xeb;
sfr CCAP0H=0xfa;
sfr CCAP1H=0xfb;
sfr CCAPM0=0xda;
sfr CCAPM1=0xdb;
sbit CR=0xde; //位寻址
void main(void)
{
CMOD=0x02; //使用系统时钟,时钟输入源频率fosc/2。PWM频率=fosc/2/256
/
7 6 5 4 3 2 1 0
CIDL - - - cps2 CPS1 CPS0 ECF
CIDL: =0时,空闲模式下PCA计数器继续工作;=1时,空闲模式下PCA计数器停止工作。
CPS2,CPS1,CPS0:PCA计数脉冲选择。010,定时器0的溢出,可以实现可调频率的PWM输出。
ECF: =1时,使能寄存器CCON CF位的中断;=0时,禁止该功能。
/
CL=0x00;
CH=0x00;
CCAP0L=0xc0; //当CL小于CCAP0L时,输出为低;大于时,输出为高。
CCAP0H=0x7f; //当CL由ff变为00溢出时,CCAP0H装载到CCAP0L中,实现无干扰的更新PWM。
CCAP1L=0xc0; //当CL小于CCAP1L时,输出为低;大于时,输出为高。
CCAP1H=0xc0; //当CL由ff变为00溢出时,CCAP1H装载到CCAP1L中,实现无干扰的更新PWM。
CCAPM0=0X42; //使能PWM模式,PWM0=1,ECOM0=1
CCAPM1=0X42; //使能PWM模式,PWM1=1,ECOM1=1
CR=1; //启动PCA计数器
while(1)
{
CCAP0H=RF4432_TxRxBuf[4]; //此处改变占空比
CCAP1H=RF4432_TxRxBuf[5];
CCAP2H=RF4432_TxRxBuf[6]/25;
};
}
任何无线数传模块都存在通讯数据丢失或数据包丢失的情况。
如希望增加通讯的稳定性,应该在如下几个方面着手。
增加发射功率、降低通讯速率、开启曼彻斯特、数据白化、FEC等措施增加通讯信号的强度和可靠性。
换用高增益天线,增强接收信号强度,减少数据丢失的可能。
在程序中添加应答机制,在数据出现丢失或数据包CRC校验错误时及时重发。
以上就是关于sTc8 pwm调光程序怎么写全部的内容,包括:sTc8 pwm调光程序怎么写、为什么SI4432会漏接数据、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)