Gast
#309238
Hallo zusammen ich versuche mit AVRStudio 4.12 und WinAVR bei einem ATmega644 das SPI interface zum Ticken zu bekommen. Vorerst im Simulator. Jetzt stellt sich aber das Problem ein, dass das SPI Masterbit sofort nach dem setzen wieder gelöscht wird. /SS ist sowohl als Ausgang Konfiguriert als auch "High". Nun dachte ich mir, das liegt sicherlich an dem neuen ATmega644 und hab deswegen auf den ATmega64 umgestellt. Ergebnist: Das gleiche. Seltsamerweise funktioniert der Code, wenn ich auf einen ATmega32 stelle. Hat irgendjemand eine Idee? Hier der Code: #include <avr/io.h> #include <avr/interrupt.h> #include "solar.h" extern void init_LCD(void); int main(void) { int i; char c; // Port Initialisierung DDRA = 0x00; DDRB = 0x00; DDRC = 0x00; DDRD = 0x07; PORTA = 0x00; PORTB = 0x10; PORTC = 0x00; PORTD = 0x07; //SPI initialisierung //SPI Master, fosc/128 DDRB = (1<<PB5) | (1<<PB7) | (1<<PB4); PORTB = 0xB0; PRR0 = PRR0 & 0xFF^(1<<PRSPI); SPCR0 = (1<<SPE0) | (1<<MSTR0) | (1<<CPOL0) | (1<<CPHA0) |(1<<SPR01) | (1<<SPR00); SPSR0 = (1<<SPI2X0); // Hier ist MSTR schon wieder '0' init_LCD(); while(1) { } return 0; }