Forum: Mikrocontroller und Digitale Elektronik SPI macht Reset


von Murphy S. (student-f)


Lesenswert?

Hallo an alle,

leider werde ich aus den anderen Forumsbeiträgen auch nciht schlauer :-( 
Daher ggf. ein Tipp von euch. Ich bin derzeit wieder am programmieren 
und kriege gerade die Krise...

Ich habe bis heute morgen ein lauffähiges Programm(AVR-GCC) gehabt. Dann 
nur eben ein Wert geändert und schwups geht nix mehr auf meinem SPI 
Port. Ich habe ein Oscar drangehangen und festgestellt, dass der 
uC(ATmega) immer nach der SPI-Initialisierung abschmiert.. Habe alles 
bis auf die Initialisierung entfernt.
1
void SPI_MasterInit(void)
2
{
3
DDRB = 0x07;  
4
SPCR =      (1 << MSTR) | (1 << SPE) |(0 << DORD) | (1 << CPOL) | (1 << CPHA) |   (1 << SPR1) | (1 << SPR0);
5
SPDR = 0xFF; 
6
PORTC = 0xff;
7
}
8
9
void main(void)
10
{
11
DDRC = 0xff;
12
PORTC = 0xff;
13
SPI_MasterInit();  //Initialisieren und PORTC Ausgänge auf High setzen
14
//sei();             // Sei() freischalten
15
  while(1)
16
  {
17
// bis hierhin kommt er erst gar nicht!
18
  }
19
  
20
}

Habe die anderen machenschaften meines Codes erstmal gelöscht bzw. 
auskommentiert. Auch mit oder ohne sei(); ändert sich kein Verhalten. 
Reset Pegel immer auf HIGH!! Warum macht er dann einen Reset ?

Achso, sehe im Oscar, dass er immer das SPDR zum "starten" rausschickt, 
also Reset!!

gruß

von (prx) A. K. (prx)


Lesenswert?

Reset geht nicht nur durch den entsprechenden Pin. Auch durch Sprung 
nach 0, Watchdog, Spannungseinbruch (z.B. durch Pin-Kurzschluss), ...

Wirf beim Start mal einen Blick ins MCUCR/MCUCSR. Da steht der Grund 
eines Resets drin.

von Murphy S. (student-f)


Lesenswert?

Hallo,

gute Ideee(wieder was gelernt:-). Das mache ich erstmal zwecks der 
Fehleranalyse.. Habe nun nen anderen Drauf (mein letzzer bibber) der 
will sofort... Komisch.. Naja, wieder einmal einen geschossen. Wobei der 
andere kein ISP mehr kann..

Danke!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.