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

Re: Senden via serielle Schnittstelle Kategorie: Programmierung (von krassos - 9.08.2005 17:34)
Als Antwort auf Re: Senden via serielle Schnittstelle von Sebastian - 9.08.2005 15:35
Ich nutze:
C-Control II Unit, CC2-ReglerBoard, OSOPT V3.0
> Also einfacher gehts, wenn man die gewünschten Zahlen einfach in eine
>  Stringvariable mit str.putint bzw str.putlong reinpackt und die
> dann via hwcom.print sendet.

Hallo zusammen,

wenn ich mir das Modul hwcom.c2 ansehe fällt mir mal eben so die Funktion
num ( long num ) ins Auge. Was die wohl so treibt?? ;))



>Aber kann man ja auch alles selbst machen.

ACK

>
> Die Ports ändern sich P1L.0...P1L2 und P1L.4...P1L.7 ändern sich übrigens nicht
>  willkürlich sondern auf genau die Art und Weise, die die Ansteuerung eines Displays benötigt.


>
>
> Schönen Tag noch.
> > Howdy @ all...
> >
> > also mein Problem ist wie folgt, ich will Zahlenwerte (Integer,Long) über die serielle Schnittstelle an
> > einen PC verschicken! Dazu habe ich ein kleines Modul geschrieben, welches Ziffernweise eine
> > Zahl auseinandernimmt und das dazugehörige ASCII equivalent in ein Byte-Array schreibt, welches dann
> > verschickt wird.
> >
> > Der Vollständigkeit halber mal das Modul:
> >
> > /*
> >     Wandelt eine integer Zahl in ein ByteArray um und sendet dieses an die
> >     serielle Schnittstelle.
> > */

> >
> > function sendNumber ( long zahl )
> > {
> >  byte toSend[255], counter;
> >  int tmp, i; i = 0; tmp = 0; counter = 0;
> >
> >  // jede 10er-Stelle in das dazugehörige ASCII-Zeichen wandeln, dann am Ende des Arrays speichern.
> >  while zahl > 0
> >  {
> >   tmp = zahl % 10;
> >   toSend[254-i] = tmp + 0x30;
> >   zahl = zahl / 10;
> >
> >   i = i + 1;
> >  }
> >  counter = i;
> >
> >  // Zahl an den Anfang des Arrays verschieben.
> >  for i = 0 ... <counter
> >  {
> >   toSend[counter-i] = toSend[254-i];
> >  }
> >
> >  hwcom.init();
> >  hwcom.setspeed(5); // 9600 BAUD
> >  
> >  wait hwcom.ready();
> >
> >  hwcom.send(toSend, counter+1);
> > }
> >

> >
> > Also wenn ich eine main() schreibe, wo nur das Modul benutzt wird, dann klappt alles hervorragend.
> > Ich kriege genau die Zahlen am Bildschirm, die ich versenden wollte. Aber wenn ich diese Funktion
> > nun in meinem eigendlichen Hauptprogramm benutzen will, kommen nur seltsame Zeichen heraus.

Du initialisierst die Schnittstelle vor jedem senden. Einmal genügt.
Greifst Du auch aus anderen Threads auf hwcom zu?

GruÃ? krassos

> >
> > Weiss vieleicht wer wo dran das liegen könnte? So langsam geht nämlich mein Latein zu Ende und meine
> > Abneigung gegen das C2 vergrössert sich. Hatte schon probleme gehabt, konstante Portzustände zu halten,
> > wenn man gleichzeitig das LCD-Display nutzen will!  Muss man ja auch erstmal drauf kommen, dass wenn
> > man das Display nutzt, die digitalen Ausgänge sich willkürlich verändern. *narv*
> >
> > Naja, wäre toll wenn mir da wer helfen könnt. Danke im voraus!
> >
> >
> >


    Antwort schreiben


Antworten:

Re: Senden via serielle Schnittstelle (von Lettort - 10.08.2005 11:19)
    Re: Senden via serielle Schnittstelle (von Sebastian - 10.08.2005 12:02)
        Re: Senden via serielle Schnittstelle (von Lettort - 10.08.2005 12:10)
            Re: Senden via serielle Schnittstelle (von Lettort - 10.08.2005 12:46)
                Re: Senden via serielle Schnittstelle (von André H. - 31.08.2005 21:15)