- LiFePO4 Speicher Test         
Seite 5 von 8 ErsteErste ... 34567 ... LetzteLetzte
Ergebnis 41 bis 50 von 72

Thema: RobotChallenge-Linienfolgeprogramm von "myIrAsuro"

  1. #41
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    Anzeige

    Powerstation Test
    ja, habe ich, werde ich versuchen einzubinden...
    danke
    gruß inka

  2. #42
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    also das mit der 2.7 asuro lib hat nicht geklappt, habe mich also "mit der rechten hand hinterm linken ohr gekratzt":

    Code:
    char z;
    z = 111;
    Init(); 
       SerWrite("\n\r  --- Line Sensor Test ---",28); 
       ... 
    SerWrite("\n\r  Phototransistorwerte links/rechts: ",39); 
    PrintInt(data[0]);
    PrintInt(z);
          //SerWrite("\n\r !",1);
    jetzt sind drei einser in der mitte. Eigetlich dachte ich ich kann unter char"z" den asci-code des - zeichens so ausgeben lassen, hat aber auch nicht funktioniert...
    gruß inka

  3. #43
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.064
    du kannst es mal mit einem "unsigned char" probieren... dann sollte evtl auch das direkt eingegebene ascii zeichen funktionieren. buchstaben müssen zur ausgabe immer unsigned sein.
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  4. #44
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.12.2006
    Ort
    Eberbach
    Beiträge
    199
    Hallo inka,
    Zitat Zitat von inka
    also das mit der 2.7 asuro lib hat nicht geklappt,...
    schade.

    Code:
    z = 111;
    ...
    PrintInt(z);
    ...
    Hier liegt der Grund für die drei 1er, Du hast PrintInt() verwendet ...

    Flashe doch mal flogendes Programm auf Deinen Asuro und poste den Output, es werden alle ASCII-Zeichen (ohne Steuerzeichen) ausgegeben:
    Code:
    #include <asuro.h>
    
    void _UartPutc_ (unsigned char zeichen)
    {
      UCSRB  = 0x08;                        // enable transmitter
      UCSRA |= 0x40;                        // clear transmitter flag
      while (!(UCSRA & 0x20))               // wait for empty transmit buffer
        ;
      UDR = zeichen;
      while (!(UCSRA & 0x40))               // Wait for transmit complete flag (TXC)
        ;
    }
    
    int main(void)
    {
      unsigned char u;
    
      Init();
    
      for(u=0x20; u<0x80; ++u)
      {
        _UartPutc_(u);
        if ((u&0x0F)==0x0F)
        {
          _UartPutc_('\r');
          _UartPutc_('\n');
        }
      }
    
      while (1);
    
      return 0;
    }
    Die Verwendung von _UartPutc_() geschieht hier nur, um unabhängig von irgendwelchen Library-Versionen zu sein ... (ist die umbenannte Version aus der AsuroLib v270rc3)

    So sieht der Output meines Asuro aus:
    Code:
     !"#$%&'()*+,-./
    0123456789:;<=>?
    @ABCDEFGHIJKLMNO
    PQRSTUVWXYZ[\]^_
    `abcdefghijklmno
    pqrstuvwxyz{|}~
    Gruß, Hermann.
    myIrAsuro.Bild hier  

  5. #45
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    hi hermann,

    ich habe ein paar zeilen aus deinem programm - gleich für das "-" zeichen angepasst - in meines reinkopiert, ich gebe zu nicht alles verstanden zu haben von dem was da in deinen zeilen stand (die komentare halfen aber immerhin um die funktion der zeile zu erahnen)
    Code:
    #include "asuro.h" // Prüfung der Phototransitoren 
    /* ------------ Line Sensor Test ---------------- */ 
    /* Left Sensor -> Left Break LED ON when Light on 
       Left Phototransistor bright enough             */ 
    /* Right Sensor -> Right Break LED ON when Light on 
       Right Phototransistor bright enough            */
    
    void _UartPutc_ (unsigned char zeichen) 
    { 
      UCSRB  = 0x08;                        // enable transmitter 
      UCSRA |= 0x40;                        // clear transmitter flag 
      while (!(UCSRA & 0x20))               // wait for empty transmit buffer 
        ; 
      UDR = zeichen; 
      while (!(UCSRA & 0x40))               // Wait for transmit complete flag (TXC) 
        ; 
    } 
    
    int main(void) 
    { 
       unsigned char tmp[2] = {OFF,OFF}; 
       unsigned int data[2]; 
       unsigned char z;
       z = 0x2D;
       Init(); 
       SerWrite("\n\r  --- Line Sensor Test ---",28); 
       StatusLED(OFF); 
       FrontLED(ON); 
       do 
          } 
          */ 
          LineData(data); 
          if (data[0] > 400) 
             tmp[0] = ON; 
          else 
             tmp[0] = OFF; 
          if (data[1] > 400) 
             tmp[1] = ON; 
          else 
             tmp[1] = OFF; 
          BackLED(tmp[0],tmp[1]); 
          SerWrite("\n\r  Phototransistorwerte--",35); 
          PrintInt(data[0]);
     _UartPutc_(0x2D); 
    	  //PrintInt(z); 
          //SerWrite("\n\r !",1);
    	  //SerPrint(" ");
          PrintInt(data[1]); 
          // SerWrite("\f",1);   //Seitenvorschub EDIT 2: bringt Fehler bei der Ausgabe 
       } 
       while(1); 
       return 0; 
    } 
    /* END Line Sensor Test ------------------------- */
    das "-" zeichen wird jetzt ausgegeben, die zweite hälfte des satzes

    "\n\r Phototransistorwerte : links/rechts",39"

    wurde durch irgendwelche weisen rechtecke überschrieben, deshalb habe ich es abgekürzt...
    fängt die funktion

    _UartPutc_(0x2D);

    nicht dort an auszugeben wo die vorhergehende zeile aufgehört hat?
    gruß inka

  6. #46
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.12.2006
    Ort
    Eberbach
    Beiträge
    199
    Hi inka,
    Zitat Zitat von inka
    ...
    das "-" zeichen wird jetzt ausgegeben, die zweite hälfte des satzes

    "\n\r Phototransistorwerte : links/rechts",39"

    ...
    da hat sich der Fehlerteufel beim ersten do eingeschlichen!

    Dann habe ich noch \n\r geändert in \r\n, und dieses kompilierbare Programm funktioniert:
    Code:
    #include "asuro.h" // Prüfung der Phototransitoren 
    /* ------------ Line Sensor Test ---------------- */ 
    /* Left Sensor -> Left Break LED ON when Light on 
       Left Phototransistor bright enough             */ 
    /* Right Sensor -> Right Break LED ON when Light on 
       Right Phototransistor bright enough            */ 
    
    void _UartPutc_ (unsigned char zeichen) 
    { 
      UCSRB  = 0x08;                        // enable transmitter 
      UCSRA |= 0x40;                        // clear transmitter flag 
      while (!(UCSRA & 0x20))               // wait for empty transmit buffer 
        ; 
      UDR = zeichen; 
      while (!(UCSRA & 0x40))               // Wait for transmit complete flag (TXC) 
        ; 
    } 
    
    int main(void) 
    { 
       unsigned char tmp[2] = {OFF,OFF}; 
       unsigned int data[2]; 
       unsigned char z; 
       z = 0x2D; 
       Init(); 
       SerWrite("\r\n  --- Line Sensor Test ---",28); 
       StatusLED(OFF); 
       FrontLED(ON); 
       do 
       {
          LineData(data); 
          if (data[0] > 400) 
             tmp[0] = ON; 
          else 
             tmp[0] = OFF; 
          if (data[1] > 400) 
             tmp[1] = ON; 
          else 
             tmp[1] = OFF; 
          BackLED(tmp[0],tmp[1]); 
          SerWrite("\r\n  Phototransistorwerte--",35); 
          PrintInt(data[0]); 
     _UartPutc_(0x2D); 
         //PrintInt(z); 
          //SerWrite("\n\r !",1); 
         //SerPrint(" "); 
          PrintInt(data[1]); 
          // SerWrite("\f",1);   //Seitenvorschub EDIT 2: bringt Fehler bei der Ausgabe 
       } 
       while(1); 
       return 0; 
    } 
    /* END Line Sensor Test ------------------------- */
    Und hier Output von myIrAsuro:
    Code:
      --- Line Sensor Test ---
      Phototransistorwerte--         982-976
      Phototransistorwerte--         424-783
      Phototransistorwerte--         264-350
      Phototransistorwerte--         236-217
      Phototransistorwerte--         236-203
      Phototransistorwerte--         234-198
      Phototransistorwerte--         235-199
      Phototransistorwerte--         235-199
      Phototransistorwerte--         234-197
      Phototransistorwerte--         229-190
      Phototransistorwerte--         233-194
      Phototransistorwerte--         233-197
      Phototransistorwerte--         233-202
      Phototransistorwerte--         232-225
      Phototransistorwerte--         228-205
      Phototransistorwerte--         229-182
      Phototransistorwerte--         231-200
      Phototransistorwerte--         243-256
      Phototransistorwerte--         297-618
      Phototransistorwerte--         981-975
    Gruß, Hermann.
    myIrAsuro.Bild hier  

  7. #47
    Benutzer Stammmitglied
    Registriert seit
    28.04.2006
    Ort
    Marbach am Neckar
    Alter
    34
    Beiträge
    56
    Hallo Hermann
    ich habe dein programm ausprobiert jedoch tritt beim compilieren immer dieser error auf:
    > "C:\Asuro_src\Progs\Drei\Test-all.bat"

    C:\Asuro_src\Progs\Drei>make all
    set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=Linie.lst Linie.c \
    | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > Linie.d; \
    [ -s Linie.d ] || rm -f Linie.d
    -------- begin --------
    avr-gcc --version
    avr-gcc (GCC) 4.1.1 (WinAVR 20070122)
    Copyright (C) 2006 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

    avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=Linie.lst Linie.c -o Linie.o
    In file included from ./asuro.h:34,
    from Linie.c:25:
    c:/winavr/bin/../avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete. Use <avr/interrupt.h>."
    Linie.c: In function 'main':
    Linie.c:58: error: 'LEFT' undeclared (first use in this function)
    Linie.c:58: error: (Each undeclared identifier is reported only once
    Linie.c:58: error: for each function it appears in.)
    Linie.c:58: error: 'RIGHT' undeclared (first use in this function)
    Linie.c: In function 'RaceStart':
    Linie.c:114: warning: implicit declaration of function 'Msleep'
    make: *** [Linie.o] Error 1

    > Process Exit Code: 2

    was mache ich denn falsch???
    mfg
    Christian

  8. #48
    Benutzer Stammmitglied
    Registriert seit
    01.02.2007
    Ort
    Ashausen
    Alter
    66
    Beiträge
    64
    Hi Chris,

    Du brauchst die Lib2.7.

    _HP_

  9. #49
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180

    sonderzeichenmüll

    hi hermann,
    das programm lässt sich kompilieren und auch flashen aber...

    die ausgabe im kombiflash wie auch im hypertherminal sieht so aus:
    Code:
    Phototransi‡‹œ˜‹‡`à987-988
      Phototransi‡‹œ˜‹‡`à987-988
      Phototransi‡‹œ˜‹‡`à987-988
      Phototransi‡‹œ˜‹‡`à987-988
      Phototransi‡‹œ˜‹‡`à987-988
      Phototransi‡‹œ˜‹‡`à987-988
      Phototransi‡‹œ˜‹‡`à987-988
      Phototransi‡‹œ˜‹‡`à987-988
      Phototransi‡‹œ˜‹‡`à987-988
      Phototransi‡‹œ˜‹‡`à987-988
      Phototransi‡‹œ˜‹‡`à987-988
    ist schon komisch...
    gruß inka

  10. #50
    Benutzer Stammmitglied
    Registriert seit
    28.04.2006
    Ort
    Marbach am Neckar
    Alter
    34
    Beiträge
    56
    ah ok thx
    muss ich dann einfach die alte lib durch die neue ersetzen oder noch was anderes machen???
    danke für die schnelle Hilfe
    Christian

Seite 5 von 8 ErsteErste ... 34567 ... LetzteLetzte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress