打印

比较模式的理解

[复制链接]
1514|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
action99|  楼主 | 2011-8-12 18:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
CCP比较模式启动后不能产生一个CCP1F的中断,,如果改变CCP1L、CCP1H值时同样输出一样的脉冲,这是啥回事?调试时用PIC18F4520  程序如下:

#pragma interruptlow CCP1_isr
void   CCP1_isr(void){
  PIR1bits.CCP1IF=0;
PORTDbits.RD2=~PORTDbits.RD2;  
}

#pragma code

void main(void){
    ClrWdt();
init();
  while(1){  
    ClrWdt();
     }
}
//*****************************************
//   init
//*****************************************
void  init(void){
  PORTA=0;
  LATA=0;
  ADCON1=0X0F;
  CMCON=0X07;
  TRISA=0x04;
  PORTA=0;
  LATB=0;
  TRISB=0Xc3;
  PORTB=0x00;
  LATC=0;
  TRISC=0X00;
  PORTC=0x00;
  
  LATD=0;
  TRISD=0X80;
  PORTD=0x80;
  
  LATE=0;
  TRISE=0X00;
  PORTE=0;


TRISCbits.TRISC2= 0; //设定RC2为输出
LATCbits.LATC2 = 0;    //CCP1引脚置低位
TRISB = 0;//PB.0-.7口作输出
CCP1CON = 0x02;//CCP1比较模式,
    //0x02电平翻转,0x0a软件中断,0x0b特殊事件触发
INTCONbits.GIE = 1;//全局中断打开
INTCONbits.PEIE=1;//外围设备中断打开
PIE2bits.TMR3IE=1;//定时器3中断打开
PIR2bits.TMR3IF=0;//定时器3溢出标志
IPR2bits.TMR3IP = 0;//定时器3溢出中断优先级为高中断
CCPR1H=0x53;//高8位初值
CCPR1L=0xe8;//低8位初值
PIE1bits.CCP1IE=1;//CCP1中断打开
PIR1bits.CCP1IF=0;//CCP1溢出标志
IPR1bits.CCP1IP = 1;//CCP1溢出中断优先级为高中断
T3CONbits.RD16 = 0;//关闭定时器3的16位读写
T3CONbits.T3CCP2 = 1;//定时器3是CCP1的时钟源
T3CONbits.T3CKPS1 = 0;//分频1:1
T3CONbits.T3CKPS0 = 0;
T3CONbits.T3CCP1 = 0;//定时器3是CCP1的时钟源
T3CONbits.TMR3CS = 0;//定时器3选择定时方式
T3CONbits.T3SYNC = 0;//无效
T3CONbits.TMR3ON = 1;//打开定时器3


}
沙发
yewuyi| | 2011-8-12 21:42 | 只看该作者
这些问题还是自己看手册解决把.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

87

主题

189

帖子

2

粉丝