mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI macht Reset


Autor: Murphy Spider (student-f)
Datum:

Bewertung
0 lesenswert
nicht 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.
void SPI_MasterInit(void)
{
DDRB = 0x07;  
SPCR =      (1 << MSTR) | (1 << SPE) |(0 << DORD) | (1 << CPOL) | (1 << CPHA) |   (1 << SPR1) | (1 << SPR0);
SPDR = 0xFF; 
PORTC = 0xff;
}

void main(void)
{
DDRC = 0xff;
PORTC = 0xff;
SPI_MasterInit();  //Initialisieren und PORTC Ausgänge auf High setzen
//sei();             // Sei() freischalten
  while(1)
  {
// bis hierhin kommt er erst gar nicht!
  }
  
}


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ß

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Murphy Spider (student-f)
Datum:

Bewertung
0 lesenswert
nicht 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!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.