📄 5615.c
字号:
#include <avr/io.h>
#include <stdint.h>
#define da_cs PB1
//5625使能接口定义,只能接到PORTB
void da_write(uint16_t da_val);
void da_init(void);
void da_init()
{
PORTB|=(1<<da_cs);
}
void da_write(uint16_t da_val)
{
uint16_t da_tmp;
uint8_t da_tmp1;
da_tmp=da_val<<2;
da_tmp&=0x0fff; //TLC5615十六位通讯格式
//为4位0+10位数据+2位0
da_tmp1=(uint8_t)((da_tmp&0xff00)>>8);//提取前八位
SPCR|=(1<<SPE); //SPI使能
PORTB&=(~(1<<da_cs)); //DA使能
SPDR=da_tmp1; //SPI传送第一字节
da_tmp1=(uint8_t)(da_tmp&0x00ff); //提取后八位
while(!(SPSR&(1<<SPIF))); //等待传送完成
SPDR=da_tmp1; //SPI传送第二字节
while(!(SPSR&(1<<SPIF)));
PORTB|=(1<<da_cs); //DA关闭
SPCR&=(~(1<<SPE)); //SPI关闭
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -