英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

 找回密码
 立即注册
搜索
电子烟方案单片机单片机开发深圳单片机开发
单片机方案国产单片机8位单片机电子烟方案开发
查看: 3897|回复: 1
打印 上一主题 下一主题

CCP1作为捕捉功能问题请教

[复制链接]
跳转到指定楼层
1#
发表于 2012-8-18 11:28:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位高手帮忙分析一下下面的程序,问题出在什么地方。
目的:用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;
   defaultutput_b(0xFF);
   }
}
i=0;
}

2#
发表于 2012-8-18 14:46:45 | 只看该作者
说下你遇到的具体问题?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|公司首页|Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 ( 粤ICP备09008620号 )

GMT+8, 2024-11-24 09:12 , Processed in 0.052848 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表