- LiFePO4 Speicher Test         
Ergebnis 1 bis 2 von 2

Thema: Fehler in einer if-Bedingung

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    08.06.2004
    Ort
    Dortmund
    Beiträge
    10

    Fehler in einer if-Bedingung

    Anzeige

    Powerstation Test
    Hallo,

    Ich habe einen PIC16F877 mit 20MHz und ich benutze CC5x.

    Ich hab zwei LED's die abwechselnd blinken. Am Anfang mit 1ms Abstand
    und dann werden die Abstände immer verdoppelt bis 1024ms. Dann sollte
    er eigentlich die Abstände bis 1ms wieder halbieren, um dann wieder von
    vorn anzufangen. Das tut er aber nicht! Ich hab schon eine Kontroll-LED
    eingebaut die angeht wenn er anfängt runter zu zählen.

    Komisch ist, dass die Kontroll-LED zwar angeht er, aber das Blinken
    nicht wieder schneller wird. Das kann ich mir nicht erklären, da die
    Kontroll-LED erst auf high geht, wenn er anfängt zu teilen.

    Dazu bitte unbedingt den angehängten Sourcecode ansehen!!!

    Danke für die Hilfe!
    Angehängte Dateien Angehängte Dateien

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Werter Kollege, die If's sind deine Sache nicht:
    Wenn du schreibst
    if(up_down == 0)
    {
    }
    else if(up_down == 1)
    {
    }
    dann brauchst du im else nicht nochmal "if" aufs gegenteil sagen. else ist schon "else"


    Code:
    		LED2=0;
    		wait(time);
    		if(time < 1024)
    		{
    			if(up_down == 0)
    			{
    				time = time*2;
    				control = 0;
    			}
    			else if(up_down == 1)
    			{
    				time = time/2;
    				control = 1;
    			}
    		}
    		else if(time >= 1024)
    		{
    			up_down = 1;
    		}
    		else if(time <= 1)
    		{
    			up_down = 0;
    		}
    	}
    }
    Problem: wenn time < 1024 , dann machst du sie größer. GUT

    Ist sie >= 1024, kommst du ins else und setzt up_down = 1 AUCH GUT

    aber time wird nicht verändert, also bleibst bei >= 1024 und du kommst nie wieder auf den oberen Teil vom "IF"
    Logo ?
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad