Hi
vielen Dank, meine Fragen sind beantwortet \/
Hi
vielen Dank, meine Fragen sind beantwortet \/
Hallo =)
Ist die Schreibweise i.O.? Funktionieren tut das \/
AndreasCode://---------------------------------------------------------------------- #define F_CPU 3686400 // Taktferquenz des myAVR-Boards #include <avr\io.h> // AVR Register und Konstantendefinitionen //---------------------------------------------------------------------- #define test 0b00000101; main () // Hauptprogramm, startet bei Power ON und Reset { DDRB = 0b00000111; // PortB = 0, 1, 2 auf Ausgang do { PORTB = test; } while(true); } //----------------------------------------------------------------------
es bietet sich an defines gross zu schreiben, damit man sie nicht mit Variablen verwechselt; wenn du dir den Code in 2 Jahren anguckst und da noch 2000 Zeilen drumrumstehen kommst du sonst nicht drauf das das ein define ist.
Das n guter Tip, dankZitat von fluchtpunkt
Zum Verständnis, ist "test" nicht ne Variable oder bringe ich was durcheinander?
Nein, test ist ein Makro, das von Präprozessor rein textuell durch 0b00000101; ersetzt wird.
Beachte, daß der ; hier zu viel ist und du ihn nicht willst (auch wenn er in diesem Beispiel nicht stört).
Disclaimer: none. Sue me.
Oh, den ";" hab ich kurz danach bemerkt, nachdem ich das hier gepostet hatte, danke aber für den Hinweis
Wäre das mit dem Makro optimal, wenn ich nicht im mainprogramm ändern will, sonder nur quasi in der liste? Weisst was ich mein?
Weil ich, hab heut früh noch einiges dazu gebaut, z.B. test an meheren stellen verwenden werde, aber nur an einer stelle bei änderungen ran muss?
Hi ihr
Also das mit den Makros hab ich mittlerweile verstanden
Nun hab ich wieder was:
Ich hab gestern ne Weile mit if-Bedingungen rumgespielt, kann ohne probleme abfragen eingänge definieren, abfragen und ausgänge unter bestimmten bedingungen schalten.
Was ich aber nicht hinbeomme:
Ist es möglich bzw. hat jemand einen Beispielcode, wie ich mit nur einer Taste (einen Eingang) z.B. eine LED ein-/ ausschalte oder zwischen zwei Leds wechsle, ohne wait oder ähnliches nutzen zu müssen?
Geht das nur mit ner Tastenentprellung?
Den verschiedenen Versuche, die ich gemacht hatte, da flackert die LED beim schalten, weil sich ja die abfragen überschneiden
Andreas
sowas? Ich hoffe ich hab deine Frage richtig verstanden.
habs aber nich getestet, wenn ich nich ganz verwirrt bin grade sollte es funktionieren. DEBOUNCE_TIME darfst du selbst bestimmen. Das ist uebrigens die Tastenentprellung.Code:while (1) { if (PINB && (1<<PB3)) { if (++button_counter > DEBOUNCE_TIME ) { PORTB ^= (1<<PB4); } } else button_counter = 0; }
Hi danke
Würdest du mir dieses Beispiel evtl. noch erklären, was da passiert?
Lesezeichen