PIC单片机CCP1中断是什么意思

PIC单片机CCP1中断是什么意思,是什么情况下产生中断,... PIC单片机CCP1中断是什么意思,是什么情况下产生中断, 展开
 我来答
天上曲_one
2013-06-06 · TA获得超过639个赞
知道小有建树答主
回答量:238
采纳率:0%
帮助的人:216万
展开全部

CCP模块包含了捕捉,比较,PWM三个功能

CCP1IF是捕捉与比较器功能中用到的中断,PWM模块是没有这个中断的

在捕捉模式下,可配置中断产生时机为:

  1.   每个下降沿

  2. 每个上升沿

  3. 每4个上升沿

  4. 每16个上升沿

在比较模式下, CCPR1的16位值不断与TMR1的值作对比,当两者匹配时,CCP1脚会被驱动,至于驱动成什么状态,取决于CCP1M的值,同时将CCP1IF中断标志位置位.

更多追问追答
追问
我现在要用PIC单片机生成SPWM做正弦波逆变器,要设置什么寄存器呢?const uchar table[128]
我通过查这个表,为什么占空比都没有变化,那个表是有128个正弦波数值的,太多我没写出来
追答

你就是要做PWM信号发生器, 这个我常做的

首先用PR2设置频率,然后查表后就修改占空比寄存器,

我这里有个信号发生器的程序,是PIC16F886单片机,用C语言写的,你参考一下.

里面有修改占空比的程序:

CCPR1L = pwm_duty>>2;
   CCP1CON &= 0b11001111;
   temp = pwm_duty;
   temp &= 0b00000011;
   temp <<=4;
   CCP1CON |= temp;

你用查表得到的值直接赋线pwm_duty就可以了

PWM的开启用这个:

CCP1CON = 0x0e;   //单输出,P1A低电平有效
 TRISC2 = 1;
 PR2 = 119;    //25KHZ
 CCPR1L = 120;   //初始化时占空比设为100%,输出一条直线
 TMR2IF = 0;
 T2CON &= 0b11111100; //T2预分频比设为1:1
 TMR2ON = 1;
 while(TMR2IF==0);
 TRISC2 = 0;    //开始输出PWM

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式