Gast
#479364
Hallo,
ich möchte einen MAX 7219 7-segment-Treiber mit einem ATMega 8 über SPI
steuern. Dabei soll, wenn ich es im Datenblatt vom 7219 richtig
verstanden habe, nach dem transfer von 16 bit die Flanke von LOAD (PB2
am uC) steigen.
Kann mir jemand sagen, ob ich die SPI-Methoden so richtig aufgebaut
habe? (Mit SPI habe ich so gut wie garkeine Erfahrung...)
void SPI_MasterInit(void)
{
// set MOSI and SCK output, all others input
DDRB = (1<<PB2)|(1<<PB3)|(1<<PB5);
// enable SPI, Master, set clock rate fck/16
SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0);
PORTB = 0x00;
}
void SPI_MasterTransmit(char cData)
{
SPDR = cData; // Start transmission
while(!(SPSR & (1<<SPIF))); // Wait for transmission complete
PORTB |= (1 << PB2);
PORTB &= ~(1 << PB2);
}
void transmit(char addr, char data) {
SPI_MasterTransmit(addr);
SPI_MasterTransmit(data);
}
Vielen Dank fürs lesen und helfen :)