i.MX6ULL终结者屏幕背光调节例程程序设计

本文档详细介绍了在i.MX6ULL开发平台上进行屏幕背光调节的程序设计过程。首先,展示了如何在Ubuntu系统下创建并复制源码文件到指定目录。接着,说明了在`drivers`目录下创建`backlight`文件夹,并编写了`backlight.h`和`backlight.c`文件,用于存储PWM驱动和相关函数。在`backlight.c`中定义了中断处理函数和初始化函数等。最后,在`main.c`文件中调用这些函数完成PWM初始化和占空比设置,通过检测按键实现背光亮度的动态调整。
摘要由CSDN通过智能技术生成

本实验的源码工程在开发板光盘资料的:i.MX6UL终结者光盘资料\04_裸机例程源码\18_backlight 目录下。我们在Ubuntu系统下使用命令“mkdir 18_backlight”建立“18_backlight”文件夹,如图 1所示:
在这里插入图片描述

图 1

然后使用“cd 18_backlight”命令进入到18_backlight文件夹,如图 2所示:
在这里插入图片描述

图 2

然后使用命令“cp -r …/17_touchscreen/* ./”将上一章试验中的所有内容拷贝到刚刚新建的“18_backlight”里面,如图 3所示:
在这里插入图片描述

图 3

然后在drivers目录下建立backlight文件夹,用来保存背光的驱动文件,然后在“drivers/backlight”目录中新建backlight.h和backlight.c两个文件,然后在backlight.h文件输入下面的代码:

 1 #ifndef _BACKLIGHT_H
  2 #define _BACKLIGHT_H
  3 
  4 #include "imx6ul.h"
  5 
  6 /* 背光PWM结构体 */
  7 struct backlight_dev_struc
  8 {
   
  9         unsigned char pwm_duty;/* 占空比*/
 10 };
 11 
 12 
 13 /* 函数声明 */
 14 void backlight_init(void);
 15 void pwm1_enable(void);
 16 void pwm1_setsample_value(unsigned int value);
 17 void pwm1_setperiod_value(unsigned int value);
 18 void pwm1_setduty(unsigned char duty);
 19 void pwm1_irqhandler(void);
 20 
 21 #endif

第7行定义了一个背光的结构体,用来存储PWM的占空比。第14行到第19行声明了一些函数。
然后我们打开backlight.c文件,在里面输入下面的内容:

 1 #include "backlight.h"
  2 #include "int.h"
  3 #include "stdio.h"
  4 
  5 
  6 /* 背光设备 */
  7 struct backlight_dev_struc backlight_dev;
  8 
  9  /*
 10  * @description : pwm1中断处理函数
 11  * @param               : 无
 12  * @return              : 无
 13  */
 14 void pwm1_irqhandler(void)
 15 {
   
 16 
 17         if(PWM1->PWMSR & (1 << 3))/* FIFO为空中断 */
 18         {
   
 19                 /* 将占空比信息写入到FIFO中,其实就是设置占空比 */
 20                 pwm1_setduty(backlight_dev.pwm_duty);
 21                 PWM1->PWMSR |= (1 << 3); /* 写1清除中断标志位 */
 22         }
 23 }
 24 
 25 /*
 26  * @description : 初始化背光PWM
 27  * @param               : 无
 28  * @return              : 无
 29  */
 30 void backlight_init(void)
 31 {
   
 32         unsigned char i = 0;
 33 
 34
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值