Hi,
ich will einen 16 bits String von einem Chip ankommen. Dabei benutze ich den SPI. Danach will ich ein Teil des String in die LED´s schicken. Der Prozessor ist ein Atmega16.
MfgCode:#include <avr/io.h> #include <avr/signal.h> #include <avr/interrupt.h> #define DDR_SPI DDRB #define DD_SS PB4 #define DD_SCK PB7 #define DD_MISO PB6 // Receive data from the MAXIM through the serial peripherical interface // between Master : MAXIM and Slave : Atmel void SPI_SlaveInit(void){ // Initialitation of the slave DDR_SPI = (1<<DD_MISO);// Set MISO output, and all others input SPCR = (1<<SPE)|(1<<SPIE); // Enable SPI and SPI Interruptions sei(); } char SPI_SlaveReceive(void){ while(!(SPSR & (1<<SPIF))); // Wait for reception complete return SPDR; // Return data register } int main(void) { //Initialisierung des Controller und des Displays DDRC = 0xff; //PORT C als Ausgänge SPI_SlaveInit();// Initialitation of the slave char tempbin; while(1){ tempbin= SPI_SlaveReceive(); PORTC = 3 >> tempbin; _delay_ms(100); } return 1; }
Peter
Lesezeichen