/*
 * SPI.c
 *
 * Created: 24.10.2023 15:34:10
 *  Author: Katya
 */ 

#include "SPI.h"

void SPI_MasterInit(void) {
	 // Настройка пина SS (PE2) как выхода
	 DDRE |= (1 << PORTE2);
	 // Установка SS в высокое состояние (неактивный)
	 PORTE |= (1 << PORTE2);
	 
	/* Set MOSI, SS and SCK output */
	DDRE |= (1 << MOSI);
	DDRC |= (1 << SCK) | (1 << SS);
	
	/* Enable SPI, Master */
	SPCR1 = (1 << SPE1) | (1 << MSTR1);
}

void SPI_MasterTransmit(uint8_t data) {
	PORTC &= ~(1 << PORTC2);  // начало передачи - низкий уровень
	SPDR1 = data;
	while(!(SPSR1 & (1<<SPIF1)));
	PORTC |= (1 << PORTC2);  // конец передачи - высокий уровень
}