#include <avr/io.h>
#include "SPI.h"
/*
CPHA = 0 --> touch,rfm12
CPHA = 1 --> ds1306, 25lc1024
*/
void SPI_Init(void){
// Configurar nSS, SDO, SCK como OUTPUT e SDI como INPUT
SPI_DDR |= (1<<SPI_nSS) | (1<<SPI_MOSI) | (1<<SPI_SCK) ;
SPI_DDR &= ~(1<<SPI_MISO);
// Configurar o SPI enable, SPI como Master clock phase como trailing edge
//SPCR = (1<<SPE) | (1<<MSTR) | (1<<CPHA);
SPCR = (1<<MSTR) | (1<<SPE);
}
void SPI_CPHA_0(void){
SPCR &= ~(1<<CPHA);
}
void SPI_CPHA_1(void){
SPCR |= (1<<CPHA);
}
unsigned char SPI_Transfer_1( unsigned char aDat ){
SPDR = aDat;
while ( ! (SPSR & (1<<SPIF)) ) {};
return SPDR;
}
unsigned char SPI_Transfer_2( unsigned char dataHigh, unsigned char dataLow ){
SPDR = dataHigh;
while ( ! (SPSR & (1<<SPIF)) ) {};
SPDR = dataLow;
while ( ! (SPSR & (1<<SPIF)) ) {};
return SPDR;
}
SPI.rar_atmega32_atmega32 spi_spi atmega32
版权申诉
32 浏览量
2022-09-24
15:01:44
上传
评论
收藏 772B RAR 举报
weixin_42653672
- 粉丝: 93
- 资源: 1万+