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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

求思路 應廣單片機做呼吸燈

[復制鏈接]
跳轉到指定樓層
樓主
ID:366959 發表于 2019-9-25 11:39 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
500黑幣
單片機是PMS171B_datasheet_CN_v101_20190823,做一個呼吸燈,求個思路

PMS171B_datasheet_CN_v101_20190823.pdf

2.13 MB, 下載次數: 36

最佳答案

查看完整內容

//********************************************************************************// // 功能名稱: TM2/TM3產生PWM漸變(呼吸燈功能) // 適應芯片: 只有TM2的芯片: // PMS系列:PMS130 PMS131 PMS232 PMS164 PMS154C PMS171B //--------------------------------------------------------------------------------// //程序說明: // 設置TM2或PB3從PB2腳產生3906.25Hz的頻率 // 初始關閉TM2或TM3 ...
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:249730 發表于 2019-9-25 11:39 | 只看該作者
//********************************************************************************//
//                功能名稱:        TM2/TM3產生PWM漸變(呼吸燈功能)
//                適應芯片:        只有TM2的芯片:
//                                        PMS系列:PMS130   PMS131   PMS232   PMS164   PMS154C   PMS171B   
//--------------------------------------------------------------------------------//
//程序說明:
//        設置TM2或PB3從PB2腳產生3906.25Hz的頻率
//        初始關閉TM2或TM3做到0%的占空比,
//        然后打開TM2或TM3開始調節占空比至100%
//        再調節占空比至最低,關掉TM2或TM3做到0%,然后重復做到漸變
//        通過增加TM2B或TM3B的值使占空比不斷增加
//        通過減少TM2B或TM3B的值使占空比不斷減少
//注意事項:
//        1.案例為PMS154C,其他芯片時鐘源和輸出IO腳可能存在不同,其他原理都相同
//********************************************************************************//
#include        "extern.h"

void        TM2_Init(void)//設置頻率
{
//        $ TM2C SYSCLK,PB2,PWM;                //選擇時鐘源,輸出腳,PWM模式,是否反極性輸出(寫Inverse為啟用,不寫則為停用)
                                                                //根據要求時鐘可選擇SYSCLK, EOSC, IHRC, ILRC等,輸出腳可以選擇Disable(不選擇), PB2, PB4, PA3
                                                                //注:時鐘源與輸出腳位的選擇請參考對應芯片的datasheet,個別芯片有些不同
        $ TM2S 8bit,/1,/1;                        //選擇分辨率,預分頻,分頻
                                                                //分辨率可選擇8bit,6bit,預分頻可選擇/1, /4, /16, /64,分頻可選擇/1 ~ /32(對應TM2S[4:0]的00000 ~ 11111)
        TM2B = 0;                                        //1/256的亮度

                //        PWM模式的頻率和占空比計算
                        //頻率=時鐘源/(分辨率*預分頻*分頻)=1M / (2^8 * 1 * 1) = 3906.25Hz
                        //占空比=(TM2B+1)/分辨率*100%=(0 + 1) / 2^8 *100% = 1/256*100% = 0.38%

        $ TM2C Stop;                                //關閉PWM,即0%的亮度
}
//除腳位不同,其他原理和TM2一樣
void        TM3_Init(void)
{
//        $ TM3C SYSCLK,PB5,PWM;                //輸出腳可選擇Disable(不選擇),PB5, PB6, PB7
                                                                //注:時鐘源與輸出腳位的選擇請參考對應芯片的datasheet,個別芯片有些不同
        $ TM3S 8bit,/1,/1;
        TM3B = 0;                                        //1/256的亮度
        $ TM3C Stop;                                //關閉PWM,0%的亮度
}
bit                Add_Sign;
byte        PWM_Num;
void        PWM_Grad(void)
{
        if(Add_Sign)//PWM遞增
        {
                $ TM2C SYSCLK,PB2,PWM;//打開PWM
        //        $ TM3C SYSCLK,PB5,PWM;
                PWM_Num++;//每次增加1/256
                TM2B = PWM_Num;
        //        TM3B = PWM_Num;
                if(PWM_Num == 255)//如果亮度100%,開始遞減
                {
                        Add_Sign = 0;
                }
                .delay 10000;//延時10ms,控制漸變時長
        }
        else//PWM遞減
        {
                PWM_Num--;
                TM2B = PWM_Num;
        //        TM3B = PWM_Num;
                if(PWM_Num == 0)//亮度1/256,不是全滅
                {
                        $ TM2C Stop;//關閉PWM來實現0%亮度
                //        $ TM3C Stop;
                        Add_Sign = 1;
                }
                .delay 10000;
        }
}

void        FPPA0 (void)
{
        .ADJUST_IC        SYSCLK=IHRC/16, IHRC=16MHz, VDD=5V;

        PWM_Num = 0;
        Add_Sign = 1;
        TM2_Init();
//        TM3_Init();
        while (1)
        {
                PWM_Grad();
        }
}


void        Interrupt (void)
{
        pushaf;

        if (Intrq.T16)
        {        //        T16 Trig
                //        User can add code
                Intrq.T16        =        0;
                //...
        }

        popaf;
}

回復

使用道具 舉報

板凳
ID:237423 發表于 2020-6-26 10:11 | 只看該作者
還在用應廣嗎?
回復

使用道具 舉報

地板
ID:300743 發表于 2020-11-5 22:39 | 只看該作者
pwm或定時器
回復

使用道具 舉報

5#
ID:960857 發表于 2022-12-22 14:14 | 只看該作者
老哥你這是深廣例程,直接發上來了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品一区一区 | www久久久 | 日韩中文不卡 | 亚洲成人网在线观看 | 中文字幕一级 | 免费成人在线网站 | 欧美a视频| 精产国产伦理一二三区 | 日韩在线观看一区二区三区 | 国产精品揄拍一区二区 | 久久美女网| 中文字幕免费视频 | 色爱av| 国产欧美久久一区二区三区 | 精品久久香蕉国产线看观看亚洲 | 国产视频一区二区三区四区五区 | 久久久久久高清 | 香蕉视频91 | 亚洲精品在线看 | 国产婷婷色综合av蜜臀av | 亚洲福利 | 毛片一区二区 | 在线播放中文字幕 | av中文字幕在线观看 | 成人av一区二区三区 | 99精品久久久久久中文字幕 | 99pao成人国产永久免费视频 | 中文成人在线 | 欧美在线视频一区 | 亚洲精品一区二区三区在线 | 国产精品视屏 | 国产高清在线精品一区二区三区 | 国产精品揄拍一区二区 | 欧美一区免费 | 精品国产一二三区 | 国产婷婷综合 | 91久久国产综合久久91精品网站 | 国产精品久久9 | 国产精品国产a级 | www.av7788.com | 一区二区三区不卡视频 |