当前位置:首页 > 物联网 > 大鱼机器人
[导读]要学嵌入式,关注↓↓↓ @我要学嵌入式,嵌入式猛男的加油站。作者|strongerHuang微信公众号 | 嵌入式专栏很多初学者觉得自己学的东西很基础,担心今后实际工作用不到。有初学者问了这样的问题:单片机真正开发产品和学习的时候有什么差别,平时学的LED、ADC这些东西,在实际...




很多初学者觉得自己学的东西很基础,担心今后实际工作用不到。有初学者问了这样的问题:单片机真正开发产品和学习的时候有什么差别,平时学的LED、ADC这些东西,在实际项目中会用到吗?
虽然技术更新迭代很快,但有很多基本的技术,仍然在实际项目中会用到,今天就拿LED为例来说说吧。


01



LED有哪些作用?

别小看LED,它在实际生活中应用很广泛的。



首先就是以LED为光源的项目,比如呼吸灯、广告灯、LED显示屏等,这类控制LED亮灭(闪烁),或者亮度渐变。



再次就是LED背光灯,像液晶背光灯、按键背光灯等,这种也是需要控制LED变化的。我之前做过有按键的项目,按键背光灯需要渐变、配合音效控制LED不同频率闪烁,目的就是为了达到更好的体验效果。



再再次,LED作为指示灯,电源指示灯、状态指示灯,这种就和接近初学者的学习时的LED灯,但这种却在项目中很常见。





拿状态指示灯来说,一个项目的LED状态指示灯可以直观明了的指示设备的运行状态,比如:运行、故障、待机、死机等常见状态。通过RGB,或者红黄绿不同颜色LED组合,可以实现更多状态的指示。



下面针对LED状态灯,说几点细节的内容。




02



LED状态灯的实现


这里结合代码为大家分享一些项目中常见的LED状态灯的实现方法。



1.单色LED运行状态指示灯



通过闪烁(一亮一灭)指示设备运行的状态的指示灯,一个关键作用:设备有没有死机。



很多产品中都会用到,你买一个开发板,提供的综合例程也基本都有。



裸机情况下(一般状态机),在某一个状态实现LED闪烁:


int main(void){ //系统初始化 while(1) { //do something switch(State) { case 状态1: //do something break;
case 状态2: //do something break; · · · case 状态灯: ED_TOGGLE(); //LED闪烁 break; } }}
RTOS情况下,新建一个状态灯线程,在线程里面直接控制即可:


void StatusLight_Task(void *pvParameters){ static TickType_t xLastWakeTime; //初始化 xLastWakeTime = xTaskGetTickCount(); for(;;) {//do something LED_TOGGLE(); //LED闪烁 vTaskDelayUntil(
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭