- Akku Tests und Balkonkraftwerk Speicher         
Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 34

Thema: Mein erstes Prog mit ASURO

  1. #11
    Benutzer Stammmitglied
    Registriert seit
    16.03.2008
    Beiträge
    44
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Zitat Zitat von hai1991

    aber wie oben schon erwähnt wird die Tasterabfrage nur ganz am Anfang einmal aufgerufen (ich weiß nicht ob das dein Ziel ist)
    ... ich weiß nicht, was du damit meinst... kann es damit zusammen hängen, das der Asuro nicht auf einen Tasterdruck ragiert???
    Ich habs grad draufgespielt, hat alles wunderbar geklappt, aber anstatt, das er nach einem Tasterkontakt nach hinten fährt passiert gar nichts, er fährt nur ganz normal weiter...

    kann von euch bitte jemand mal ausprobieren, ob es bei euch geht?

    Code:
    #include "asuro.h" 
    
    int main(void) 
    { 
       unsigned char taster; 
       char i; 
       Init(); 
       taster = PollSwitch(); 
       { 
            if (taster==0) 
         { 
            MotorDir(FWD,FWD); 
    		MotorSpeed (120,120); 
            BackLED(ON,ON); 
         } 
            else 
         { 
            MotorDir(RWD,RWD); 
            MotorSpeed(120,120); 
            BackLED(OFF,OFF); 
            FrontLED(ON); 
          } 
       } 
    }

  2. #12
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    26.11.2006
    Ort
    Hamburg
    Alter
    32
    Beiträge
    384
    du musst die Tasterabfrage in eine while schleife packen, denn im Moment fragt er die Taster nur einmal ganz am anfang ab. Kannst den Asuro ja mal mit gedrücktetm Taster anschalten , dann sollte es gehen. Richtig müsste es so aussehen :
    Code:
    #include "asuro.h"
    
    int main(void)
    {
       unsigned char taster;
       char i;
       Init();
       while(1){
       taster = PollSwitch();
       
            if (taster==0)
         {
            MotorDir(FWD,FWD);
          MotorSpeed (120,120);
            BackLED(ON,ON);
         }
            else
         {
            MotorDir(RWD,RWD);
            MotorSpeed(120,120);
            BackLED(OFF,OFF);
            FrontLED(ON);
          }
       
       }
    }

  3. #13
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    02.01.2008
    Alter
    32
    Beiträge
    239
    genau das habe ich gemeint

    du müsstest schreiben
    Code:
    #include "asuro.h"
    
    int main(void)
    {
       unsigned char taster;
       char i;
       Init();
       while(1)                         //diese Endlosschleife war gemeint
       {
       taster = PollSwitch();
       {
            if (taster==0)
         {
            MotorDir(FWD,FWD);
          MotorSpeed (120,120);
            BackLED(ON,ON);
         }
            else
         {
            MotorDir(RWD,RWD);
            MotorSpeed(120,120);
            BackLED(OFF,OFF);
            FrontLED(ON);
            while(1);                               //damit er nicht sofort wieder vorwärtsfährt
          }
       }
       }
    }
    die 1. while(1) dient dazu, das Ganze in den Klammern immer wieder zu wiederholen --> er merkt auch später ob eine Taste gedrückt ist

    die 2. while(1) ist notwendig, da er sonst sofort wieder vorwärts fahren würde wenn der Taster losgelassen wird. du kannst aber hier später auch etwas einbauen, damit er zB. umdreht

    ich hoffe ich konnte dir jetzt weiterhelfen
    mfg hai1991

  4. #14
    Benutzer Stammmitglied
    Registriert seit
    16.03.2008
    Beiträge
    44
    ja, vom aufbau habe ich es jetzt verstanden und die Programme müssten auch gehen, aber er fährt bei beiden Programmen von Anfang an rückwärts, als ob ein taster gedrückt ist, was aber nicht wahr ist...
    jetzt mach ich den SelfTest nochmal drauf und überprüfe die Taster...

  5. #15
    Benutzer Stammmitglied
    Registriert seit
    16.03.2008
    Beiträge
    44
    also im Selftest werden die Taster richtig erkannt...
    an was kann es sonnst noch liegen?
    an den Make und Clear Dateien (keine ahnung, wie die heißen) oder an was kann das sonnst noch liegen? Die hardware ist ja dann ok...
    Ich beschreib am besten mal, wie ich das mit den Programmen mache...

    also jetzt z.B. die aus dem Thema:

    1.Ich kopier den "Text" und füge ihn im Notepad ein.
    2. eingefügt in die datei Test.c von First Try, welchen ich von der Asuro CD habe und einfach den Original Text entfernt.
    3. Jetzt habe ich, wie in der Anleitung beschrieben die Make und Clear datei unter optionen angelegt und nutze erst die Clear datei, um eventuell alte daten zu löschen und dann die make datei um den Text zu übersetzen.
    4. Wenn keine Fehler kommen, nehme ich ASURO Flash und übertrage die daten auf ASURO, muss ich die alten Dten irgendwie löschen?
    5. Testen

    Ist daran was falsch?

    EDIT: Das Problem hängt aber nicht damit zusammen, das ich meiner SystemLED beim Auslöten ein Bein ausgerissen habe oder?
    Ich habe sie jetzt nur wieder profesorisch rein gesteckt, sie geht aber nicht...^^

  6. #16
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    "die make und clear dateien" gehören zum compiler. sie sorgen für das löschen alter daten und kompilieren das neue programm. an denen liegts sicher nicht.
    du kopierst den quelltext von wo du ihn halt her hast, packst ihn in test.c, SPEICHERST (!!!!!!!!!!!), und benutzt make. nun kannst du flashen.

    das problem ist, dass du PollSwitch() nur einmal abfragst. die funktion ist sehr fehlerhaft, du solltest sie wie weiter oben beschrieben immer merhfach kurz hinterienander abfragen bevor du den wert benutzt.
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  7. #17
    Benutzer Stammmitglied
    Registriert seit
    16.03.2008
    Beiträge
    44
    wie programiere ich die mehrfach abfrage?

    kann nicht bitte jemand das prog so verändern und auch testen, dass es geht?
    Und den code bitte mit, wenn es geht ein paar komentaren bestücken, damit ich es auch blicke..

  8. #18
    Benutzer Stammmitglied
    Registriert seit
    16.03.2008
    Beiträge
    44
    ok, ich habe jetzt den code so umgeändert (nr eine while schleife entfernt), dass asuro nur bei tastendruck rückwärts fährt und welch wunder es geht...!



    Code:
    #include "asuro.h"
     int main(void) 
    { 
       unsigned char taster; 
       char i; 
       Init(); 
       while(1)                         //diese Endlosschleife war gemeint 
       { 
       taster = PollSwitch(); 
       { 
            if (taster==0) 
         { 
            MotorDir(FWD,FWD); 
          MotorSpeed (120,120); 
            BackLED(ON,ON); 
         } 
            else 
         { 
            MotorDir(RWD,RWD); 
            MotorSpeed(120,120); 
            BackLED(OFF,OFF); 
            FrontLED(ON); 
            // while(1);                               //damit er nicht sofort wieder vorwärtsfährt 
          } 
       } 
       } 
    }

  9. #19
    Benutzer Stammmitglied
    Registriert seit
    16.03.2008
    Beiträge
    44
    ok, jetzt habe ich noch ein bischen rum gespielt...

    aber wenn ich SerWrite benutzen will kommt:

    test.c:13: error: too few arguments to function `SerWrite'

    was muss ich ändern?

  10. #20
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    02.01.2008
    Alter
    32
    Beiträge
    239
    könntest du den Teil mit SerWrite posten?

    aber ich würde vermuten, dass du zu wenig Argumente in die Klammer geschrieben hast

Seite 2 von 4 ErsteErste 1234 LetzteLetzte

Berechtigungen

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

12V Akku bauen