Forum: Projekte & Code Textausgabe Siemens Display


von Marco S. (marco_s)


Lesenswert?

1
ISR(USART_RXC_vect)
2
{
3
  unsigned char nextChar;
4
5
  nextChar = UDR;   // Daten aus dem Puffer lesen
6
  if( uart_str_complete == 0 )    // wenn uart_string gerade in Verwendung, neues Zeichen verwerfen
7
  {
8
    // Daten werden erst in uart_string geschrieben,
9
    // wenn nicht String-Ende/max Zeichenlänge erreicht ist/string gerade verarbeitet wird
10
    if( nextChar != '\n' &&
11
        nextChar != '0x0D' &&
12
        uart_str_count < UART_MAXSTRLEN - 1 )
13
    {
14
      uart_string[uart_str_count] = nextChar;
15
      uart_str_count++;
16
    }
17
    else
18
    {
19
      uart_string[uart_str_count] = '\0';
20
      uart_str_count = 0;
21
      uart_str_complete = 1;
22
    }
23
  }
24
}
25
26
27
28
29
30
void msg_bearbeiten(const char *s) // Nachricht in Hexzeichen Umwandeln
31
{
32
  char Buffer[20];
33
  while (*s)
34
  {
35
    // so lange *s != '\0' also ungleich dem "String-Endezeichen(Terminator)"
36
    uart_puts(itoa( (*s), Buffer, 16 ));
37
    s++;
38
  }
39
  uart_putc(0x0D); // "Enter"
40
}
41
42
void text_ausgeben ()
43
{
44
#define MAX_TEXTAUSGABELAENGE 30
45
46
  char msg[MAX_TEXTAUSGABELAENGE] = "Hallo Welt";
47
  char s[5];
48
  int msglen = 0;
49
  int hexanzahl = 0;
50
  char Buffer_0[20];
51
52
  msglen = strlen(msg); //Wie viele Hex-Pakete werden (ohne ESC) gesendet ?
53
54
  hexanzahl = msglen + 14;
55
56
57
// Echo Ausschalten
58
  uart_puts("ATE0");
59
  uart_putc(0x0D);
60
61
// Handy "Vorbereiten"
62
  uart_puts("AT^SSTK=");
63
  uart_puts(itoa( hexanzahl, Buffer_0, 10 ));
64
  uart_puts(",0"); // 0 da single command
65
  uart_putc(0x0D);
66
67
// Intialisierungssequenz
68
  uart_puts("D0");
69
  hexanzahl = hexanzahl - 2;
70
  uart_puts(itoa( hexanzahl, Buffer_0, 16 ));
71
  uart_puts("8103012180820281028D");
72
73
// Ab hier Erstellen der Textnachricht
74
  uart_puts("04");
75
  uart_puts(itoa( msglen, Buffer_0, 16 ));   //Nacchtrichtenlänge in Hex senden
76
  msg_bearbeiten(msg);                       //Text Umwandeln und Senden
77
}

Ich habe Das Programm testenkönnen, da ich feststellen musste,
dass mein handy nicht Kompertiebel ist :-(

Der Code Basiert u.a. auf dem Code von Niels Keller der in Basic 
geschrieben ist.

LG

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.