www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik MSP430F2013 SPI - Endlosschleife ?

Autor: Klaus (Gast)
Datum: 23.04.2008 12:21

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: 23.04.2008 13:12

Muss es auch, da du in init_display() while(1) geschrieben hast.
Autor: Klaus (Gast)
Datum: 23.04.2008 13:21

Hallo,

dummer Fehler.

Geht jetzt wieder.

Antwort schreiben

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

Wichtige Regeln - erst lesen, dann posten!

  • Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
  • Aussagekräftigen Betreff wählen
  • Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
  • JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
  • Schaltpläne, Screenshots usw. als PNG oder GIF anhängen

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel






webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net