- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 3 von 3

Thema: Jeder Taster für eine LED

  1. #1

    Jeder Taster für eine LED

    Anzeige

    Powerstation Test
    Hallo,

    ich hab mir den Asuro zusammengelötet und will ihn nun Programieren. Ich hab die ersten programme aus der Anleitung getestet und allles hat geklappt. Nun hab ich meinen eigenen Code geschrieben in dem eigentlich bei jedem Taster eine andere LED angehen soll, doch es passiert nichts.

    Code:
    #include "asuro.h"
    
    unsigned char taste;
    
    	int main(void) {
    		Init();
    		
    		while(1); {
    		
    		if (PollSwitch()>0) {
    		if (PollSwitsch()==1) {StatusLED(RED);}
    		else if (PollSwitsch()==2) {StatusLED(YELLOW);}
    		else if (PollSwitsch()==4) {BackLED(ON,OFF);}
    		else if (PollSwitsch()==8) {BackLED(OFF,ON);}
    		else if (PollSwitsch()==16) {BackLED(ON,ON);}
    		else if (PollSwitsch()==32) {FrontLED(ON);}
    		}
    		else
    		{
    		StatusLED (GREEN);
    		BackLED (OFF,OFF);
    		FrontLED (OFF);
    		}
    }
    }

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    26.11.2006
    Ort
    Hamburg
    Alter
    32
    Beiträge
    384
    Hi InFaIN,

    du solltest erstmal das Semikolon hinter "while(1)" wegnehmen. Es ist zudem immer Ratsam die PollSwitch-Funktion immer mehrmals aufzurufen, da du sonst falsche Werte erhälst. Du kannst hier im Forum mal nach PollSwitch suchen, dann wirst du sicher fündig werden.

    mfg
    Erik

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    29.05.2005
    Beiträge
    1.018
    Hallo InFaIN,
    willkommen im Forum. Und für alle ein 'Schönes neues Jahr'.

    Wenn du den PollSwitch-Wert in einer Variablen speicherst, und die Abfrage welche Taste gedrückt wurde etwas änderst, kommst du auch ohne mehrfache Abfrage aus.
    Code:
      unsigned char sw;
    
        sw = PollSwitch ();
        if (sw)
        {
          // Auch bei falschen sw-Werten ein eindeutiges Ergebnis liefern
               if (sw < 2)  { StatusLED (RED);    }
          else if (sw < 3)  { StatusLED (YELLOW); }
          else if (sw < 7)  { BackLED   (ON,OFF); }
          else if (sw < 11) { BackLED   (OFF,ON); }
          else if (sw < 28) { BackLED   (ON,ON);  }
          else              { FrontLED  (ON);     }
        }
    Viel Spaß und Erfolg mit dem Asuro.

    Gruß Sternthaler
    Lieber Asuro programieren als arbeiten gehen.

Berechtigungen

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

LiFePO4 Speicher Test