- 12V Akku mit 280 Ah bauen         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Stopp am Abgrund! "Mehr spass mit ASURO band 1"

  1. #1
    ASURO1995
    Gast

    Stopp am Abgrund! "Mehr spass mit ASURO band 1"

    Anzeige

    Praxistest und DIY Projekte
    Hallo

    Ich habe mir vor einiger Zeit das Buch "Mehr Spaß mit ASURO" gekauft und wollte mal das Programm Stopp am Abgrund ausprobieren. ASURO sollte mit voller Geschwindigkeit vorwärts fahren bis er auf ein Schwarzes Papier trifft.
    Code:
    #include "asuro.h" 
    #define STOP 200 
    int main(void) 
    {    
       unsigned int lineData[2]; 
       unsigned char running = TRUE; 
       Init(); 
       MotorDir(FWD,FWD); 
       MotorSpeed(255,255); 
       do { 
          LineData(lineData); 
          if ((lineData[0] < STOP) && (lineData[1] < STOP)) { 
             MotorSpeed(0,0); 
             BackLED(ON,ON); 
             running = false; 
          }       
       } 
       while (running); 
       while(1); 
       return 0; 
    }
    In der Zeile 15 zeigt es mir diesen Fehler an.

    Code:
    > "make.exe" all
    set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c \
    	| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > test.d; \
    	[ -s test.d ] || rm -f test.d
    -------- begin --------
    avr-gcc --version
    avr-gcc (WinAVR 20080610) 4.3.0
    Copyright (C) 2008 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.
    
    Size before:
    test.elf  :
    section           size      addr
    .text             2138         0
    .bss                 1   8388704
    .debug_aranges      64         0
    .debug_pubnames    263         0
    .debug_info       1077         0
    .debug_abbrev      416         0
    .debug_line       1622         0
    .debug_frame       288         0
    .debug_str         360         0
    .debug_loc         388         0
    Total             6617
    
    
    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
    In file included from asuro.h:34,
                     from test.c:1:
    c:/asuro_src/lib/gcc/../../avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete.  Use <avr/interrupt.h>."
    test.c: In function 'main':
    test.c:15: error: 'false' undeclared (first use in this function)
    test.c:15: error: (Each undeclared identifier is reported only once
    test.c:15: error: for each function it appears in.)
    make.exe: *** [test.o] Error 1
    
    > Process Exit Code: 2
    > Time Taken: 00:02
    Vielleicht könnt ihr mir weiter Helfen
    wen möglich im ganzen Programm!
    Ich bin um jede Antwort froh und danke euch schon im Voraus!!!

    Gruß
    Pascal

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.11.2005
    Alter
    49
    Beiträge
    1.146
    Hi,

    wenn Du "false" komplett groß schreibst (FALSE) sollte es gehen.

    Gruß,
    askazo

  3. #3
    ASURO1995
    Gast
    Danke probier ich mal

  4. #4
    ASURO1995
    Gast
    Funktioniert bei mir nicht habe TRUE durch 1 ersezt FALSE durch 0.
    Keine Fehlermeldung wird angezeigt! Der ASURO aber bleibt stehen.

  5. #5
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Bei meinem asuro (mit nichtorginaler 3mm-LED) sind die Linienwerte für Nichtdunkel bei ca 40-50. Deine 200 als Stopwert scheinen mir deshalb viel zu groß. Je kleiner der Wert umso weniger reflektieres Licht wird zur Fahrt benötigt. Versuche deshalb mal Werte bei 30-40 für Stop.

    Deine Abfrage setzt voraus das beide Sensoren gleichzeitig verdunkelt werden. Wenn der asuro schräg auf die Tischkante/Linie trifft könnte dies möglicherweise nicht erfüllt sein. Besser wäre vielleicht ein ODER:

    if ((lineData[0] < STOP) || (lineData[1] < STOP)) {

    Oder die Überprüfung der Summe:

    if (((lineData[0] < STOP) && (lineData[1] < STOP)) || ((lineData[0]+lineData[1]) < (2*STOP))) {

    Und immer damit rechnen dass der asuro die Tischkante doch nicht erkennt, gelle!

    Gruß

    mic

    [Edit]Klammern korrigiert[/EDIT]
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  6. #6
    ASURO1995
    Gast
    Danke werde es eimal ausprobieren

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    27.12.2008
    Ort
    Dresden
    Alter
    37
    Beiträge
    100
    geht das überhaupt mit dem char?
    muss das nicht ein boolean sein? denn nur dieser typ kann doch true und false sein.

    ok, man kann einem char ja ansich zuweisen was man will, aber von der logik her passt es iwie nicht so ganz...

  8. #8
    ASURO1995
    Gast
    Funktionieren tut es.

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    07.12.2008
    Beiträge
    31
    Guten Abend!

    Sorry, dass ich diesen thread nochmal ausgegraben habe, aber ich wollte dieses programm auch mal ausprobieren, allerdings klappt das nicht so ganz. Ich habe auch dieses Problem, dass der Asuro einfach nur rumsteht, und nichts macht. Verschiedene Stop Werte habe ich auch schon ausprobiert.
    Hier ist das Programm:



    Code:
     
    #include "asuro.h"
    
    #define STOP 50
    int main(void)
    {
     
     unsigned int lineData[2];
     unsigned char running = 1;
     Init () ;
     MotorDir (FWD,FWD);
     MotorSpeed(255,255);
     do {
         LineData (lineData) ;
    	 if ((lineData[0] < STOP) && (lineData[1] < STOP)) {
    	   MotorSpeed(0,0);
    	   BackLED(ON,ON);
    	   running = 0;
    	   
    	}
    } while (running);
    while(1);
    return(0);
    }
    Liegt is einfach daran, dass ich nie den richtigen Stopwert finde oder gibts ein anderes Problem mit dem Programm? [/code]

  10. #10
    Erfahrener Benutzer Roboter Genie Avatar von pinsel120866
    Registriert seit
    18.12.2007
    Ort
    Hohenems
    Alter
    58
    Beiträge
    847
    Hallo,

    Hast du vorher gespeichert, bevor du kompiliert hast?

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress