请问有用pic做过spwm或epwm的么? 我看到下面这个占空比固定的pwm程序,里面禁止了总中断和外围中断,没有用到TMR2中断,没有任何关于TMR2IF的操作,觉得很奇怪阿,看了数据手册(16f886)我自己觉得应该要用到TMR2中断。 我试了一下开中断进行ad采样,结果pwm就没有输出了。 请教:1.pwm是否需要TMR2中断 2.在产生pwm的同时可否进行ad中断 void CCP1INIT(void) { CCPR1L=0X7F; CCP1CON=0X3C; /*设置CCP1模块为PWM工作方式,且其工作 /*循环的低2位为11,高8位为01111111=7F*/ INTCON=0X00; /*禁止总中断和外围中断*/ PR2=0XFF; /*设置PWM的工作周期*/ TRISC=0XFB; /*设置CCP1引脚为输出方式*/ }
/*主程序*/ void main(void) { CCP1INIT(); /*CCP1模块的PWM工作方式初始化*/ T2CON=0X04; /*打开TMR2,且使其前分频为1, /*同时开始输出PWM波形*/ do { ; }while(1); /*系统开始输出PWM波形。如果系统是 /*多任务的,则可以在此执行其它任务,而 /*不会影响PWM波形的产生*/ } |