在线观看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

    文章

    23277

    瀏覽量

    660874
  • PWM
    PWM
    +關注

    關注

    114

    文章

    5186

    瀏覽量

    213939
  • 呼吸燈
    +關注

    關注

    10

    文章

    110

    瀏覽量

    42731
收藏 人收藏

    評論

    相關推薦

    單片機來控制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實現呼吸的應用

    stm32實現PWM最簡單方法前言一、PWM概念二、PWM應用輸出比較功能框圖三、PWM呼吸
    發表于 01-21 13:18

    如何通過定時器產生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 ?2295次閱讀
    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>
    主站蜘蛛池模板: 久久精品国产免费高清| 特黄特级毛片免费视| 日日噜噜噜噜人人爽亚洲精品| 精品xxxxxbbbb欧美中文| 天天操夜夜做| 亚洲一区二区三区在线视频| 四虎影院精品在线观看| 成人涩涩网站| aa国产| 一级特黄特黄的大片免费 | 色老久久精品偷偷鲁一区| 国产精品欧美一区二区三区不卡| 久久大综合| 有一婷婷色| 国产美女免费| 五月天色丁香| 色资源窝窝全色| 一级毛片免费不卡直观看| 在线亚洲免费| 欧美另类videos| 久久精品免费观看| 国产叼嘿视频免费网站| 午夜视频黄色| 色婷婷色综合缴情在线| 夜夜骑天天干| 美女扒开腿让男人桶尿口 | 国产亚洲精品自在久久77| 东北美女野外bbwbbw免费| 香蕉视频黄色在线观看| 成人欧美精品大91在线| 6080yy午夜不卡一二三区| 欧美行爱| 国产深夜福利在线观看网站| 五月婷婷激情在线| 怡红院影院| 久久久久国产一级毛片高清板| 国模久久| 在线观看日本免费不卡| 免费人成在线观看网站品爱网| 国产午夜在线观看视频| 色婷婷综合久久久久中文一区二区|