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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren