TLC59731 LED 驱动芯片 C语言驱动程序
来源:互联网 发布:python chm手册 编辑:程序博客网 时间:2024/04/27 07:59
模拟通信时序
测试平台 msp430f6723 ,MCLK = 12MHz
两个TLC59731芯片,分别使用两个IO控制通信
* * bsp_tlc59731.c * * Created on: 2017年6月10日 * Author: foreversun */#include "bsp_tlc59731.h"//1/12MHz *12 * 20 MCLK=12MHz//20 us 通信速度//__delay_cycles(240);//P6.3 P1.6 串行端口定义void bsp_TLC59731_init(void){ GPIO_setAsOutputPin(GPIO_PORT_P6,GPIO_PIN3); GPIO_setOutputLowOnPin(GPIO_PORT_P6,GPIO_PIN3); GPIO_setAsOutputPin(GPIO_PORT_P1,GPIO_PIN6); GPIO_setOutputLowOnPin(GPIO_PORT_P1,GPIO_PIN6);}//数据移位,发送一个字节static void bsp_TLC59731_shift(uint8_t shifting ,uint8_t sel){ uint8_t bits,bang; if(sel == SDI0_ID ) for( bits = 0; bits < 8; bits++ ) { bang = shifting & ( 0x80 >> bits ); SDI0_HIGH(); __delay_cycles(1); SDI0_LOW(); if ( bang > 0) { SDI0_HIGH(); __delay_cycles(1); SDI0_LOW(); } SDI_CLK(); } if(sel == SDI1_ID){ for( bits = 0; bits < 8; bits++ ) { bang = shifting & ( 0x80 >> bits ); SDI1_HIGH(); __delay_cycles(1); SDI1_LOW(); if ( bang > 0) { SDI1_HIGH(); __delay_cycles(1); SDI1_LOW(); } SDI_CLK(); } }}//数据是否结束标志发送static void bsp_TLC59731_eos( bool flag ,uint8_t sel){ uint8_t count,i; if ( !flag ) count = 8; else count = 4; for ( i = 0; i < count; i++) { SDI_CLK() ; } if(sel == SDI0_ID ){ SDI0_HIGH(); __delay_cycles(1); SDI0_LOW(); } if(sel == SDI1_ID){ SDI1_HIGH(); __delay_cycles(1); SDI1_LOW(); }}//发送整个数据32bitvoid bsp_TLC59731_light(uint8_t sel ,uint8_t r, uint8_t g, uint8_t b, bool latch ){ _disable_interrupt(); bsp_TLC59731_shift(0x3A,sel); bsp_TLC59731_shift(r,sel); bsp_TLC59731_shift(g,sel); bsp_TLC59731_shift(b,sel); if (!latch) bsp_TLC59731_eos(true,sel); else bsp_TLC59731_eos(false,sel); _enable_interrupt();}
/* * bsp_tic59731.h * * Created on: 2017年6月10日 * Author: foreversun */#ifndef BSP_BSP_TLC59731_H_#define BSP_BSP_TLC59731_H_#include "driverlib.h"#define SDI0_ID 0x01#define SDI1_ID 0x02#define SDI_CLK() __delay_cycles(240)#define SDI0_HIGH() GPIO_setOutputHighOnPin(GPIO_PORT_P6,GPIO_PIN3)#define SDI0_LOW() GPIO_setOutputLowOnPin(GPIO_PORT_P6,GPIO_PIN3)#define SDI1_HIGH() GPIO_setOutputHighOnPin(GPIO_PORT_P1,GPIO_PIN6)#define SDI1_LOW() GPIO_setOutputLowOnPin(GPIO_PORT_P1,GPIO_PIN6)void bsp_TLC59731_init(void);void bsp_TLC59731_light(unsigned char sel, unsigned char r, unsigned char g, unsigned char b, bool latch );#endif /* BSP_BSP_TLC59731_H_ */
阅读全文
1 0
- TLC59731 LED 驱动芯片 C语言驱动程序
- LED恒流驱动芯片
- MAX7219驱动程序( LED显示芯片)
- 第一个驱动程序-led驱动
- 【Linux驱动】TQ2440 LED驱动程序
- 字符设备驱动----LED驱动程序
- 字符设备驱动--LED驱动程序
- 7219芯片驱动LED的电子时钟
- 单片机定时驱动led程序2--c语言实现
- ARM内核驱动—LED驱动程序设计
- 嵌入式驱动编写-点亮LED驱动程序
- LED灯显示字符驱动程序-linux2.6LED显示驱动
- LED灯显示字符驱动程序-linux2.6LED显示驱动
- 浅谈单片机c语言模块化编程-附ds1302时钟芯片驱动程序
- LED PWM控制芯片PCA9685的Linux 驱动
- LED驱动程序
- LED驱动程序
- LED 驱动程序
- [bzoj2038][2009国家集训队]小Z的袜子(hose) 莫队算法
- 第七章 为什么巴比伦塔会失败
- shell-keys
- [leetcode]583. Delete Operation for Two Strings
- 我对servlet的理解
- TLC59731 LED 驱动芯片 C语言驱动程序
- 三张图片了解activity进出场动画
- Iptables简介与示例
- sslocal客户端运行报错
- C# 模态窗体详细介绍
- 数据库,sql语句1:表的结构操作
- android QQ支付不能调起
- Construct Binary Tree from Preorder and Inorder Traversal
- UCOSIII移植问题说明