DSP28335点灯+流水灯实验

1、在工程文件中app文件夹下新建leds子文件夹用于存放leds.c/leds.h文件(记得添加进头文件路径),在user/main.c编写主函数

 2、leds.c代码

#include "leds.h"
void LED_Init(void)
{
EALLOW;//关闭写保护

//LED1 端口配置
GpioCtrlRegs.GPCMUX1.bit.GPIO68=0;//设置为普通IO功能,如果是GPIO79以后的管脚由GPCMUX2控制
GpioCtrlRegs.GPCDIR.bit.GPIO68=1;//设置GPIO方向为输出
GpioCtrlRegs.GPCPUD.bit.GPIO68=0;//使能GPIO上拉电阻
//LED2 端口配置
GpioCtrlRegs.GPCMUX1.bit.GPIO67=0;
GpioCtrlRegs.GPCDIR.bit.GPIO67=1;
GpioCtrlRegs.GPCPUD.bit.GPIO67=0;
//LED3 端口配置
GpioCtrlRegs.GPCMUX1.bit.GPIO66=0;
GpioCtrlRegs.GPCDIR.bit.GPIO66=1;
GpioCtrlRegs.GPCPUD.bit.GPIO66=0;
//LED4 端口配置
GpioCtrlRegs.GPCMUX1.bit.GPIO65=0;
GpioCtrlRegs.GPCDIR.bit.GPIO65=1;
GpioCtrlRegs.GPCPUD.bit.GPIO65=0;
//LED5 端口配置
GpioCtrlRegs.GPCMUX1.bit.GPIO64=0;
GpioCtrlRegs.GPCDIR.bit.GPIO64=1;
GpioCtrlRegs.GPCPUD.bit.GPIO64=0;
//LED6 端口配置
GpioCtrlRegs.GPAMUX1.bit.GPIO10=0;
GpioCtrlRegs.GPADIR.bit.GPIO10=1;
GpioCtrlRegs.GPAPUD.bit.GPIO10=0;
//LED7 端口配置
GpioCtrlRegs.GPAMUX1.bit.GPIO11=0;
GpioCtrlRegs.GPADIR.bit.GPIO11=1;
GpioCtrlRegs.GPAPUD.bit.GPIO11=0;

GpioDataRegs.GPCSET.bit.GPIO68=1;//初始时希望GPIO口输出高电平,使LED灯熄灭
GpioDataRegs.GPCSET.bit.GPIO67=1;
GpioDataRegs.GPCSET.bit.GPIO66=1;
GpioDataRegs.GPCSET.bit.GPIO65=1;
GpioDataRegs.GPCSET.bit.GPIO64=1;
GpioDataRegs.GPASET.bit.GPIO10=1;
GpioDataRegs.GPASET.bit.GPIO11=1;

EDIS;//开启写保护
}

3、leds.h代码

#ifndef _LEDS_H_//防止头文件被重复包含,避免引起编译错误
#define _LEDS_H_//防止头文件被重复包含,避免引起编译错误

#include "DSP2833x_Device.h" // DSP2833x 头文件
#include "DSP2833x_Examples.h" // DSP2833x 例子相关头文件

#define LED1_OFF (GpioDataRegs.GPCSET.bit.GPIO68=1)
#define LED1_ON (GpioDataRegs.GPCCLEAR.bit.GPIO68=1)
#define LED1_TOGGLE (GpioDataRegs.GPCTOGGLE.bit.GPIO68=1)

#define LED2_OFF (GpioDataRegs.GPCSET.bit.GPIO67=1)
#define LED2_ON (GpioDataRegs.GPCCLEAR.bit.GPIO67=1)
#define LED2_TOGGLE (GpioDataRegs.GPCTOGGLE.bit.GPIO67=1)

#define LED3_OFF (GpioDataRegs.GPCSET.bit.GPIO66=1)
#define LED3_ON (GpioDataRegs.GPCCLEAR.bit.GPIO66=1)
#define LED3_TOGGLE (GpioDataRegs.GPCTOGGLE.bit.GPIO66=1)

#define LED4_OFF (GpioDataRegs.GPCSET.bit.GPIO65=1)
#define LED4_ON (GpioDataRegs.GPCCLEAR.bit.GPIO65=1)
#define LED4_TOGGLE (GpioDataRegs.GPCTOGGLE.bit.GPIO65=1)

#define LED5_OFF (GpioDataRegs.GPCSET.bit.GPIO64=1)
#define LED5_ON (GpioDataRegs.GPCCLEAR.bit.GPIO64=1)
#define LED5_TOGGLE (GpioDataRegs.GPCTOGGLE.bit.GPIO64=1)

#define LED6_OFF (GpioDataRegs.GPASET.bit.GPIO10=1)
#define LED6_ON (GpioDataRegs.GPACLEAR.bit.GPIO10=1)
#define LED6_TOGGLE (GpioDataRegs.GPATOGGLE.bit.GPIO10=1)

#define LED7_OFF (GpioDataRegs.GPASET.bit.GPIO11=1)
#define LED7_ON (GpioDataRegs.GPACLEAR.bit.GPIO11=1)
#define LED7_TOGGLE (GpioDataRegs.GPATOGGLE.bit.GPIO11=1)

void LED_Init(void);

#endif//防止头文件被重复包含,避免引起编译错误

4、main.c代码

#include "DSP2833x_Device.h"
#include "DSP2833x_Examples.h"
#include "leds.h"

//延时函数
void delay_1ms(Uint16 t)
{
    while(t--)
    {
        DELAY_US(1000);
    }
}

void main()
{
    InitSysCtrl();//系统时钟配置和使能各外设时钟,包括GPIO 时钟
    LED_Init();//调用LED 初始化函数,将GPIO68 引脚配置为普通GPIO、输出方向、使能上拉

      //点灯
//    while(1)
//    {
//    LED2_ON;
//    delay_1ms(1000);
//    }

    //流水灯循环
    for(;;)
    {
        LED1_ON;
        delay_1ms(100);//延时100ms
        LED1_OFF;

        LED2_ON;
        delay_1ms(100);
        LED2_OFF;

        LED3_ON;
        delay_1ms(100);
        LED3_OFF;

        LED4_ON;
        delay_1ms(100);
        LED4_OFF;

        LED5_ON;
        delay_1ms(100);
        LED5_OFF;

        LED6_ON;
        delay_1ms(100);
        LED6_OFF;

        LED7_ON;
        delay_1ms(100);
        LED7_OFF;
    }
}

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狸花.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值