test.c


1
#include <msp430x14x.h>
2
#include <signal.h>
3
4
void SendUSART0c(char);  
5
void SendUSART0(char*);  
6
void InitUSART(void);
7
8
static char string1[8];
9
10
char i;
11
int ch;
12
13
int main(void)
14
{
15
  int ch;
16
  P6DIR = 0xff;
17
  P6OUT = 0x01 ;
18
  
19
  InitUSART();
20
  for (ch=0;ch<10000;ch++){ch++;}
21
  
22
  
23
24
  for (;;){
25
    P6OUT ^= 0x01; // LED togglen
26
    //for (ch=0;ch<20000;ch++){ch++;}
27
    
28
    SendUSART0("Hallo_Welt!\n\r");
29
    //SendUSART0c('P');
30
   }
31
  
32
}
33
34
//___________________________________________________________________________________________________________
35
void InitUSART()
36
{
37
  WDTCTL = WDTPW + WDTHOLD;             // watchdog aus
38
  P3SEL = 0x30;                         // P3.4 und P3.5 als USART0 TXD/RXD
39
40
  ME1 |= UTXE0 + URXE0;                 // TX- und RX-modul erst mal anschalten
41
  UCTL0 |= CHAR;                        // 8 data bits, 1 stop bit, no parity (8N1)
42
  UTCTL0 |= SSEL0;                      // ACLK als UCLK festlegen
43
  UBR00 = 0x03;                         // 9600 baud aus 32.768 kHz erzeugen
44
  UBR10 = 0x00;                         // siehe application note tabelle 2, seite 10
45
  UMCTL0 = 0x4A;                        // korrektur der division
46
  UCTL0 &= ~SWRST;                      // USART freigeben
47
  IE1 |= UTXIE0;//+ UTXIE0;               // TX- und RX-interrupts anschalten
48
  IFG1 &= ~URXIFG0;                     // initales interrupt-flag loeschen
49
    _EINT();
50
}
51
 
52
53
//___________________________________________________________________________________________________________
54
void SendUSART0c(char c)             // ein einzelnes zeichen über die serielle schnittstelle (USART0) senden
55
                                     // FJG: Obacht: x12xx : IFG1 => IFG2 !
56
{
57
  TXBUF0 = c;
58
}
59
60
//___________________________________________________________________________________________________________
61
void SendUSART0(char* str)             // einen string über die serielle schnittstelle (USART0) senden
62
{
63
  while (*str != 0)
64
  {
65
    for (ch=0;ch<9000;ch++){ch++;}
66
    //while (!(IFG1 & UTXIFG0));         // warten, bis USART0 TX-buffer sendebereit
67
    TXBUF0 = *str++;
68
  }
69
}
70
71
72
//___________________________________________________________________________________________________________
73
// ISRs
74
//#pragma vector=UART0TX_VECTOR
75
interrupt(UART0TX_VECTOR) 
76
usart0_tx (void)
77
{
78
  /* int ch;
79
  if (i < sizeof string1){
80
    //TXBUF0 = string1[i++];
81
        for (ch=0;ch<20000;ch++){ch++;}
82
  }*/
83
}