新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STM8S 定時器1 輸入捕獲

        STM8S 定時器1 輸入捕獲

        作者: 時間:2016-12-03 來源:網絡 收藏
        輸入捕捉的引腳要實現設定,使用stvp + stlink 就可以設置,否則無法進入中斷。

        本文引用地址:http://www.104case.com/article/201612/325156.htm

        然后下面是代碼:

        C語言:Codee#11818
        /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        + 實驗平臺: STM8S103F2P6 FM 接收實驗核心板
        + 硬件 : STM8S103F2P6
        + 開發平臺: IAR For STM8 1.10
        + 仿真器 : ST-Link
        + 日期 : 2010-6-28
        ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
        #include "stm8s.h"

        u16Get_time;

        /*******************************************************************************
        * ==啟用外部晶振函數==
        *******************************************************************************/
        voidHSE_CLK_INIT(void)
        {
        CLK_DeInit();
        CLK_HSECmd(ENABLE);
        while(SET!=CLK_GetFlagStatus(CLK_FLAG_HSERDY));
        CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1);
        CLK_ClockSwitchCmd(ENABLE);
        CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO,CLK_SOURCE_HSE,DISABLE,CLK_CURRENTCLOCKSTATE_ENABLE);
        }
        //==============================================================================
        // ¤¤¤ 定時器1初始化 ¤¤¤
        // --> 定時器1 輸入捕獲通道2 PortC 7
        // TIM1_DeInit(); --> 定時器1 寄存器復位
        // TIM1_ICInit( TIM1_CHANNEL_2, TIM1_ICPOLARITY_FALLING, TIM1_ICSELECTION_DIRECTTI , TIM1_ICPSC_DIV8, 0x0);
        // --> 輸入捕獲CH2 , 下降沿捕獲 , 輸入捕捉源為直接中斷方式 , 輸入捕捉預分頻 , 輸入捕捉濾波器值
        // TIM1_ITConfig( TIM1_IT_CC2 , ENABLE); --> 開啟通道二輸入捕獲中斷使能
        // TIM1_ClearFlag(TIM1_FLAG_CC2); --> 清除輸入捕獲中斷標志位
        // TIM1_Cmd(ENABLE); --> 使能定時器1
        //==============================================================================
        voidTIME1_INIT(void)
        {
        TIM1_DeInit();
        TIM1_ICInit(TIM1_CHANNEL_2,TIM1_ICPOLARITY_FALLING,TIM1_ICSELECTION_DIRECTTI,TIM1_ICPSC_DIV8,0x0);
        TIM1_ITConfig(TIM1_IT_CC2,ENABLE);
        TIM1_ClearFlag(TIM1_FLAG_CC2);
        TIM1_Cmd(ENABLE);
        }
        /*******************************************************************************
        * ==Main函數==
        *******************************************************************************/
        voidmain(void)
        {
        HSE_CLK_INIT();// 外部時鐘初始化
        TIME1_INIT();// 定時器1 輸入捕獲初始化
        enableInterrupts();// 開總中斷
        while(1);
        }
        //==============================================================================
        // ¤¤¤ 中斷服務函數 ¤¤¤
        // --> 定時器1 捕獲/比較 中斷向量
        //==============================================================================
        #pragma vector=0xE
        __interruptvoidTIM1_CAP_COM_IRQHandler(void)
        {
        Get_time=TIM1_GetCapture2();// 獲得捕獲時間
        TIM1_ClearFlag(TIM1_FLAG_CC2);// 清標志位
        }



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 安顺市| 贺兰县| 太湖县| 台山市| 湘潭县| 元朗区| 菏泽市| 交城县| 资兴市| 阳东县| 名山县| 嵩明县| 南木林县| 山东省| 百色市| 荥经县| 灵川县| 扶余县| 曲阳县| 儋州市| 夏邑县| 利津县| 峨边| 娄烦县| 合水县| 莱州市| 阜宁县| 金堂县| 北票市| 都安| 荥阳市| 泾阳县| 永和县| 漯河市| 攀枝花市| 麻阳| 和龙市| 石狮市| 罗甸县| 福贡县| 陕西省|