mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MSP430F2013 SPI - Endlosschleife ?


Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich konnte mit einem ähnlichen Programm problemslos ein Slave steuern.

Nun will ich das Nokia Display ansteuern. Das Programm hängt aber in 
einer Endloschleife ung sendet nichts. Ich weiß nicht warum.

Hoffentlich kann mir jemand helfen.

#include <msp430x20x3.h>

void send_spi(unsigned int, unsigned int);

void init_display();

void wait(unsigned int);

void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                   // Stop watchdog timer
  P1DIR = 25;                              
  P1OUT &= 0x08;                                
  USICTL0 |= USISWRST;                           // Config SPI
  USICTL0 |= USIMST + USIPE6 + USIPE5 + USIOE;  // Master mode
  USICTL1 |= USICKPH;                         
  USICKCTL = USIDIV_1 + USISSEL_2;          // 1/2 MCLK
  USICTL0 &= ~USISWRST;                     // USI released for operation
  
  init_display();
 
  P1OUT |= 0x01;
}

void wait(unsigned int time)
{
  volatile unsigned int i;
  for(i=0;i<time;i++);
}


void send_spi(unsigned int high, unsigned int low)
{
  
  USISRL=low;
  USISRH=high;
  
  P1OUT &= ~0x10;     // CS low

  USICNT=73;  //16-Bit Mode, Counter=9
 
  while(!(USIIFG & USICTL1)); //HIER BLEIBT ES HÄNGEN
  
  P1OUT |= 0x10;     // CS high
}
      
void init_display()
{
  while(1)
  {
  P1OUT &= ~0x08;           // Reset = low
  wait(0xFFFF);
  P1OUT |= 0x08;            // Reset = high
  
  wait(0xF0);
  send_spi(0x08,0x10);          // Leave Sleep Mode, turn on Booster 0x11
  }
}


Wieso sendet er nichts ?

Ich habe das Programm nahezu 1:1 von einem anderen funktionierenden 
Programm übernommen ? Es bleibt in der while - Schleife hängen und macht 
nichts mehr. Das USIIFG - Bit wird nie gelöscht !

Danke !

Autor: Felix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Muss es auch, da du in init_display() while(1) geschrieben hast.

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

dummer Fehler.

Geht jetzt wieder.

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.