- LiFePO4 Speicher Test         
Ergebnis 1 bis 4 von 4

Thema: trotz if(1) keine Ausführung

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.06.2006
    Beiträge
    478

    trotz if(1) keine Ausführung

    Anzeige

    Powerstation Test
    Hallo,

    ich habe bis jetzt das hier geschrieben:
    Code:
    #include <avr/io.h>
    unsigned char sekunde;
    unsigned char minute;
    unsigned char stunde;
    unsigned char status;
    //(0)rising edge,(1)last state,  
    void zeit_und_logon()
    {
    if (1)////////////HIERUM GEHT ES!!!!!!!!!!!!!!!!!!!!!!!!!!
       {
        if(status | 0b11111101) 
    	{
    	 status | 0b00000001;
    	}
       }
    //********************
    // eigene Zeiterzeugung
    //********************
    sekunde++;
    if (sekunde == 60)
       {
       sekunde = 0;
       minute++;
       }
    
    if (minute == 60) 
       {
        minute = 0;
    	stunde++;
       }
    if (stunde == 24) stunde = 0;
    //********************
    // eigene Zeiterzeugung
    //********************
    }
    
    int main(void)
    {
    TCCR1B |= (1<<CS10);
    TCNT1 = 0;
    main2:
    if(TCNT1 < 8000) goto main2;
    TCNT1 = 0;
    zeit_und_logon();
    
    goto main2;
    return 0;
    }
    Obwohl ich in der Funktion zeit_und_logon();
    eine IF Abfrage mit IF(1) geschrieben habe, wird in meinem Simulator die zugehörige Aktion nicht ausgeführt.

    Weiß jemand warum?

    danke,
    The Man

  2. #2
    Erfahrener Benutzer Roboter Experte Avatar von sternst
    Registriert seit
    07.07.2008
    Beiträge
    672
    Wurde wegoptimiert.
    Es hat keinerlei Auswirkungen, ob der if-Block nun ausgeführt wird, oder nicht, also wurde er vom Compiler rausgeschmissen.
    MfG
    Stefan

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.06.2006
    Beiträge
    478
    Ich hab doch die Oderanwendung auf status im IF Block

    status | 0b00000001;

    mfg

  4. #4
    Erfahrener Benutzer Roboter Experte Avatar von sternst
    Registriert seit
    07.07.2008
    Beiträge
    672
    Die macht aber nichts, sie verändert nichts.
    Vielleicht sollte da eigentlich irgendwo noch ein "=" rein?

    Übrigens ist "if(status | 0b11111101)" auch immer wahr, das könntest du auch gleich durch "if(1)" ersetzen.
    MfG
    Stefan

Berechtigungen

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

Solar Speicher und Akkus Tests