新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STC單片機PWM脈寬調制功能模塊

        STC單片機PWM脈寬調制功能模塊

        作者: 時間:2016-11-25 來源:網絡 收藏
        // STC單片機PWM脈寬調制功能模塊

        #include

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

        // PWM初始化
        // 將PCA初始化為PWM模式,初始占空比為0
        // 參數:0,1,2,3,分別表示對PWM0、PWM1、PWM2、PWM3初始化
        void PWM_Init(int i)
        {
        CMOD = 0x02; // 設置PCA定時器頻率為內部時鐘fosc/2
        CL = 0x00;
        CH = 0x00;

        switch(i)
        {
        case 0:
        CCAPM0 = 0x42; // PWM0設置PCA工作方式為PWM方式(0100 0010)
        CCAP0L = 0x00; // 設置PWM0初始值與CCAP0H相同
        CCAP0H = 0x00; // PWM0初始為0
        break;
        case 1:
        CCAPM1 = 0x42;
        CCAP1L = 0x00;
        CCAP1H = 0x00;
        break;
        case 2:
        CCAPM2 = 0x42;
        CCAP2L = 0x00;
        CCAP2H = 0x00;
        break;
        case 3:
        CCAPM3 = 0x42;
        CCAP3L = 0x00;
        CCAP3H = 0x00;
        break;
        default:
        break;
        }

        CR = 1; // 啟動PCA定時器
        }

        // PWM占空比設置
        // 參數1:0,1,2,3,分別表示對PWM0、PWM1、PWM2、PWM3設置占空比
        // 參數2:0x00~0xFF(或0~255),0x00時全部為低電平,0xFF時全部為高電平
        void PWM_Set(int i, unsigned char c)
        {
        switch(i)
        {
        case 0:
        CCAP0L = c;
        CCAP0H = c;
        break;
        case 1:
        CCAP1L = c;
        CCAP1H = c;
        break;
        case 2:
        CCAP2L = c;
        CCAP2H = c;
        break;
        case 3:
        CCAP3L = c;
        CCAP3H = c;
        break;
        default:
        break;
        }
        }




        評論


        技術專區

        關閉
        主站蜘蛛池模板: 南投市| 米林县| 夹江县| 灵寿县| 天水市| 上高县| 阿拉尔市| 沛县| 宣武区| 年辖:市辖区| 蓬安县| 景泰县| 房山区| 隆林| 绿春县| 上林县| 平利县| 泗阳县| 泽州县| 普兰店市| 安新县| 图们市| 宝坻区| 凤凰县| 通河县| 沾益县| 乾安县| 西充县| 阿拉善盟| 措勤县| 阳春市| 双江| 浦东新区| 密云县| 嘉兴市| 苍山县| 天等县| 古浪县| 息烽县| 收藏| 唐海县|