1861|0

1140

帖子

0

TA的资源

纯净的硅(初级)

楼主
 

分享DSPTMS320F28035的LED驱动程序 [复制链接]

  • /************************************
  •     标题:LEDs.h
  •     软件平台:DSP.com/forum.php?mod=forumdisplay&fid=58" target="_blank" class="relatedlink">CCS v5.2
  •     硬件平台:毕设控制板
  •     主频:60M

  •     author:小船
  •     data:2013-02-23
  • *************************************/
  • #ifndef LEDS_H_
  • #define LEDS_H_

  • #include "PeripheralHeaderIncludes.h"

  • #define no_config_leds_by_funtion

  • #define LED0 0x00000200
  • #define LED1 0x00020000
  • #define LED2 0x00040000
  • #define LED3 0x02000000

  • #define LEDA_on(LED_num)           GpioDataRegs.GPACLEAR.all = LED_num
  • #define LEDA_off(LED_num)          GpioDataRegs.GPASET.all = LED_num
  • #define LEDA_toggle(LED_num)       GpioDataRegs.GPATOGGLE.all = LED_num

  • #define LEDB_on(LED_num)           GpioDataRegs.GPBCLEAR.all = LED_num
  • #define LEDB_off(LED_num)          GpioDataRegs.GPBSET.all = LED_num
  • #define LEDB_toggle(LED_num)       GpioDataRegs.GPBTOGGLE.all = LED_num

  • #ifdef config_leds_by_funtion
  • enum LED_action {on, off, toggle};
  • void LEDs(Uint32 LED_num, enum LED_action action);
  • #endif

  • void LEDs_init();

  • #endif /* LEDS_H_ */

  • /************************************
  •     标题:LEDs.c
  •     软件平台:CCS v5.2
  •     硬件平台:毕设控制板
  •     主频:60M

  •     author:小船
  •     data:2013-02-23
  • *************************************/
  • #include "LEDs.h"

  • void LEDs_init()
  • {
  • EALLOW;
  • //使能上拉电阻
  • GpioCtrlRegs.GPBPUD.bit.GPIO41 = 1;
  • GpioCtrlRegs.GPAPUD.bit.GPIO25 = 1;
  • GpioCtrlRegs.GPAPUD.bit.GPIO18 = 1;
  • GpioCtrlRegs.GPAPUD.bit.GPIO17 = 1;

  • //选择GPIO功能
  • GpioCtrlRegs.GPBMUX1.bit.GPIO41 = 0x0;
  • GpioCtrlRegs.GPAMUX2.bit.GPIO25 = 0x0;
  • GpioCtrlRegs.GPAMUX2.bit.GPIO17 = 0x0;
  • GpioCtrlRegs.GPAMUX2.bit.GPIO18 = 0x0;

  • //方向
  • GpioCtrlRegs.GPBDIR.bit.GPIO41 = 1;
  • GpioCtrlRegs.GPADIR.bit.GPIO25 = 1;
  • GpioCtrlRegs.GPADIR.bit.GPIO17 = 1;
  • GpioCtrlRegs.GPADIR.bit.GPIO18 = 1;

  • EDIS;
  • LEDB_off(LED0);
  • LEDA_off(LED1|LED2|LED3);
  • }

  • #ifdef config_leds_by_funtion
  • void LEDs(Uint32 LED_num, enum LED_action action)
  • {
  • if(LED_num !=  )
  • {
  •   switch (action)
  •   {
  •    case on:{
  •     GpioDataRegs.GPBCLEAR.all = LED_num;
  •     break;
  •    }

  •    case off:{
  •     GpioDataRegs.GPBSET.all = LED_num;
  •     break;
  •    }

  •    case toggle:{
  •     GpioDataRegs.GPBTOGGLE.all = LED_num;
  •     break;
  •    }
  •   }
  • }
  • else
  • {
  •   switch (action)
  •   {
  •    case on:{
  •     GpioDataRegs.GPACLEAR.all = LED_num;
  •     break;
  •    }

  •    case off:{
  •     GpioDataRegs.GPASET.all = LED_num;
  •     break;
  •    }

  •    case toggle:{
  •     GpioDataRegs.GPATOGGLE.all = LED_num;
  •     break;
  •    }
  •   }
  • }
  • }
  • #endif

点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表