tiabebo
21.06.2006, 17:36
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.
#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;
}
Mfg
Peter
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.
#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;
}
Mfg
Peter