- Akku Tests und Balkonkraftwerk Speicher         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 17 von 17

Thema: LineData im Hyperterminal ausgeben

  1. #11
    Neuer Benutzer Öfters hier
    Registriert seit
    02.12.2006
    Beiträge
    7

    atmega8 adc Wert auf Seriell formatiert ausgeben

    Anzeige

    Powerstation Test
    Besten Dank für den Anschub.
    Damit andere auch was davon haben, hier das fertige Programm.

    /* Das Programm liest die Linien-Fototransistoren des Asuro aus und
    und gibt die Werte über die serielle Schnittstelle an z.B. Hyperterminal aus.
    Es werden ca. 2 Wertepaare pro Sekunde ausgegeben (bei 2400bit/s) .

    Anforderungen: WinAVR aStudio4b460.exe und asuro_v261.zip (die beigefuegten asuro.c und asuro.h musst du in das Verzeichnis zum Quellcode kopieren.
    Viel Spass
    */

    #include "asuro.h"
    #include "stdlib.h"

    int main(void)
    {
    Init();

    while(1)
    {
    unsigned int data[2]; //Initialisiert zwei Int-werte hintereinander

    LineData(data); //Übergibt der Funktion den "data"-array, die schreibt die beiden Werte rein
    //data[0]=data[0]/10+100; // rechnen klappt auch

    SerWrite("linker FotoSensor = ",21); //Text direkt senden
    PrintInt(data[0]); //Zelleninhalt ausgeben
    SerWrite("\r\n",1); //neue Zeile

    SerWrite("rechter FotoSensor = ",21); //Text direkt senden
    PrintInt(data[1]); //Zelleninhalt ausgeben
    SerWrite("\r\n",1); //neue Zeile

    SerWrite("\r\n",1); //neue Zeile
    }
    return 0;
    }

  2. #12
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    sehr gut. kleinere fehler:

    was ist das?
    //data[0]=data[0]/10+100; // rechnen klappt auch
    da sind kommentarstriche vor. vergessen, wegzumachen?

    das hier
    unsigned int data[2]; //Initialisiert zwei Int-werte hintereinander
    sollte nicht in der while-schleife stehen.

    und das hier
    #include "stdlib.h"
    brauchst du nicht.

    hier
    SerWrite("\r\n",1); //neue Zeile
    müssen 2 bytes übertragen werden. \n ist ein byte und \r ist eon byte. vielleicht klappts trotzdem, in hyperterminal aber würde wahrscheinlich eine recht seltsame, treppenförmige formatierung entstehen.

    du solltest vielleicht programmcode mit den "code" button posten.
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  3. #13
    Neuer Benutzer Öfters hier
    Registriert seit
    24.11.2006
    Beiträge
    25
    Zitat Zitat von damaltor
    das hier
    unsigned int data[2]; //Initialisiert zwei Int-werte hintereinander
    sollte nicht in der while-schleife stehen.
    Mein Fehler, war zu faul ein komplettes Programm zu tippen und habs dann eben falsch vorgemacht und einfach mit in die Schleife gepackt.



    #include "sdtlib.h"
    braucht er deswegen nicht weil im Verzeichnis des Quellcodes keine derartige Datei existiert und weil ja diese Header-Datei ja schon in asuro.h deklariert wurde, nur um ne Erklärung zum Fehler dazuzugeben.

  4. #14
    Neuer Benutzer Öfters hier
    Registriert seit
    02.12.2006
    Beiträge
    7

    atmega8 adc to seriell Hyperterminal

    Hallo,
    hast ja recht ; verbessert.
    SerWrite("\r",1); spuckte vorher auch nur ein Zeichen aus.
    Sieht jetzt immer noch gleich aus (siehe unten).
    Rechnen mit Zellen war nur als Beispiel gedacht, brauche ich auch noch später.
    Danke Bernd


    /* Das Programm liest die Linien-Fototransistoren des Asuro aus und
    und gibt die Werte über die serielle Schnittstelle an z.B. Hyperterminal aus.
    Es werden ca. 2 Wertepaare pro Sekunde ausgegeben (bei 2400bit/s) .
    Anforderungen: WinAVR aStudio4b460.exe und asuro_v261.zip (die beigefuegten asuro.c und asuro.h musst du in das Verzeichnis zum Quellcode kopieren.

    Output in Hyperterminal innerhalb ca. einer Sekunde:
    linker FotoSensor = 101
    rechter FotoSensor = 102

    linker FotoSensor = 1
    rechter FotoSensor = 1

    linker FotoSensor = 0
    rechter FotoSensor = 0

    Viel Spass Bernd


    Code:
    */
    #include "asuro.h"
    
    int main(void)
    {
     unsigned int data[2];  //Initialisiert zwei Int-werte hintereinander
     
    Init();
     
    while(1)
     {
     
     LineData(data);  //uebergibt der Funktion den "data"-array, die schreibt die beiden Werte rein             
      //data[0]=data[0]/10+100;				// wer moechte, rechnen klappt auch prima!!!
      
      SerWrite("linker  FotoSensor = ",21);  //Text direkt senden
      PrintInt(data[0]); 					  //Zelleninhalt ausgeben
      SerWrite("\r",1);                    //neue Zeile
      
      SerWrite("rechter FotoSensor = ",21);  //Text direkt senden
      PrintInt(data[1]);                     //Zelleninhalt ausgeben
      SerWrite("\r",1);                    //neue Zeile 
     
     SerWrite("\r",1);                     //neue Zeile
     } 
    return 0;
    }

  5. #15
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    das hyperterminal das so akzeptiert wundert mich... bei mir geht es nicht auf win2000, scheint aber bei winxp zu funktionieren...

    folgendes sollte da stehen, damit es wirklich überall geht:

    SerWrite("\n\r",2);

    \n --> springt in die nächste zeile
    \r --> springt zurück zum beginn der zeile

    der text "a\nb\nc\nd\ne", also immer abwechselnd ein buchstabe und ein \n, sieht unter win2k so aus:
    Code:
    a
     b
      c
       d
        e
    der text "a\rb\rc\rd\re" sieht dagegen so aus:
    Code:
    e
    weil der corsur immer wieder an den beginn der zeile springt und den vorigen buchstaben überschreibt.

    deshalb solltest du unbedingt immer die bwiden bytes \n und \r übertragen.
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  6. #16
    Neuer Benutzer Öfters hier
    Registriert seit
    02.12.2006
    Beiträge
    7
    Hallo,
    \r\n so hatte ich mir das zu Anfang auch gedacht! XP-Hyperterm. steht bei mir auf automatisch Term.-Erkennung?!

    Als nächstes möchte ich ein LCD anschließen. Am besten Standard: HD 44780.
    Möglichst einfach und Asuro ohne Umbau!
    "Suche" sagt viele Probleme vorraus.
    Naja, ich will es trotzdem!!!
    Butterfly ist auch nicht schlecht, aber teuer und nur als Display!?

    Gruß Bernd

  7. #17
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    also ganz ohne umbau wirst du nicht hinkriegen... maximal auf einer erweiterungsplatine, die einen eigenen prozessor besitzt und ausschliesslich per infrarot mit dem asuro kommuniziert... aber ob da der nutzen für den aufwand entschädigt...

    viel glück! das forum bietet viele infos dazu...
    Read... or die.
    ff.mud.de:7600
    Bild hier  

Seite 2 von 2 ErsteErste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress