调频率和占空比PWM程序
#include
#defineT3RUNtemppage=SFRPAGE;SFRPAGE=0x01;TR3=1;SFRPAGE=temppage
#defineT3STOPtemppage=SFRPAGE;SFRPAGE=0x01;TR3=0;SFRPAGE=temppage
typedefunsignedintuint;
typedefunsignedcharuchar;
typedefunsignedlongulong;
sfr16RCAP2=0xca;
sfr16RCAP3=0xca;
sfr16RCAP4=0xca;
sfr16TMR4=0xcc;
sfr16TMR3=0xcc;
sfr16TMR2=0xcc;
sfr16PCA0CP0=0xfb;
sfr16PCA0CP1=0xfd;
sfr16PCA0CP2=0xe9;
sfr16PCA0CP3=0xeb;
sfr16PCA0CP4=0xed;
sfr16PCA0CP5=0xe1;
uchartemppage;
voidt3_fre_set(uintval){//T3频率设置,计算公式为:(T3时钟频率/(2*val))
temppage=SFRPAGE;
SFRPAGE=0x01;
RCAP3=~val+1;
TMR3=RCAP3;
SFRPAGE=temppage;
}
voidt3_ini(){//t3为频率输出模式
temppage=SFRPAGE;
SFRPAGE=0x01;
TMR3CN=0x00;//TR3=0,T3尚未启动
TMR3CF=0x0e;//T3采用系统时钟,TOG3=1,T3不计数时输出为1,DCEN=0
SFRPAGE=temppage;
}
//voiddelay1ms(uinttime){//延迟1ms
//uinti;
//uintj;
//for(i=0;i