Forum: Compiler & IDEs schleifenprob!!


von lordchen (Gast)


Lesenswert?

moin !
wennich das so mache wie hier :
wird t1 IMMER incrementiert
wenn einmal kurz auf taster 1gedrückt wird fängt er bei 0 an zu zählen

aber bit_is_set(PIND,PIND0) scheint immer true zu sein
aber wennich drücke wird nur t1 auf 0 gesetzt

  if(bit_is_set(PIND,PIND0))
  {
    t1++;
  }
  else
  {
    if (t1 = 10)
    {
      t1 = 0;
      lcd_clrscr();
      lcd_puts("    Taster 1    ");
      delay();
    }
  }


das ist doch auch richtig oder ?
DDRD  = 0;
PORTD = 255;

von lordchen (Gast)


Lesenswert?

das egibt genau das sebe problem
naja ähnlich diemal wird irgenwie nix incerementiert und
        t1 = 0;
        lcd_clrscr();
        lcd_puts("    Taster 1    ");
        delay();
wird trotzdem ausgeführt ...

helpt me pleeez


    keys = ~PIND;              // read input port with switches 
(active-low)

        if ( keys & 1 )
        {
      t1++;

      if(t1 = 3)
      {
        t1 = 0;
        lcd_clrscr();
        lcd_puts("    Taster 1    ");
        delay();
      }
      else
      {
      }
    }
    else
    {
    }

von Peter Fleury (Gast)


Lesenswert?

>>    if(t1 = 3)
>>    {

Das ist aber ein berühmter Anfänger C-Fehler:
Ich glaube du meinst:

      if ( t1 == 3 )     // falls t1 GLEICH 3

Dein Ausdruck weisst der Variable t1 den Wert 3 zu und testet danach ob 
diese Variable 0 oder ungleich 0 ist.

von lordchen (Gast)


Lesenswert?

würg

danke das du mich erlöst hast !!!

.. also weiter gehts ;)

die email mit der makefile kannst du löschen ich habs hinbekommen ...

jetzt muss ich nurnoch diese abrage richtig hinkrioegen


sag mal diesen timer den ich da verwenet hae ... gibts da noch n' 2. von 
?

danke nochmal

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.