/*
 * Matrix_LED_RTC.c
 *
 * Created: 2012.04.08. 12:16:47
 *  Author: Ati
 */ 

#define F_CPU 8000000UL 

#include <avr/io.h>
#include <util/delay.h>


#define DD_MOSI DDB3
#define DD_SCK DDB5
#define DD_SS DDD7
#define DD_RESET DDD6
#define DDR_SPI DDRB




void SPI_MasterInit(void)
{
	DDRD  |= (1<<DD_RESET)|(1<<DD_SS);
			PORTD &= ~(1<<PORTD6);
		_delay_ms(1);
	PORTD |= (1<<DDD6);
		_delay_ms(1);
/* Set MOSI and SCK output, all others input */
DDR_SPI |= (1<<DD_MOSI)|(1<<DD_SCK);
		_delay_ms(1);
/* Enable SPI, Master, set clock rate fck/16 */
SPCR |= (1<<SPE)|(1<<DORD)|(1<<MSTR);
		_delay_ms(1);
PORTD |= (1<<DDD7);
		_delay_ms(1);
}



void SPI_MasterTransmit(char cData)
{
PORTD &= ~(1<<DDD7);
_delay_loop_2(40);
SPDR = cData;
/* Wait for transmission complete */
while(!(SPSR & (1<<SPIF)));
_delay_loop_2(40);
PORTD |= (1<<DDD7);
}




int main(void)
{
SPI_MasterInit();
	_delay_ms(1);	
SPI_MasterTransmit(0b11100000);
	_delay_ms(1); 
	  
	while(1) {		
	SPI_MasterTransmit(0b10100010);
	_delay_ms(1); 
	SPI_MasterTransmit(0b00001010);
	_delay_ms(100);
    }
}

