<wbr id="9qp22"><legend id="9qp22"><rt id="9qp22"></rt></legend></wbr>
<th id="9qp22"><noframes id="9qp22"><form id="9qp22"></form></noframes></th>

      <dd id="9qp22"><big id="9qp22"><video id="9qp22"></video></big></dd>
      <th id="9qp22"></th>
        <rp id="9qp22"><acronym id="9qp22"></acronym></rp>
        <dd id="9qp22"><pre id="9qp22"></pre></dd>

        1. <dd id="9qp22"><pre id="9qp22"></pre></dd>
          1. 打印

            [技術問答] SC92F8462B的PWM周期計算問題?

            [復制鏈接]
            286|7
            跳轉到指定樓層
            樓主
            想產生38khz方波,也就是周期為26us。
            程序如下:
            1. /*****************************************************
            2. *函數名稱:void PWM_Init(void)
            3. *函數功能:PWM初始化
            4. *入口參數:void
            5. *出口參數:void
            6. *****************************************************/
            7. void PWM_Init(void)
            8. {
            9.         P2CON|=(1<<7);//PWM5-P27
            10.         
            11.         PWMCFG &= ~(1<<5);        //PWM5輸出不反向,時鐘源Fosc
            12.         PWMCFG &= ~(1<<6);
            13.         PWMCFG &= ~(1<<7);
            14.         
            15.         PWMPRD  = 159;                //PWM周期=(159+1)*(1/Fpwm);
            16.         
            17.          PWMDTYB = 0X00;     //PWM3/4/5周期與占空比的低2位設置  
            18.         PWMDTY5 = 35;                //PWM0的Duty = 35/160 =7/32
            19.         
            20.         PWMCON |= 0x20;                //PWM5輸出到P27
            21.         PWMCON |= 0x80;     //開啟PWM
            22.   IE1 |= 0x02; //PWM中斷使能
            23.   EA = 1;
            24. }
            復制代碼


            時鐘源為FOSC不分頻,也就是默認為12Mhz
            但是上面源碼要按6MHZ算才能輸出周期為26us的方波,不知道為什么?

            使用特權

            評論回復
            沙發
            | 2019-9-22 20:06 | 只看該作者
            用的內部時鐘?

            使用特權

            評論回復
            板凳
             樓主 | 2019-9-23 08:19 | 只看該作者

            沒晶振,用的HRC,但是PWM一直不對!

            使用特權

            評論回復
            地板
            | 2019-9-23 10:09 | 只看該作者
            你的計數 160 / 6M 正好等于 26uS 嘛,12M想要26uS,你的計數要用 320

            使用特權

            評論回復
            5
             樓主 | 2019-9-23 11:51 | 只看該作者
            wh6ic 發表于 2019-9-23 10:09
            你的計數 160 / 6M 正好等于 26uS 嘛,12M想要26uS,你的計數要用 320

            對呀,正好!所以我就奇怪,為什么莫名其妙的變成6Mhz了,但是系統是默認的24/2=12M呀?
            高明不明白!

            使用特權

            評論回復
            6
            | 2019-9-24 09:22 | 只看該作者
            主頻是24M,如果程序中沒有分頻,就看option選項中有沒有分頻設置

            使用特權

            評論回復
            7
             樓主 | 2019-9-24 11:55 | 只看該作者
            本帖最后由 hayden0 于 2019-9-24 11:57 編輯
            賽元MCU3 發表于 2019-9-24 09:22
            主頻是24M,如果程序中沒有分頻,就看option選項中有沒有分頻設置

            我知道主頻是24M!option選項里是默認的二分頻,而且只有2分頻,4分頻,12分頻。我沒動,使用的是默認的2分頻。所以是12M。

            使用特權

            評論回復
            8
             樓主 | 2019-9-29 14:37 | 只看該作者
            有誰遇到過這問題?

            使用特權

            評論回復
            掃描二維碼,隨時隨地手機跟帖
            *滑动验证:
            您需要登錄后才可以回帖 登錄 | 注冊

            本版積分規則

            我要發帖 投訴建議 創建版塊 申請版主

            快速回復

            您需要登錄后才可以回帖
            登錄 | 注冊
            高級模式

            論壇熱帖

            在線客服 快速回復 返回頂部 返回列表
            成人短片线上看