英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流
标题:
通过调节电位器改变占空比的程序 zhuan
[打印本页]
作者:
star
时间:
2012-8-21 18:43
标题:
通过调节电位器改变占空比的程序 zhuan
用电阻器调节占空比,频率不变(需求的频率是1000Hz,用的是外部晶振16M, PR2设为255,TMER2预分频值设为16,这样算下来频率应该是976Hz)
include <p18cxxx.h>
#pragma config FOSC = HS
#pragma config PWRT = OFF
#pragma config WDTEN = OFF
void adinit(void)
{
TRISAbits.TRISA3=1; //设置RA3为输入方式
ADCON0 = 0x0F; //选择A/D通道为RA3,打开A/D转换器
ADCON1 = 0x00; //选择VDD和地作为参考电压源,且把RA3口设置为模拟量输入方式
ADCON2 = 0x8D; //转换结果右对齐,在工作状态,且使AD转换时钟为16tosc
PIE1 = 0x00;
PIE2 = 0x00;
PIE1bits.ADIE = 0; //A/D转换中断禁止
INTCONbits.PEIE = 0; //外围中断禁止
ANSELbits.ANS3=1; //设置模拟输入
ADCON0bits.GO_DONE=1; //A/D转换启动
}
void pwm_init(void)
{
CCPR2L=ADRESL;
CCP2CON=0x0C;
CCP2CON|=((ADRESH<<4)&0x30);
INTCON=0x00;
PR2=0xFF;
T2CON=0x06; //设置预分频比为16
TRISCbits.TRISC1=0; //设置CCP2引脚为输出方式
}
void main(void)
{
pwm_init();
adinit();
while(1)
{
CCPR2L=ADRESL;
CCP2CON|=((ADRESH<<4)&0x30);
ADCON0bits.GO_DONE=1; //A/D转换启动
}
}
欢迎光临 英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 (http://enroobbs.com/)
Powered by Discuz! X3.2