nicht wieder alles aus den vorherigen Lektionen vergessen
DEBOUNCE_TIME musst du dir per #define noch definieren.
und Klammer fehlt da keine.
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![]()
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 gemachtZitat von fluchtpunkt
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
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 =)Zitat von fluchtpunkt
Vielen Dank, werd ich heut abend sofort ausprobieren
Noch eine Frage, warum wird hier "int main(void)" angewendet?
Reicht "main()" nicht aus?
Andreas
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 mussZitat von fluchtpunkt
![]()
dann am besten mal C von A bis Z lesen
Klasse, danke für den Link, werds mir evtl. bestellen \Zitat von fluchtpunkt
/
Da ist noch ein Schnatzer drin... du meinst bestimmt "&" in Vergleich, und nicht "&&"!
Disclaimer: none. Sue me.
Lesezeichen