MSP430F2013 SPI - Endlosschleife ?

Gast #850262
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.

1
#include <msp430x20x3.h>
2

3
void send_spi(unsigned int, unsigned int);
4

5
void init_display();
6

7
void wait(unsigned int);
8

9
void main(void)
10
{
11
  WDTCTL = WDTPW + WDTHOLD;                   // Stop watchdog timer
12
  P1DIR = 25;                              
13
  P1OUT &= 0x08;                                
14
  USICTL0 |= USISWRST;                           // Config SPI
15
  USICTL0 |= USIMST + USIPE6 + USIPE5 + USIOE;  // Master mode
16
  USICTL1 |= USICKPH;                         
17
  USICKCTL = USIDIV_1 + USISSEL_2;          // 1/2 MCLK
18
  USICTL0 &= ~USISWRST;                     // USI released for operation
19
  
20
  init_display();
21
 
22
  P1OUT |= 0x01;
23
}
24

25
void wait(unsigned int time)
26
{
27
  volatile unsigned int i;
28
  for(i=0;i<time;i++);
29
}
30

31

32
void send_spi(unsigned int high, unsigned int low)
33
{
34
  
35
  USISRL=low;
36
  USISRH=high;
37
  
38
  P1OUT &= ~0x10;     // CS low
39

40
  USICNT=73;  //16-Bit Mode, Counter=9
41
 
42
  while(!(USIIFG & USICTL1)); //HIER BLEIBT ES HÄNGEN
43
  
44
  P1OUT |= 0x10;     // CS high
45
}
46
      
47
void init_display()
48
{
49
  while(1)
50
  {
51
  P1OUT &= ~0x08;           // Reset = low
52
  wait(0xFFFF);
53
  P1OUT |= 0x08;            // Reset = high
54
  
55
  wait(0xF0);
56
  send_spi(0x08,0x10);          // Leave Sleep Mode, turn on Booster 0x11
57
  }
58
}


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 !

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.