#include <iom16v.h>
#include <macros.h>
#define uint unsigned int
#define uchar unsigned char
#define SPIF 7
#define ss 4 //PB4
#define mosi 5 //PB5
#define sck 7 //PB7
void spi_init() //初始化
{
DDRB=0xFF; //端口设置?不懂为啥这样设
PORTB=0x00; //这是PB全为高电位输出:即SCK,MOSI为高电位初始化
SPSR=0x00; //状态寄存器全0,这是为啥
SPCR=0x50; //主机模式 方式1 ocs/16 SPI控制寄存器设置01010101,一般情况需要改动吗?
}
void DAC_TLV5618(uint temp)
{
PORTB&=~(1<<ss);
SPDR=(uchar)( temp&&0xff00)>>8;
while(!SPSR&(1<<SPIF));
SPSR=(uchar)( temp&&0x00ff);
while(!SPSR&(1<<SPIF));
//PORTB|= (1<<ss);
}
void main()
{
//delay_ms(500);
spi_init();
DAC_TLV5618(0x4800);
while(1);
}
此帖出自
小平头技术问答
一周热门 更多>