No.3408 作者:xukeke 邮件:wayachina@163.com ID:82429 登陆:1次 文章数:1篇 最后登陆IP:125.110.120.173 最后登陆:2007/7/5 15:07:00 注册:2007/7/5 15:05:19 财富:105 发帖时间:2007/7/5 15:07:00 发贴者IP:125.110.120.173 标题:xukeke:pic 一个频率..PWM输出程序出错求救 摘要:No.3408pic 一个频率..PWM输出程序出错求救 #include <pic.h> #define CCPR2 0x001b unsigned int new_data_h; unsigned char new_data_l; unsigned int sum_data = 0x01; //ad采集的总和 unsigned char flag = 0; unsigned int in_vref ; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`~~~~~~~~~~~~~~~~~~~~~~~~~~~ void initpwm( void ){ //```````````````````````````` CCP2M3 = 1; // ccp2 pwm 模式 RC1 CCP2M2 = 1; CCP2M1 = 1; CCP2M0 = 1; CCPR2L = 0X80; CCP2X = 0; CCP2Y = 0; //```````````````````````````` T2CKPS1 = 0; //16分频 T2CKPS0 = 0; TOUTPS3 = 0; TOUTPS2 = 0; TOUTPS1 = 0; TOUTPS0 = 0; TMR2 = 0; //定时器值 0 TMR2ON = 1; //定时器开启 PR2 = 0XFE; //时基 } //---------------------------------------------- //=========================================================================== void Delays( unsigned int s ){ unsigned int i; for( i = s; i > 0 ; i-- ){ asm("nop"); asm("nop"); asm("nop"); asm("nop"); } } //=========================================================== void pwm_hl_add( unsigned int v,unsigned int ds){ unsigned int buffer_ds; unsigned int buffer_pwm; buffer_pwm = v ; buffer_ds = ds; while( buffer_pwm > CCPR2L ){ CCPR2L++; Delays( buffer_ds ); } } //=========================================================== //=========================================================== void pwm_hl_uadd( unsigned int v,unsigned int ds){ unsigned int buffer_ds; unsigned int buffer_pwm; buffer_pwm = v; buffer_ds = ds; while( buffer_pwm < CCPR2L ){ CCPR2L--; Delays( buffer_ds ); } } //=========================================================== void init(void){ CCPR1L=0X00; CCPR1H=0X00; INTCON=0X00; PIR1=0X00; // PIR2=0X00; PIE1=0X00; // PIE2=0X00; } //--------------------------------------- ......
>>返回讨论的主题
|