英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流
标题:
CCP1作为捕捉功能问题请教
[打印本页]
作者:
min
时间:
2012-8-18 11:28
标题:
CCP1作为捕捉功能问题请教
各位高手帮忙分析一下下面的程序,问题出在什么地方。
目的:用CCP1的捕捉功能,实现捕捉外部CCP1(RC2)输入脉冲,并计数捕捉的脉冲个数,捕捉到第七个脉冲前,RB2输出为RC2处脉冲,捕捉到第8、9个脉冲时,使RB2为低。然后清0循环。
/////capture1/////
/////use unit B/////
#include <16f877a.h>
#fuses HS,NOWDT,PUT,NOPROTECT,BROWNOUT,NOLVP
/////全局变量声明
static int i=0; //处理计数值变量声明
/////CCP1中断处理
#int_ccp1
void ccp_isr()
{
i++; //处理计数值加1
}
/////主函数
void main()
{
set_tris_b(0); //PORT B全部为输出模式
set_tris_c(0xff); //PORT C全部为输入模式
while(i<9)
{
/////setup CCP
setup_ccp1(CCP_CAPTURE_RE); //ccp1动作条件设置,上升沿捕捉
/////中断允许
enable_interrupts(int_ccp1); //ccp1中断允许
enable_interrupts(GLOBAL); //总中断允许
switch(i)
{
case'0'
utput_bit(PIN_B2,input(PIN_C2));break; //将输入RC2口数据传输至RB2口
case'1'
utput_bit(PIN_B2,input(PIN_C2));break;
case'2'
utput_bit(PIN_B2,input(PIN_C2));break;
case'3'
utput_bit(PIN_B2,input(PIN_C2));break;
case'4'
utput_bit(PIN_B2,input(PIN_C2));break;
case'5'
utput_bit(PIN_B2,input(PIN_C2));break;
case'6'
utput_bit(PIN_B2,input(PIN_C2));break;
case'7'
utput_bit(PIN_B2,input(PIN_C2));break;
default
utput_b(0xFF);
}
}
i=0;
}
作者:
star
时间:
2012-8-18 14:46
说下你遇到的具体问题?
欢迎光临 英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 (http://enroobbs.com/)
Powered by Discuz! X3.2