- 3D-Druck Einstieg und Tipps         
Seite 3 von 5 ErsteErste 12345 LetzteLetzte
Ergebnis 21 bis 30 von 42

Thema: Asuro folgt der Linie

  1. #21
    Neuer Benutzer Öfters hier
    Registriert seit
    02.11.2006
    Ort
    Esslingen
    Alter
    33
    Beiträge
    17
    Anzeige

    E-Bike
    jetzt kommt der fehler

    -------- begin --------
    avr-gcc --version
    avr-gcc (GCC) 3.3.1
    Copyright (C) 2003 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=test.lst test.c -o test.o
    test.c: In function `main':
    test.c:12: error: parse error before '{' token
    test.c:6: warning: unused variable `lineData'
    test.c: At top level:
    test.c:19: error: parse error before '}' token
    make: *** [test.o] Error 1

    > Process Exit Code: 2


    Code:
    #include "asuro.h"
    
    #define SPEED  0x8F
    
    int speedLeft,speedRight;
    unsigned int lineData[2];
    int ADOffset;
    
    void LineLeft (void)
    {
       speedLeft  += 1;
       if (speedLeft > 0xFE) speedLeft = 0xFF;
    }
    
    void LineRight (void)
    {
       speedRight  += 1;
       if (speedRight > 0xFE) speedRight = 0xFF;
    }
    
    int main(void)
    {
    int i;
    unsigned char j;
    
       Init();
    
       FrontLED(ON);
       (;;while(1) (j = 0; j < 0xFF; j++) {
       LineData(lineData);}
       LineData(lineData);
       ADOffset = lineData[0] - lineData[1];
       speedLeft = speedRight = SPEED;
       (;;while(1) {
          LineData(lineData);
          i = (lineData[0] - lineData[1]) - ADOffset;
          if ( i > 4) {
             StatusLED(GREEN);
             LineLeft();
          }
          else if ( i < -4) {
             StatusLED(RED);
             LineRight();
          }
          else {
             StatusLED(OFF);
             speedLeft = speedRight = SPEED;
          }
          MotorSpeed(speedLeft,speedRight);
       }
       return(0);

  2. #22
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    01.11.2006
    Beiträge
    433
    kompilier mal den code hier:
    Code:
    #include "asuro.h"
    
    #define SPEED  0x8F
    
    int speedLeft,speedRight;
    unsigned int lineData[2];
    int ADOffset;
    
    void LineLeft (void)
    {
    	speedLeft  += 1;
    	if (speedLeft > 0xFE) speedLeft = 0xFF;
    }
    
    void LineRight (void)
    {
    	speedRight  += 1;
    	if (speedRight > 0xFE) speedRight = 0xFF;
    }
    
    int main(void)
    {
    	int i;
    	unsigned char j;
    
    	Init();
    
    	FrontLED(ON);
    	while(1) (j = 0; j < 0xFF; j++) {
    		LineData(lineData);}
    		LineData(lineData);
    		ADOffset = lineData[0] - lineData[1];
    		speedLeft = speedRight = SPEED;
    		(;;while(1) {
    			LineData(lineData);
    			i = (lineData[0] - lineData[1]) - ADOffset;
    			if ( i > 4) {
    				StatusLED(GREEN);
    				LineLeft();
    			}
    			else if ( i < -4) {
    				StatusLED(RED);
    				LineRight();
    			}
    			else {
    				StatusLED(OFF);
    				speedLeft = speedRight = SPEED;
    			}
    			MotorSpeed(speedLeft,speedRight);
    		}
    		return 0;
    }

  3. #23
    Neuer Benutzer Öfters hier
    Registriert seit
    07.09.2006
    Ort
    Hameln
    Beiträge
    15
    mal so ne kleine frage zum linienverfolger......
    wofür benutzt ihr folgenden code und was bedeutet er?
    hier der code:
    for (j = 0; j < 0xFF; j++) LineData(lineData);
    was haben die hexadezizahlen zu bedeuten? thx im voraus!

    MfG The-BooN-

  4. #24
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    01.11.2006
    Beiträge
    433
    statt 0xFF kann man auch einfach 255 schreiben.
    manche leute machen sich das leben halt künstlich schwer

  5. #25
    Neuer Benutzer Öfters hier
    Registriert seit
    02.11.2006
    Ort
    Esslingen
    Alter
    33
    Beiträge
    17
    Danke für die Antwort
    Aber jetzt kommt ein Ar*** voll fehler:

    test.c -o test.o
    test.c: In function `main':
    test.c:30: error: parse error before ';' token
    test.c:24: warning: unused variable `i'
    test.c: At top level:
    test.c:32: warning: type defaults to `int' in declaration of `LineData'
    test.c:32: warning: parameter names (without types) in function declaration
    test.c:32: error: conflicting types for `LineData'
    asuro.h:79: error: previous declaration of `LineData'
    test.c:32: warning: data definition has no type or storage class
    test.c:33: warning: type defaults to `int' in declaration of `ADOffset'
    test.c:33: error: initializer element is not constant
    test.c:33: warning: data definition has no type or storage class
    test.c:34: warning: type defaults to `int' in declaration of `speedLeft'
    test.c:34: error: initializer element is not constant
    test.c:34: warning: data definition has no type or storage class
    test.c:35: error: parse error before ';' token
    test.c:37: warning: type defaults to `int' in declaration of `i'
    test.c:37: error: initializer element is not constant
    test.c:37: warning: data definition has no type or storage class
    test.c:38: error: parse error before "if"
    test.c:40: warning: type defaults to `int' in declaration of `LineLeft'
    test.c:40: warning: function declaration isn't a prototype
    test.c:40: error: conflicting types for `LineLeft'
    test.c:11: error: previous declaration of `LineLeft'
    test.c:40: warning: data definition has no type or storage class
    test.c:41: error: parse error before '}' token
    test.c:44: warning: type defaults to `int' in declaration of `LineRight'
    test.c:44: warning: function declaration isn't a prototype
    test.c:44: error: conflicting types for `LineRight'
    test.c:17: error: previous declaration of `LineRight'
    test.c:44: warning: data definition has no type or storage class
    test.c:45: error: parse error before '}' token
    test.c:48: warning: type defaults to `int' in declaration of `speedLeft'
    test.c:48: error: redefinition of `speedLeft'
    test.c:34: error: `speedLeft' previously defined here
    test.c:48: error: initializer element is not constant
    test.c:48: warning: data definition has no type or storage class
    test.c:49: error: parse error before '}' token
    test.c:50: warning: type defaults to `int' in declaration of `MotorSpeed'
    test.c:50: warning: parameter names (without types) in function declaration
    test.c:50: error: conflicting types for `MotorSpeed'
    asuro.h:71: error: previous declaration of `MotorSpeed'
    test.c:50: warning: data definition has no type or storage class
    test.c:51: error: parse error before '}' token
    test.c:53:2: warning: no newline at end of file
    make: *** [test.o] Error 1

    > Process Exit Code: 2

  6. #26
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    01.11.2006
    Beiträge
    433
    tja äh, manchmal zieht ein kleiner fehler einen gnazen rattenschnanz hinterher ich schu mal woran das liegt

  7. #27
    Neuer Benutzer Öfters hier
    Registriert seit
    02.11.2006
    Ort
    Esslingen
    Alter
    33
    Beiträge
    17
    Ok Danke LOL
    MfG MarkusH91

  8. #28
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    01.11.2006
    Beiträge
    433
    der code hier müsste eigentlcih funktioniern (zumindest gibts keine fehlermeldungen)
    Code:
    #include "asuro.h"
    
    #define SPEED  0x8F
    
    int speedLeft,speedRight;
    unsigned int lineData[2];
    int ADOffset;
    
    void LineLeft (void)
    {
       speedLeft  += 1;
       if (speedLeft > 0xFE) speedLeft = 0xFF;
    }
    
    void LineRight (void)
    {
       speedRight  += 1;
       if (speedRight > 0xFE) speedRight = 0xFF;
    }
    
    int main(void)
    {
    int i;
    unsigned char j;
    
       Init();
    
       FrontLED(ON);
       for (j = 0; j < 0xFF; j++) {
       LineData(lineData);}
       LineData(lineData);
       ADOffset = lineData[0] - lineData[1];
       speedLeft = speedRight = SPEED;
       while (1) {
          LineData(lineData);
          i = (lineData[0] - lineData[1]) - ADOffset;
          if ( i > 4) {
             StatusLED(GREEN);
             LineLeft();
          }
          else if ( i < -4) {
             StatusLED(RED);
             LineRight();
          }
          else {
             StatusLED(OFF);
             speedLeft = speedRight = SPEED;
          }
          MotorSpeed(speedLeft,speedRight);
       }
       return 0;
    }
    keine garantie

  9. #29
    Neuer Benutzer Öfters hier
    Registriert seit
    09.11.2006
    Beiträge
    20
    Zitat Zitat von The-BooN-
    mal so ne kleine frage zum linienverfolger......
    wofür benutzt ihr folgenden code und was bedeutet er?
    hier der code:
    for (j = 0; j < 0xFF; j++) LineData(lineData);
    was haben die hexadezizahlen zu bedeuten? thx im voraus!

    MfG The-BooN-
    LineData(data) wird 255 (0FF) mal aufgerufen bzw. die FotoLEDs da vorne am Asuro ausgelesen.

  10. #30
    Neuer Benutzer Öfters hier
    Registriert seit
    21.11.2006
    Ort
    Mainz
    Beiträge
    13
    Hallo,

    so wie ich das Programm verstehe, macht es keinen Sinn, 255 ( 0xFF = 255 dezimal) mal die Linedatas auszulesen. Für was, wenn es dann nicht verwendet wird?

    Die Anmerkung, daß mit dem Offset eine Kalibrierung stattfindet, war schon richtig. Besser wäre es, für jeden Sensor einen eigenen Offset zu ermitteln.

    Gruß

Seite 3 von 5 ErsteErste 12345 LetzteLetzte

Berechtigungen

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

LiFePO4 Speicher Test