Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: empfangen über die serielle schnittstelle Kategorie: Programmierung (von Klaus-Dieter Reiners - 14.03.2003 11:50)
Als Antwort auf Re: empfangen über die serielle schnittstelle von bernd warner - 13.03.2003 14:14

Hallo,

es gibt ein schönes Testprogramm. Es befindet sich im CC2-Verzeichnis unter Projectssamplesmore1
und heiÃ?t "com.c2".

Es sendet Zeichen an Hyperterminal und gibt die Zeichen auf dem cc2-Display an, die in Hyperterminal einge-
geben wurden, also genau das, was gewünscht ist.

Für den Fall, dass das Programm nicht zu Hand ist, hier das Listing.

/********************************************************************
 
Anwendungsbeispiel com.c2

- Empfang von Daten ueber die serielle Schnittstelle HWCOM
- Anzeige der empfangenen Daten auf dem LC-Display
- Senden der empfangenen Daten ueber serielle Schnittstelle HWCOM (Echo)
- Verwendung von Zeichenketten
- Verwendung der wait - Funktion
- Verwendung der loop - Funktion


! CC2-Board mit serieller PC-Schnittstelle verbinden

! 9600 Baud, 8 Datenbits, 1 Stoppbit, keine Paritaet
! Senden und Empfangen auf serieller PC-Schnittstelle ueber Terminalprogramm (z.B. Hyperterminal)

! Verkabelung:
CC2-Board PC
(RTS  <-> CTS)
(CTS <-> RTS)
RxD <-> TxD
TxD <-> RxD
GND <-> GND

! CTS-RTS Handshake
! oder Softwarehandshake (kein Protokoll) ohne RTS/CTS-Leitungen, mit JP6 (CTS) gebrueckt



Verwendete C2-Module:

constant.c2
lcd.c2
hwcom.c2
str.c2
system.c2
vmcode.c2


Verwendete Funktionen:

thread
wait

hwcom.get
hwcom.put
hwcom.rdx
hwcom.send
hwcom.setspeed

lcd.clear
lcd.print
 
str.length
str.putint

********************************************************************/






/*******************************************************************/
// das ist der einzige Thread
// er wird zyklisch abgearbeitet

thread main

{

 // lokale Zeichenkette fuer LCD-Ausgabe
 string s;

 // lokale Zeichenkette fuer HWCOM-Ausgabe
 string t;

 // lokale Variable vom Typ Integer
 int i;




 // Loeschen des Display
 lcd.clear();

 // String s mit Zeichenkette laden
 s= "Warten";

 // Zeichenkette auf LC-Display ausgeben
 lcd.print(s, str.length(s));
 



 // Baudrate einstellen, Standardeinstellung 9600 Baud
 hwcom.setspeed(5);

 // String t mit Zeichenkette laden, Text "Hallo COM" und neue Zeile (n)
 t= "Hallo COMn";

 // Zeichenkette ueber HWCOM ausgeben
 // Aufruf der Funktion hwcom.send mit den Parametern Zeichenkette und Anzahl der zu sendenden Zeichen
 // (das PC-Terminalprogramm zeigt die empfangene Zeichenkette "Hallo COM" an)
 hwcom.send(t, str.length(t));




 // Schleife
 loop
 {

  // warten bis Zeichen auf HWCOM empfangen wurde
  // (Zeichen ist von PC-Terminalprogramm zu senden)
  wait hwcom.rxd();

  // LCD-Anzeige loeschen
  lcd.clear();

  // Zeichenkette leeren
  s = "";

  // Variable i mit Wert des an HWCOM empfangenen Zeichens laden
  i= hwcom.get();

  // empfangenen Wert in Zeichenkette umwandeln und an String s anhaengen
  str.putint(s, i);

  // Ausgabe des empfangenen Zeichens auf das LC-Display
  lcd.print(s, str.length(s));


  // warten bis LCD-Ausgabe beendet ist
  wait lcd.ready();

  // Ausgabe des empfangenen Zeichens auf HWCOM (Echo)
  // (das PC-Terminalprogramm zeigt das Echo des gesendeten Zeichens an)
  hwcom.put(i);
 
 }

}


*****************************************************************************************

Bei mir hat das auf Anhieb geklappt. Ich hoffe, bei Dir auch.

GruÃ?

Klaus-Dieter


    Antwort schreiben


Antworten: