注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
0212009623的个人空间 https://home.eeworld.com.cn/space-uid-286755.html [收藏] [复制] [分享] [RSS]
日志

LM3S菜鸟成长日记-LED亮度控制

已有 1769 次阅读2010-12-28 10:54

GPIO能在输出模式,配置成2mA4mA8mA的驱动能力,算是LM的特色之一吧,我们就使用GPIO驱动能力可调,改变驱动电流,控制LED的亮度变化,只能是三种间断的变化。使用API设置:

GPIOPadConfigSet(GPIO_PORTF_BASE,LED,GPIO_STRENGTH_8MA, GPIO_PIN_TYPE_STD);

如果要连续变化,从亮到暗到亮,只能通过PWM不同占空比的电压,一个周期的平均电压的改变,亮度才改变,这个下次介绍。

下面是程序代码

#include "inc/lm3s8962.h"

#include "inc/hw_types.h"

#include "driverlib/sysctl.h"

#include "inc/hw_memmap.h"

#include "driverlib/gpio.h"

 

#define LED GPIO_PIN_0

void delay(unsigned long ulLoop)

{

       while(ulLoop--);

}

int main(void)

{

   SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |

                   SYSCTL_XTAL_8MHZ);//分配时钟

   SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);

 

   GPIODirModeSet(GPIO_PORTF_BASE,LED,GPIO_DIR_MODE_OUT);

   GPIOPadConfigSet(GPIO_PORTF_BASE,LED,GPIO_STRENGTH_8MA, GPIO_PIN_TYPE_STD);

  GPIOPinWrite(GPIO_PORTF_BASE,LED,1);

    while(1)

    {

   delay(200000);

   GPIOPadConfigSet(GPIO_PORTF_BASE,LED,GPIO_STRENGTH_8MA, GPIO_PIN_TYPE_STD);

   delay(200000);

   GPIOPadConfigSet(GPIO_PORTF_BASE,LED,GPIO_STRENGTH_4MA, GPIO_PIN_TYPE_STD);

   delay(200000);    

   GPIOPadConfigSet(GPIO_PORTF_BASE,LED,GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD);

   delay(200000);

    }

}

本文含有来自论坛的附件或图片:[led亮度变化.rar],点击查看原帖附件。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章