打印
[技术问答]

N76E003 输入捕获问题 数值不正确,问题何在?

[复制链接]
1620|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
N76E003 输入捕获问题 数值不正确,请高手指点一二,错在何处?
捕获配置
void Capture_init(void)
{
        P15_Input_Mode;
        P15 = 1;

        TIMER2_DIV_64;
        TIMER2_CAP0_Capture_Mode;
        IC7_P15_CAP0_FallingEdge_Capture;
               
        set_ECAP;                                   //Enable Capture interrupt
        set_TR2;                                    //Triger Timer2
        set_EA;

}

主程序
void main (void)
{
        Capture_init();
       
        InitialUART0_Timer3(115200);                                //P06/P07
        TI = 1;                                                                // Important, use prinft function must set TI=1;

        while(1)
        {
                if(flag==1)
                {
                        printf("\n CAPH 0x%bX",CAP0H);
                        printf("\n CAPL 0x%bX",CAP0L);
                        flag = 0;
                }
                P12 = !P12;
                Timer0_Delay1ms(100);
        }
}

中断服务
void Capture_ISR (void) interrupt 12
{
        clr_CAPF0;                          // clear capture0 interrupt flag       

        CAP0H = C0H;
        CAP0L = C0L;
        flag = 1;
        clr_TF2;
}


串口结果看图

条件:我是对T2进行64分频,内部16m时钟,利用P12产生200ms周期的方波当捕捉源,但串口输出的数据不正确
我计算如下:
串口结果是0xb0 0x60 十进制为45152,   64分频,得到的时间是 45152x4 = 180608 只有180ms 问题找不到,请大侠们看下  谢谢!

捕获.PNG (13.44 KB )

串口结果

串口结果

使用特权

评论回复
沙发
jasontu| | 2019-4-23 08:42 | 只看该作者
我試正常,去官網下載新的bsp,試試看

使用特权

评论回复
板凳
jasontu| | 2019-4-23 08:46 | 只看该作者
另外,你在代碼裡面有打印再改變p12,出來的數值應該會變動。
看看是不是腳人腳不是接200ms進來

使用特权

评论回复
地板
jxwhf2007|  楼主 | 2019-4-23 13:13 | 只看该作者
TIMER2_CAP0_Capture_Mode;
IC7_P15_CAP0_FallingEdge_Capture;
TIMER2_DIV_64;

问题已经解决,以上三句按上述语句顺序即可,

使用特权

评论回复
5
小明的同学| | 2019-4-23 17:01 | 只看该作者
楼主用的什么串口工具,看起来高大上。

使用特权

评论回复
6
condition| | 2019-4-26 19:41 | 只看该作者
先试下例程对不对,

使用特权

评论回复
7
jxwhf2007|  楼主 | 2019-4-26 21:39 | 只看该作者
小明的同学 发表于 2019-4-23 17:01
楼主用的什么串口工具,看起来高大上。

HXLCom

使用特权

评论回复
8
jiekou001| | 2019-4-27 11:42 | 只看该作者
多谢楼主分享,找到了,我下载看看。

使用特权

评论回复
9
antusheng| | 2019-4-27 12:02 | 只看该作者
/*---------------------------------------------------------------------------------------------------------*/
/*                                                                                                         */
/* Copyright(c) 2017 Nuvoton Technology Corp. All rights reserved.                                         */
/*                                                                                                         */
/*---------------------------------------------------------------------------------------------------------*/

//***********************************************************************************************************
//  Nuvoton Technoledge Corp.
//  Website: http://www.nuvoton.com
//  E-Mail : MicroC-8bit@nuvoton.com
//  Date   : Apr/21/2017
//***********************************************************************************************************

//***********************************************************************************************************
//  File Function: N76E003 Timer2 Capture Mode demo code
//***********************************************************************************************************
#include "N76E003.h"
#include "Common.h"
#include "Delay.h"
#include "SFR_Macro.h"
#include "Function_define.h"

//*****************  The Following is in define in Fucntion_define.h  ***************************
//****** Always include Function_define.h call the define you want, detail see main(void) *******
//***********************************************************************************************
#if 0

////-------------------- Timer2 Capture define --------------------
////--- Falling Edge -----
//#define IC0_P12_CAP0_FallingEdge_Capture                CAPCON1&=0xFC;CAPCON3&=0xF0;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4
//#define        IC1_P11_CAP0_FallingEdge_Capture                CAPCON1&=0xFC;CAPCON3&=0xF0;CAPCON3|=0x01;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4
//#define        IC2_P10_CAP0_FallingEdge_Capture                CAPCON1&=0xFC;CAPCON3&=0xF0;CAPCON3|=0x02;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4
//#define        IC3_P00_CAP0_FallingEdge_Capture                CAPCON1&=0xFC;CAPCON3&=0xF0;CAPCON3|=0x03;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4
//#define        IC3_P04_CAP0_FallingEdge_Capture                CAPCON1&=0xFC;CAPCON3&=0xF0;CAPCON3|=0x04;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4
//#define        IC4_P01_CAP0_FallingEdge_Capture                CAPCON1&=0xFC;CAPCON3&=0xF0;CAPCON3|=0x05;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4
//#define        IC5_P03_CAP0_FallingEdge_Capture                CAPCON1&=0xFC;CAPCON3&=0xF0;CAPCON3|=0x06;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4
//#define        IC6_P05_CAP0_FallingEdge_Capture                CAPCON1&=0xFC;CAPCON3&=0xF0;CAPCON3|=0x07;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4
//#define        IC7_P15_CAP0_FallingEdge_Capture                CAPCON1&=0xFC;CAPCON3&=0xF0;CAPCON3|=0x08;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4

//#define IC0_P12_CAP1_FallingEdge_Capture                CAPCON1&=0xF3;CAPCON3&=0x0F;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5
//#define        IC1_P11_CAP1_FallingEdge_Capture                CAPCON1&=0xF3;CAPCON3&=0x0F;CAPCON3|=0x10;CAPCON0|=SET_BIT5;CAPCON0|=SET_BIT5
//#define        IC2_P10_CAP1_FallingEdge_Capture                CAPCON1&=0xF3;CAPCON3&=0x0F;CAPCON3|=0x20;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5
//#define        IC3_P00_CAP1_FallingEdge_Capture                CAPCON1&=0xF3;CAPCON3&=0x0F;CAPCON3|=0x30;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5
//#define        IC3_P04_CAP1_FallingEdge_Capture                CAPCON1&=0xF3;CAPCON3&=0x0F;CAPCON3|=0x40;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5
//#define        IC4_P01_CAP1_FallingEdge_Capture                CAPCON1&=0xF3;CAPCON3&=0x0F;CAPCON3|=0x50;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5
//#define        IC5_P03_CAP1_FallingEdge_Capture                CAPCON1&=0xF3;CAPCON3&=0x0F;CAPCON3|=0x60;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5
//#define        IC6_P05_CAP1_FallingEdge_Capture                CAPCON1&=0xF3;CAPCON3&=0x0F;CAPCON3|=0x70;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5
//#define        IC7_P15_CAP1_FallingEdge_Capture                CAPCON1&=0xF3;CAPCON3&=0x0F;CAPCON3|=0x80;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5

//#define IC0_P12_CAP2_FallingEdge_Capture                CAPCON1&=0x0F;CAPCON4&=0xF0;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6
//#define        IC1_P11_CAP2_FallingEdge_Capture                CAPCON1&=0x0F;CAPCON4&=0xF0;CAPCON4|=0x10;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6
//#define        IC2_P10_CAP2_FallingEdge_Capture                CAPCON1&=0x0F;CAPCON4&=0xF0;CAPCON4|=0x20;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6
//#define        IC3_P00_CAP2_FallingEdge_Capture                CAPCON1&=0x0F;CAPCON4&=0xF0;CAPCON4|=0x30;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6
//#define        IC3_P04_CAP2_FallingEdge_Capture                CAPCON1&=0x0F;CAPCON4&=0xF0;CAPCON4|=0x40;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6
//#define        IC4_P01_CAP2_FallingEdge_Capture                CAPCON1&=0x0F;CAPCON4&=0xF0;CAPCON4|=0x50;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6
//#define        IC5_P03_CAP2_FallingEdge_Capture                CAPCON1&=0x0F;CAPCON4&=0xF0;CAPCON4|=0x60;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6
//#define        IC6_P05_CAP2_FallingEdge_Capture                CAPCON1&=0x0F;CAPCON4&=0xF0;CAPCON4|=0x70;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6
//#define        IC7_P15_CAP2_FallingEdge_Capture                CAPCON1&=0x0F;CAPCON4&=0xF0;CAPCON4|=0x80;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6

////----- Rising edge ----
//#define IC0_P12_CAP0_RisingEdge_Capture                        CAPCON1&=0xFC;CAPCON1|=0x01;CAPCON3&=0xF0CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4;
//#define        IC1_P11_CAP0_RisingEdge_Capture                        CAPCON1&=0xFC;CAPCON1|=0x01;CAPCON3&=0xF0;CAPCON3|=0x01;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4;
//#define        IC2_P10_CAP0_RisingEdge_Capture                        CAPCON1&=0xFC;CAPCON1|=0x01;CAPCON3&=0xF0;CAPCON3|=0x02;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4;
//#define        IC3_P00_CAP0_RisingEdge_Capture                        CAPCON1&=0xFC;CAPCON1|=0x01;CAPCON3&=0xF0;CAPCON3|=0x03;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4;
//#define        IC3_P04_CAP0_RisingEdge_Capture                        CAPCON1&=0xFC;CAPCON1|=0x01;CAPCON3&=0xF0;CAPCON3|=0x04;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4;
//#define        IC4_P01_CAP0_RisingEdge_Capture                        CAPCON1&=0xFC;CAPCON1|=0x01;CAPCON3&=0xF0;CAPCON3|=0x05;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4;
//#define        IC5_P03_CAP0_RisingEdge_Capture                        CAPCON1&=0xFC;CAPCON1|=0x01;CAPCON3&=0xF0;CAPCON3|=0x06;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4;
//#define        IC6_P05_CAP0_RisingEdge_Capture                        CAPCON1&=0xFC;CAPCON1|=0x01;CAPCON3&=0xF0;CAPCON3|=0x07;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4;
//#define        IC7_P15_CAP0_RisingEdge_Capture                        CAPCON1&=0xFC;CAPCON1|=0x01;CAPCON3&=0xF0;CAPCON3|=0x08;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4;

//#define IC0_P12_CAP1_RisingEdge_Capture                        CAPCON1&=0xF3;CAPCON1|=0x04;CAPCON3&=0x0FCAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5;
//#define        IC1_P11_CAP1_RisingEdge_Capture                        CAPCON1&=0xF3;CAPCON1|=0x04;CAPCON3&=0x0F;CAPCON3|=0x10;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5;
//#define        IC2_P10_CAP1_RisingEdge_Capture                        CAPCON1&=0xF3;CAPCON1|=0x04;CAPCON3&=0x0F;CAPCON3|=0x20;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5;
//#define        IC3_P00_CAP1_RisingEdge_Capture                        CAPCON1&=0xF3;CAPCON1|=0x04;CAPCON3&=0x0F;CAPCON3|=0x30;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5;
//#define        IC3_P04_CAP1_RisingEdge_Capture                        CAPCON1&=0xF3;CAPCON1|=0x04;CAPCON3&=0x0F;CAPCON3|=0x40;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5;
//#define        IC4_P01_CAP1_RisingEdge_Capture                        CAPCON1&=0xF3;CAPCON1|=0x04;CAPCON3&=0x0F;CAPCON3|=0x50;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5;
//#define        IC5_P03_CAP1_RisingEdge_Capture                        CAPCON1&=0xF3;CAPCON1|=0x04;CAPCON3&=0x0F;CAPCON3|=0x60;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5;
//#define        IC6_P05_CAP1_RisingEdge_Capture                        CAPCON1&=0xF3;CAPCON1|=0x04;CAPCON3&=0x0F;CAPCON3|=0x70;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5;
//#define        IC7_P15_CAP1_RisingEdge_Capture                        CAPCON1&=0xF3;CAPCON1|=0x04;CAPCON3&=0x0F;CAPCON3|=0x80;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5;

//#define IC0_P12_CAP3_RisingEdge_Capture                        CAPCON1&=0x0F;CAPCON1|=0x10;CAPCON4&=0xF0;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6;
//#define        IC1_P11_CAP3_RisingEdge_Capture                        CAPCON1&=0x0F;CAPCON1|=0x10;CAPCON4&=0xF0;CAPCON4|=0x01;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6;
//#define        IC2_P10_CAP3_RisingEdge_Capture                        CAPCON1&=0x0F;CAPCON1|=0x10;CAPCON4&=0xF0;CAPCON4|=0x02;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6;
//#define        IC3_P00_CAP3_RisingEdge_Capture                        CAPCON1&=0x0F;CAPCON1|=0x10;CAPCON4&=0xF0;CAPCON4|=0x03;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6;
//#define        IC3_P04_CAP3_RisingEdge_Capture                        CAPCON1&=0x0F;CAPCON1|=0x10;CAPCON4&=0xF0;CAPCON4|=0x04;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6;
//#define        IC4_P01_CAP3_RisingEdge_Capture                        CAPCON1&=0x0F;CAPCON1|=0x10;CAPCON4&=0xF0;CAPCON4|=0x05;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6;
//#define        IC5_P03_CAP3_RisingEdge_Capture                        CAPCON1&=0x0F;CAPCON1|=0x10;CAPCON4&=0xF0;CAPCON4|=0x06;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6;
//#define        IC6_P05_CAP3_RisingEdge_Capture                        CAPCON1&=0x0F;CAPCON1|=0x10;CAPCON4&=0xF0;CAPCON4|=0x07;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6;
//#define        IC7_P15_CAP3_RisingEdge_Capture                        CAPCON1&=0x0F;CAPCON1|=0x10;CAPCON4&=0xF0;CAPCON4|=0x08;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6;

////-----BOTH  edge ----
//#define IC0_P12_CAP0_BothEdge_Capture                                CAPCON1&=0xFC;CAPCON1|=0x02;CAPCON3&=0xF0;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4
//#define        IC1_P11_CAP0_BothEdge_Capture                                CAPCON1&=0xFC;CAPCON1|=0x02;CAPCON3&=0xF0;CAPCON3|=0x01;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4
//#define        IC2_P10_CAP0_BothEdge_Capture                                CAPCON1&=0xFC;CAPCON1|=0x02;CAPCON3&=0xF0;CAPCON3|=0x02;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4
//#define        IC3_P00_CAP0_BothEdge_Capture                                CAPCON1&=0xFC;CAPCON1|=0x02;CAPCON3&=0xF0;CAPCON3|=0x03;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4
//#define        IC3_P04_CAP0_BothEdge_Capture                                CAPCON1&=0xFC;CAPCON1|=0x02;CAPCON3&=0xF0;CAPCON3|=0x04;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4
//#define        IC4_P01_CAP0_BothEdge_Capture                                CAPCON1&=0xFC;CAPCON1|=0x02;CAPCON3&=0xF0;CAPCON3|=0x05;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4
//#define        IC5_P03_CAP0_BothEdge_Capture                                CAPCON1&=0xFC;CAPCON1|=0x02;CAPCON3&=0xF0;CAPCON3|=0x06;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4
//#define        IC6_P05_CAP0_BothEdge_Capture                                CAPCON1&=0xFC;CAPCON1|=0x02;CAPCON3&=0xF0;CAPCON3|=0x07;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4
//#define        IC7_P15_CAP0_BothEdge_Capture                                CAPCON1&=0xFC;CAPCON1|=0x02;CAPCON3&=0xF0;CAPCON3|=0x08;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4

//#define IC0_P12_CAP1_BothEdge_Capture                                CAPCON1&=0xF3;CAPCON1|=0x08;CAPCON3&=0x0F;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5
//#define        IC1_P11_CAP1_BothEdge_Capture                                CAPCON1&=0xF3;CAPCON1|=0x08;CAPCON3&=0x0F;CAPCON3|=0x10;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5;
//#define        IC2_P10_CAP1_BothEdge_Capture                                CAPCON1&=0xF3;CAPCON1|=0x08;CAPCON3&=0x0F;CAPCON3|=0x20;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5;
//#define        IC3_P00_CAP1_BothEdge_Capture                                CAPCON1&=0xF3;CAPCON1|=0x08;CAPCON3&=0x0F;CAPCON3|=0x30;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5;
//#define        IC3_P04_CAP1_BothEdge_Capture                                CAPCON1&=0xF3;CAPCON1|=0x08;CAPCON3&=0x0F;CAPCON3|=0x40;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5;
//#define        IC4_P01_CAP1_BothEdge_Capture                                CAPCON1&=0xF3;CAPCON1|=0x08;CAPCON3&=0x0F;CAPCON3|=0x50;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5;
//#define        IC5_P03_CAP1_BothEdge_Capture                                CAPCON1&=0xF3;CAPCON1|=0x08;CAPCON3&=0x0F;CAPCON3|=0x60;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5;
//#define        IC6_P05_CAP1_BothEdge_Capture                                CAPCON1&=0xF3;CAPCON1|=0x08;CAPCON3&=0x0F;CAPCON3|=0x70;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5;
//#define        IC7_P15_CAP1_BothEdge_Capture                                CAPCON1&=0xF3;CAPCON1|=0x08;CAPCON3&=0x0F;CAPCON3|=0x80;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5;

//#define IC0_P12_CAP3_BothEdge_Capture                                CAPCON1&=0x0F;CAPCON1|=0x20;CAPCON4&=0xF0;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6;
//#define        IC1_P11_CAP3_BothEdge_Capture                                CAPCON1&=0x0F;CAPCON1|=0x20;CAPCON4&=0xF0;CAPCON4|=0x01;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6;
//#define        IC2_P10_CAP3_BothEdge_Capture                                CAPCON1&=0x0F;CAPCON1|=0x20;CAPCON4&=0xF0;CAPCON4|=0x02;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6;
//#define        IC3_P00_CAP3_BothEdge_Capture                                CAPCON1&=0x0F;CAPCON1|=0x20;CAPCON4&=0xF0;CAPCON4|=0x03;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6;
//#define        IC3_P04_CAP3_BothEdge_Capture                                CAPCON1&=0x0F;CAPCON1|=0x20;CAPCON4&=0xF0;CAPCON4|=0x04;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6;
//#define        IC4_P01_CAP3_BothEdge_Capture                                CAPCON1&=0x0F;CAPCON1|=0x20;CAPCON4&=0xF0;CAPCON4|=0x05;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6;
//#define        IC5_P03_CAP3_BothEdge_Capture                                CAPCON1&=0x0F;CAPCON1|=0x20;CAPCON4&=0xF0;CAPCON4|=0x06;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6;
//#define        IC6_P05_CAP3_BothEdge_Capture                                CAPCON1&=0x0F;CAPCON1|=0x20;CAPCON4&=0xF0;CAPCON4|=0x07;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6;
//#define        IC7_P15_CAP3_BothEdge_Capture                                CAPCON1&=0x0F;CAPCON1|=0x20;CAPCON4&=0xF0;CAPCON4|=0x08;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6;

//#define TIMER2_IC2_DISABLE                                                                        CAPCON0&=~SET_BIT6                         
//#define TIMER2_IC1_DISABLE                                                                        CAPCON0&=~SET_BIT5                       
//#define TIMER2_IC0_DISABLE                                                                        CAPCON0&=~SET_BIT4       

///*----------------------------------------------------------------------------------------------------------
//*    Timer2 mode define
//------------------------------------------------------------------------------------------------------------*/

//#define         TIMER2_CAP0_Capture_Mode                        T2CON&=~SET_BIT0;T2MOD=0x89
//#define         TIMER2_CAP1_Capture_Mode                        T2CON&=~SET_BIT0;T2MOD=0x8A
//#define         TIMER2_CAP2_Capture_Mode                        T2CON&=~SET_BIT0;T2MOD=0x8B

///*----------------------------------------------------------------------------------------------------------
//*   Timer devider define
//----------------------------------------------------------------------------------------------------------*/
//#define TIMER2_DIV_4                        T2MOD|=0x10;T2MOD&=0x9F
//#define TIMER2_DIV_16                        T2MOD|=0x20;T2MOD&=0xAF
//#define TIMER2_DIV_32                        T2MOD|=0x30;T2MOD&=0xBF
//#define TIMER2_DIV_64                        T2MOD|=0x40;T2MOD&=0xCF
//#define TIMER2_DIV_128                T2MOD|=0x50;T2MOD&=0xDF
//#define TIMER2_DIV_256                T2MOD|=0x60;T2MOD&=0xEF
//#define TIMER2_DIV_512                T2MOD|=0x70
#endif


/************************************************************************************************************
*    Timer2 Capture interrupt subroutine
************************************************************************************************************/
void Capture_ISR (void) interrupt 12
{
        clr_CAPF0;                          // clear capture0 interrupt flag
        P1 = C0L;                                                                                                                // For capture mode CxL/CxH with data capture from I/O pin
        P2 = C0H;                                                                                                               
        P12 = ~P12;                                                                                                        //toggle GPIO1 to show int
                                printf("\n TM2 CAP 0x%bX",C0H);
                                clr_TF2;
}
/************************************************************************************************************
*    Main function
************************************************************************************************************/
void main (void)
{
    Set_All_GPIO_Quasi_Mode;
                InitialUART0_Timer3(115200);
                P00_Input_Mode;
                P00 = 1;

                TIMER2_CAP0_Capture_Mode;
                IC3_P00_CAP0_BothEdge_Capture;
                       
                set_ECAP;                                   //Enable Capture interrupt
                set_TR2;                                    //Triger Timer2
                set_EA;

    while(1);
}

使用特权

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

本版积分规则

19

主题

37

帖子

0

粉丝