- LiFePO4 Speicher Test         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 17 von 17

Thema: Kollisionsprogramm

  1. #11
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    29.07.2005
    Alter
    34
    Beiträge
    128
    Anzeige

    Powerstation Test
    ^^ wie hai schon sagt

    ein "asuro pro" hat meines wissens nach geschrieben, das es die mgl. gibt die kondensatoren einfach auslöten.. bzw abzwicken..

  2. #12
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.068
    ich habe den kondensaoter der parallel zu den tastern liegt (c6?c7? schaltplan!) entfernt. seitdem sind die ergebnisse besser.

    allerdings muss nicht der taster öfter ausgelöst werden, sondern die funktion pollswitch öfter ausgeführt werden.
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  3. #13

    PollSwitch, wenn kein Taster gedrückt ist?

    Hallo & Hilfe !
    Ich bin noch ziemlich Neu auf diesem Gebiet und hab da mal ne Frage:
    Was gibt mir PollSwitch eigentlich aus, wenn überhauptkeine Taste gedrückt ist? 0 ? Oder 1024 ? ...
    Wenn ich die verschiedenen Schalter einzeln abfragen will, kann ich dann nicht schreiben

    Code:
    /*** Funktion Vorwaerts ***/
    void MotorFwd(void)			
    {
      MotorDir(FWD,FWD);
      MotorSpeed(speed,speed);
      Sleep(200);
    }
    
    /*** Funktion Motor Stop ***/
    void MotorStop(void)
    {
      MotorDir(BREAK,BREAK);
      MotorSpeed(0,0);
      Sleep(200);
    }
    
    
    int main(void)
    {
      uint8_t t1, t2;	//Variablen für PollSwitch
      Init();		//Initialisieren	
      EncoderInit();	//Encoder initialisieren		
      
      while(1)
      {   
        t1=0;
        t2=0;	  
    
        /*** Keine Taste -> Vorwärts fahren ***/  
          while (t1 == 0 && t2 == 0)         
         {
          MotorFwd();          
          FrontLED(ON);
          BackLED(OFF,OFF);
    	  t1=PollSwitch;
    	  t2=PollSwitch;
          }
    
        MotorStop();
        Go(-40,speed);
    
        /*** Fall 1 (Wand vorne rechts) ***/
    	if (t1 == t2 && t1 & 0x01)
    	{	  
    	  Turn(-45,speed);
    	}
    
        /*** Fall 2 (Wand vorne links ***/
    	else if (t1 == t2  && t1 & 0x1F)
    	{	  
    	  Turn(45,speed);
    	}
    ...
    Vielleicht kann mir einer helfen...

    [/code]

  4. #14
    Neuer Benutzer Öfters hier
    Registriert seit
    10.10.2007
    Ort
    Aachen
    Beiträge
    9
    Hallo wölkchen,
    schau mal genau auf die Warnings, wenn Du Dein Programm compilierst.
    Da sollte irgendwas in der Art von
    Code:
    main.c:25: warning: initialization makes integer from pointer without a cast
    vorkommen.
    Du weist nämlich an t1 und t2 die Adresse der Funktion PollSwitch() zu und nicht den Rückgabewert der Funktion.
    In C/C++ sind die Klammern eines parameterlosen Funktionsaufrufes nicht optional. Ich glaube bei Basic geht sowas.
    In C bekommst Du in diesem Fall einen Zeiger auf die Funktion, also ihre Adresse. Und die ist definitiv nicht 0 und wird auch über die gesamte Programmlaufzeit immer den gleichen Wert haben.
    Es müsste also heissen:
    Code:
    ...
         BackLED(OFF,OFF);
         // t1=PollSwitch;  <-- das sind Zeiger auf die Funktion
         // t2=PollSwitch;  <-- ändern in die folgenden Zeilen
         t1 = PollSwitch();
         t2 = PollSwitch();
       }
    
       MotorStop();
    ...
    Dann liefert Dir PollSwitch() auch wie gewünscht eine 0, wenn keine Taste gedrückt ist.
    Gruß
    Buggie

    Das wohlüberlegte Treffen von Entscheidungen folgt einer alten Tradition: Zuerst raten und danach die anderen dafür verantwortlich machen.
    Scott Adams

  5. #15
    Neuer Benutzer Öfters hier
    Registriert seit
    03.04.2008
    Ort
    Kulmbach
    Beiträge
    6
    also in meinem programm was jetzt schon funktioniert gibt der pollswitch dann 1 aus wenn er gedrückt wird ansonsten 0

    ich hab jedoch drei mal abfragen müssen dann klappts wunderbar und läuft wies soll

  6. #16
    Hallo

    Danke erst mal für die schnelle Antwort!
    Ich hab meinen Code jetzt geändert, nur funktioniert das ganze immer noch nicht...

    Also Dr.Asuro zeigt eigentlich den richtigen Wert, eine hohe Spannung (über 4V) und den Dezimalwert 1022 bzw. 1023.
    Kann ich nicht irgendwie direkt auf diese Zahlen zuzugreifen ?
    Ich muss nämlich gestehen, dass mir die Rechnung aus dem asuro.c ein Rätsel ist...

    Gruß wölkchen

  7. #17
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.068
    zeig deinen aktuellen code nochmal her...
    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