- LiFePO4 Speicher Test         
Seite 5 von 6 ErsteErste ... 3456 LetzteLetzte
Ergebnis 41 bis 50 von 51

Thema: Pins, Ports und Fragen beim Lernen...

  1. #41
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.07.2006
    Alter
    44
    Beiträge
    2.474
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Ich hab den Code gerade eben erst ausprobieren können (musse vor kurzem rechner neu machen), leider werden mir sämtlich Fehlermeldungen angezeigt. Die fehlende öffnende Klammer habe ich schon bemerkt, nur kommt der Compiler nicht mit z.B. DEBOUNCE_TIME klar

  2. #42
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.12.2004
    Alter
    40
    Beiträge
    165
    nicht wieder alles aus den vorherigen Lektionen vergessen
    DEBOUNCE_TIME musst du dir per #define noch definieren.
    und Klammer fehlt da keine.

  3. #43
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.07.2006
    Alter
    44
    Beiträge
    2.474
    Zitat Zitat von fluchtpunkt
    nicht wieder alles aus den vorherigen Lektionen vergessen
    DEBOUNCE_TIME musst du dir per #define noch definieren.
    und Klammer fehlt da keine.
    Dann muss ichs nochmal probieren, denn das #define hat bei mir nix gebracht, habs wohl nicht richtig gemacht

    PS:
    Die Klammer fehlt (fett markiert)

    while (1)
    {
    if (PINB && (1<<PB3))
    {
    if (++button_counter > DEBOUNCE_TIME )
    {
    PORTB ^= (1<<PB4);
    }
    }
    else {
    button_counter = 0;
    }
    }

    Oder ist das hier nicht notwendig?

    Andreas

  4. #44
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.12.2004
    Alter
    40
    Beiträge
    165
    wenn nur ein einziger Befehl nach if oder else ausgefuehrt werden soll braucht man keine Klammer. Aber setz die ruhig auch dann, ist imho ne schlechte Angewohnheit und Faulheit die wegzulassen.

    Also folgender Code wurde von mir gerade erfolgreich kompiliert:
    Code:
    #include <avr/io.h>
    
    #define DEBOUNCE_TIME 2
    int button_counter;
    
    int main(void)
    {
        while (1)
        {
            if (PINB && (1<<PB3))
            {
                if (++button_counter > DEBOUNCE_TIME )
                {
                    PORTB ^= (1<<PB4);
                }
            }
            else
                button_counter = 0;
        }
        return 0;
    }

  5. #45
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.07.2006
    Alter
    44
    Beiträge
    2.474
    Zitat Zitat von fluchtpunkt
    wenn nur ein einziger Befehl nach if oder else ausgefuehrt werden soll braucht man keine Klammer. Aber setz die ruhig auch dann, ist imho ne schlechte Angewohnheit und Faulheit die wegzulassen.

    Also folgender Code wurde von mir gerade erfolgreich kompiliert:
    Code:
    #include <avr/io.h>
    
    #define DEBOUNCE_TIME 2
    int button_counter;
    
    int main(void)
    {
        while (1)
        {
            if (PINB && (1<<PB3))
            {
                if (++button_counter > DEBOUNCE_TIME )
                {
                    PORTB ^= (1<<PB4);
                }
            }
            else
                button_counter = 0;
        }
        return 0;
    }
    Hi =)

    Vielen Dank, werd ich heut abend sofort ausprobieren

    Noch eine Frage, warum wird hier "int main(void)" angewendet?
    Reicht "main()" nicht aus?

    Andreas

  6. #46
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.12.2004
    Alter
    40
    Beiträge
    165
    man will sich ja schliesslich an den C-Standard halten und keine Warnungen wie:
    bla.c:8: warning: return type defaults to `int'
    bla.c:8: warning: function declaration isn't a prototype


    Zwei Warnungen weniger und ordentlicher Stil sollten einem die acht zusaetzlichen Zeichen wert sein


    Was int und void an der Stelle bedeutet ist aber klar, oder?

  7. #47
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.07.2006
    Alter
    44
    Beiträge
    2.474
    Zitat Zitat von fluchtpunkt
    man will sich ja schliesslich an den C-Standard halten und keine Warnungen wie:
    bla.c:8: warning: return type defaults to `int'
    bla.c:8: warning: function declaration isn't a prototype


    Zwei Warnungen weniger und ordentlicher Stil sollten einem die acht zusaetzlichen Zeichen wert sein


    Was int und void an der Stelle bedeutet ist aber klar, oder?
    Ich bin ja noch ganz am Anfang, hab da bisher nur mit main() geschrieben, hab mir die Bedeutung schon durchgelesen, komme aber noch nicht drauf klar, wann und warum ich das int und void anwenden muss

  8. #48
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.12.2004
    Alter
    40
    Beiträge
    165
    dann am besten mal C von A bis Z lesen

  9. #49
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.07.2006
    Alter
    44
    Beiträge
    2.474
    Zitat Zitat von fluchtpunkt
    dann am besten mal C von A bis Z lesen
    Klasse, danke für den Link, werds mir evtl. bestellen \/

  10. #50
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Da ist noch ein Schnatzer drin... du meinst bestimmt "&" in Vergleich, und nicht "&&"!
    Disclaimer: none. Sue me.

Seite 5 von 6 ErsteErste ... 3456 LetzteLetzte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress