⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 5615.c

📁 ATMEGA16与串行DA-TLC5615的通讯程序
💻 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 + -