在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

PWM驅動LED實現呼吸燈效果

華仔的編程隨筆 ? 來源:華仔stm32 ? 作者:華仔stm32 ? 2023-04-24 15:29 ? 次閱讀

目的

利用pwm實現呼吸為燈效果

實驗環境

TBK-RD8T3x開發板

TBK-RD8T3x開發板.png

實現原理

RD8T37單片機最多提供 14 路 PWM,這 14路 PWM 分為兩類:多功能 PWM:共8路,只有一組,即 PWM0,輸出信號口為: PWM0 0~07。

我們只需要修改PWM0的占空比就可以實現LED燈的亮度。

實現步驟

1、在keil工程加入rd8_pwm.c

image.png

2、根據數據手冊與原理圖,我這里選用P42為PWM輸出:

image.png

image.png

3、初始化PWM0通道5

/*****************************************************
*函數名稱: SC_PWM0_Init
*函數功能: PWM0初始化函數
*入口參數:void
*出口參數:void 
*****************************************************/
void SC_PWM0_Init(void)
{
	/*PWM0獨立模式*/PWM_Init(PWM0_PRESSEL_FHRC_D1,255);
	/*PWM00 獨立模式*/PWM_IndependentModeConfigEX(PWM05,0, PWM_OUTPUTSTATE_ENABLE);
	/*PWM0*/PWM_Aligned_Mode_Select(PWM0_Edge_Aligned_Mode);
	/*PWM0*/PWM_FaultDetectionConfigEX(PWM0_Type,DISABLE);
	/*PWM0*/PWM_FaultDetectionModeConfigEX(PWM0_Type,PWM0_Immediate_Mode,PWM0_FaultDetectionVoltage_Low,PWM0_WaveFilteringTime_0us);
	/*PWM0中斷使能*/PWM_ITConfigEX(PWM0_Type,DISABLE,LOW);
	/*PWM0開關*/PWM_CmdEX(PWM0_Type,ENABLE);
	/*PWM0_Init write here*/	
}

4、動態修改占空比的函數為:

PWM_IndependentModeConfig(PWM05,pwm_num);

5、為了達到非阻塞式的動態修改占空比,以達到實現呼吸燈的效果,我附了main.c的代碼如下:

#include "rd8.h"
#include "rd8_pwm.h"

uint8_t sta;

uint32_t count = 0;


void LED_Init(void)
{
	P3CON |= 0x1E; //P3 0b0001 1110 輸出
	P4CON |= 0x0F; //P4 0b0000 1111
}

void Timer0Iint(void)
{
	TMOD |= 0x01;  // 配置定時器0為 16位定時器,  TH0、TL0全用 
	TH0 =(65536-1000)/256;   //1000us定時,即1毫秒溢出產生中斷
	TL0 =(65536-1000)%256;  //1000us定時,即1毫秒溢出產生中斷
	ET0 = 1;									//開啟定時器0中斷
	EA = 1;										//開啟全局中斷
	TR0 = 1;									//定時器0開始計數;
}

/*****************************************************
*函數名稱: SC_PWM0_Init
*函數功能: PWM0初始化函數
*入口參數:void
*出口參數:void 
*****************************************************/
void SC_PWM0_Init(void)
{
	/*PWM0獨立模式*/PWM_Init(PWM0_PRESSEL_FHRC_D1,255);
	/*PWM00 獨立模式*/PWM_IndependentModeConfigEX(PWM05,0, PWM_OUTPUTSTATE_ENABLE);
	/*PWM0*/PWM_Aligned_Mode_Select(PWM0_Edge_Aligned_Mode);
	/*PWM0*/PWM_FaultDetectionConfigEX(PWM0_Type,DISABLE);
	/*PWM0*/PWM_FaultDetectionModeConfigEX(PWM0_Type,PWM0_Immediate_Mode,PWM0_FaultDetectionVoltage_Low,PWM0_WaveFilteringTime_0us);
	/*PWM0中斷使能*/PWM_ITConfigEX(PWM0_Type,DISABLE,LOW);
	/*PWM0開關*/PWM_CmdEX(PWM0_Type,ENABLE);
	/*PWM0_Init write here*/	
}


void main(void)
{
	//LED_Init();
	uint8_t pwm_num;
	uint8_t f;
	SC_PWM0_Init();
	Timer0Iint();
	
	f=0;
	pwm_num = 0;
	while(1)
	{
		if(sta ==1)
		{
			sta = 0;
			if(f ==0)
			{
				pwm_num++;
				PWM_IndependentModeConfig(PWM05,pwm_num);
			}
			else if (f ==1)
			{
				pwm_num--;
				PWM_IndependentModeConfig(PWM05,pwm_num);
			}
			
			if(pwm_num == 255)
			{
				f = 1;
			}
			else if(pwm_num == 0)
			{
				f = 0;
			}
				
		}
		
	}
}

void Timer0() interrupt 1
{
	//每次產生中斷后初始化定時器初值, 1ms秒產生1次中斷
	TH0=(65536-1000)/256;
	TL0=(65536-1000)%256;
	count ++;
	if(count == 10)
	{
		sta =1;
		count = 0;
	}
	
}

實現效果

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • led
    led
    +關注

    關注

    242

    文章

    23616

    瀏覽量

    669311
  • PWM
    PWM
    +關注

    關注

    116

    文章

    5319

    瀏覽量

    217462
  • 呼吸燈
    +關注

    關注

    10

    文章

    112

    瀏覽量

    43044
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    使用單片機驅動多組LED實現呼吸效果電路

    各位大佬,請教下,當前我需要使用單片機驅動控制20路并聯LED,需要PWM驅動實現
    發表于 04-11 14:24

    單片機來控制LED實現呼吸效果

    如題控制LED實現呼吸效果,是什么原理呢?哪位大神做過。分享下經驗呀
    發表于 03-14 17:37

    PWM實現呼吸效果

    ){ analogWrite(11,a); delay(8);//當前亮度的維持的時間,單位毫秒 }delay(800);//完成一個循環后等待的時間,單位毫秒}很簡單很簡單的幾句代碼就能實現呼吸~然后,我們將程序下載到Ard
    發表于 07-20 15:03

    基于CPLD/FPGA的呼吸效果實現_呼吸源碼_明德揚資料

    特效呼吸1功能概述顧名思義,特效呼吸是指在電路控制之下,LED燈光完成由滅到亮、由亮到滅的逐漸變化,感覺像是在
    發表于 08-02 18:03

    使用PWM控制LED實現呼吸效果

    , then set pwm value to highpwm_r elsepwm_r endend那么如何實現呼吸效果呢?我們知道
    發表于 01-06 17:43

    使用PWM控制LED實現呼吸效果

    本文主要講解使用PWM控制LED,實現呼吸效果。
    發表于 01-26 07:36

    用漸變的PWM信號實現LED呼吸的方法

    項目描述:用漸變的PWM信號實現LED呼吸LED由暗逐漸變亮,再由亮逐漸變暗循環。C語言代
    發表于 11-18 07:21

    如何用LED實現呼吸的功能

    一、概述玩過單片機的基本都做過用LED實現呼吸的功能,但是只要認真觀察,會發現LED的亮度變
    發表于 01-21 08:09

    如何通過定時器產生PWM波控制LED實現呼吸效果?

    如何通過定時器產生PWM波控制LED實現呼吸效果?
    發表于 01-25 07:22

    請問一下STM32 PWM是如何去實現呼吸設計的

    STM32 PWM實現呼吸使用STM32F103ZET6 定時器4 CH2通道產生PWM波,在GPIOD,GPIO_PIN13引腳
    發表于 02-21 07:30

    【Banana PI Leaf S3開發板試用體驗】PWM 調節LED呼吸效果

    在BPI-Leaf-S3開發板上要實現呼吸效果非常容易,只需幾個簡單的函數調用即可。由于開發板上配置的是全彩LED
    發表于 10-19 12:28

    使用PWM控制LED實現呼吸效果

    本文主要講解使用PWM控制LED實現呼吸效果。
    的頭像 發表于 02-08 17:50 ?1.4w次閱讀
    使用<b class='flag-5'>PWM</b>控制<b class='flag-5'>LED</b><b class='flag-5'>實現</b><b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>的<b class='flag-5'>效果</b>

    【ZYNQ Ultrascale+ MPSOC FPGA教程】第十章 PWM呼吸實驗

    本文主要講解使用PWM控制LED,實現呼吸效果
    發表于 01-26 08:27 ?1次下載
    【ZYNQ Ultrascale+ MPSOC FPGA教程】第十章 <b class='flag-5'>PWM</b><b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>實驗

    STM32 使用PWM實現呼吸

    STM32 PWM實現呼吸使用STM32F103ZET6 定時器4 CH2通道產生PWM波,在GPIOD,GPIO_PIN13引腳
    發表于 12-24 19:41 ?55次下載
    STM32 使用<b class='flag-5'>PWM</b><b class='flag-5'>實現</b><b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>

    STM32G0開發筆記:用PWM實現LED呼吸效果

    使用Platformio平臺的libopencm3開發框架來開發STM32G0,下面使用PWM實現LED呼吸
    的頭像 發表于 01-16 15:15 ?2601次閱讀
    STM32G0開發筆記:用<b class='flag-5'>PWM</b>來<b class='flag-5'>實現</b><b class='flag-5'>LED</b><b class='flag-5'>呼吸</b><b class='flag-5'>燈</b><b class='flag-5'>效果</b>
    主站蜘蛛池模板: 亚洲成人国产 | 在线播放91灌醉迷j高跟美女 | 久久婷婷久久一区二区三区 | 日本wwwhdsex69| 亚洲第一色图 | 美女扒开内裤无遮挡禁18 | videosgratis乱色欧美野外 | a天堂在线观看 | 成人在线网 | 五月丁五月丁开行停停乱 | 亚洲视频一二 | 色综合天天综久久久噜噜噜久久〔 | 天堂bt种子资源+在线 | 日韩一级精品视频在线观看 | 日本免费的一级绿象 | 色欧美在线 | 国产一区二区三区乱码 | 免费国产不卡午夜福在线观看 | 色婷婷综合在线视频最新 | 抽搐一进一出gif免费男男 | 色中射| 天天爽夜夜爽每晚高澡 | 国产精品成人一区二区三区 | 久久国产成人精品国产成人亚洲 | 毛片在线播放网址 | 国产成人免费无庶挡视频 | 成人观看天堂在线影片 | 亚洲人成人网毛片在线播放 | 草久久久久| 一级一片免费视频播放 | 日本不卡视频在线播放 | 加勒比一本大道香蕉在线视频 | 日本精品一在线观看视频 | 国产精品天天看大片特色视频 | 国产一区二区三区在线影院 | 色偷偷亚洲 | 国产色婷婷精品综合在线 | 成人午夜精品久久久久久久小说 | 天天干天天骑 | 午夜禁片| 国产精品久久久久久久人热 |