久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2177|回復: 0
打印 上一主題 下一主題
收起左側

STM32每日筆記1

[復制鏈接]
跳轉到指定樓層
樓主
ID:382526 發表于 2018-8-7 21:33 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
double n;   n=a/b/1000.0  //除1000不會得小數,1000.0才會有小數

void T1Capture1_Init(void)      //定時器1捕獲初始化
{
    TIM1_CCER1 &= 0xFE; //先禁止捕獲
    TIM1_CCMR1 &= 0xFD;
    TIM1_CCMR1 |= 0x01; //第0-1位CC1S[1:0]置01,CC1通道被配置為輸入,IC1映射在TI1FP1上;輸入模式下第4-7位IC1F[3:0],置0000為無濾波
    // 在TIM1_CCER1寄存器中置CC1P(1)位設置捕獲上升或下降沿(0上升沿,1下降沿)
    TIM1_CCMR1 |= 0x0C; // 輸入模式下第2-3位置00-11來配置0-8分頻(每n個事件觸發捕獲)
    TIM1_CCER1 |= 0x01; //輸入模式下第0位CC1E置1使能捕獲
    TIM1_IER |= 0x02;   //第1位CC1IE置1使能捕獲中斷
    TIM1_SR1 &= 0xFD;   //第二位CC1IF置0清除捕獲/比較1中斷標記
}
#pragma vector=0xE   //定時器1捕獲中斷
__interrupt void TIM1_CAP_COM_IRQHandler(void)
{
    if(TIM1_SR1&0x02)   //判斷是TIM1的中斷
    {
        static u8 T1N=0;
        static u16 T1Cap_value=0,T1Cap_value1=0,T1Cap_value2=0;
        if (T1N==0)
        {
            T1Cap_value1=TIM1_CCR1H;
            T1Cap_value1=(T1Cap_value1<<8)+TIM1_CCR1L;    //獲取捕獲值
            T1N=1;
        }
        else
        {
            T1Cap_value2=TIM1_CCR1H;
            T1Cap_value2=(T1Cap_value2<<8)+TIM1_CCR1L;
            T1Cap_value=T1Cap_value2-T1Cap_value1;
/*
                 if(T1Cap_value1 > T1Cap_value2)     //定時器溢出處理
                      T1Cap_value差值正常算;
                 else
                      T1Cap_value= 0xFFFF + T1Cap_value2 - T1Cap_value1;
*/
            f=16000000*8/T1Cap_value/1000.0;    //8分頻了所以*8,除1000單位換成K
            TIM1_CNTRH = 0x00;//清零計數器高8位
            TIM1_CNTRL = 0x00;//清零計數器低8位
            T1N=0;
        }
    }
    TIM1_SR1 &= 0xFD;   //清除捕獲比較1中斷標志
    TIM1_SR2 &= 0xFD;   //第二位CC1OF置0清除重復捕獲標志      
}


void BEEP(void)     //蜂鳴器
{
    CLK_ICKR |= 0x08; //第3位LEISN置1打開LSI(低速)
    while((CLK_ICKR & 0x10) == 0);  //LSI時鐘準備好后第4位LSIRDY被硬件置1
    BEEP_CSR = 0x0e;      //第0-4位BEEPDIV[4:0]置0E選擇16分頻,第6-7位BEEPSEL[1:0]置00選擇輸出f(LSI) / (8 x BEEPDIV) kHz→128/(8*16)=1KHZ(輸出頻率越大聲音越尖銳)
    BEEP_CSR |= 0x20;    //打開BEEP引腳(PD4,要在option byte更改默認輸出模式)
    delay_ms(200);
BEEP_CSR &= 0xDF;     //關
}

question:如 #pragma vector=0xE
__interrupt void TIM1_CAP_COM_IRQHandler(void)這個中斷服務子函數如何找到,在芯片手冊里只看到中斷的地址,是像頭文件這樣在編譯環境的頭文件定義好了地址就可以直接用上述名稱進入中斷服務子函數,然后不同的編譯軟件就有不同的中斷服務子函數入口。是這樣嗎?

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 不卡视频一区二区三区 | 亚洲精品久久嫩草网站秘色 | 综合九九 | 亚洲成人综合网站 | 拍真实国产伦偷精品 | 99久久婷婷国产综合精品电影 | 国产日韩欧美一区 | 亚洲欧美一区二区三区情侣bbw | 久久久噜噜噜久久中文字幕色伊伊 | 成人午夜在线 | 天天干天天爱天天操 | 欧美性猛片aaaaaaa做受 | 国产精品久久久久久久久久久久冷 | 毛片区 | 久久久久久久久99精品 | 久久久无码精品亚洲日韩按摩 | 毛片一级片 | 欧美日韩精品在线免费观看 | 狠狠操网站 | 亚洲欧美一区二区三区在线 | 自拍偷拍欧美 | 久久久久资源 | 91欧美精品成人综合在线观看 | 成人二区 | 国产黄色av网站 | 成人在线免费av | 亚洲精品区 | 国产一区二区美女 | 精品国产第一区二区三区 | 久久久久久久久久久久亚洲 | 中文字幕一区二区三区乱码在线 | 狠狠综合久久av一区二区老牛 | 成人精品啪啪欧美成 | 中文区中文字幕免费看 | 亚洲第一福利网 | 色www精品视频在线观看 | 九色 在线| 福利片在线观看 | 久久国产一区二区 | 欧美视频一区二区三区 | 国产一区二区三区四区五区3d |