www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RGB Fader Atmega8 Anfänger


Autor: Chris Nixda (kleiner-onkel)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe hier ein RGB Fader Programm für den Atmega8
gefunden. Ich möchte nun per Taster den Fader ein und
ausschalten können. Ich probiere das schon seit Tagen.
Geht das auch ohne ISR, Timern, SEI usw. ?
Wie gesagt.. ich bin Anfänger... und suche eine einfache Lösung.
Es gibt zwar viele Programmbeispiele füe den Atmega8, allerdings
mit so vielen Funktionen (RC5, eeprom, HSV) usw. das ich da
nicht mehr durchblicke.

Grüße

Chris

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://www.mikrocontroller.net/articles/AVR-GCC-Tu...

annahme du hast einen schalter an PB.4
mach halt so schleife
while(1)
{
  if(PINB&(1<<4))
  {
     for(i=0;i<255;i++)
       {
       B_PWM=i;
       R_PWM=(254-i);
     my_delay();
       }
       for(i=0;i<255;i++)
       {
       G_PWM=i;
       B_PWM=(254-i);
     my_delay();
       }
       for(i=0;i<255;i++)
       {
       R_PWM=i;
       G_PWM=(254-i);
     my_delay();
       }
  }
}

Autor: Chris Nixda (kleiner-onkel)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich bekomme es nicht hin.

Wenn ich NICHTS drücke ist der Fader an und die LED aus.

Wenn ich den Taster gedrückt halte, geht der Fader bis zur blauen
LED, bleibt dort mit der Farbe stehen, und die LED geht an.

???

seltsam sowas

Wer kann mir weiter helfen?

Sicher das man da keinen Interrupt braucht?


Was bedeutet eigentlich die 4 in
if(PINB&(1<<4))
In den Link habe ich was von einem Interrupt gelesen?



Grüße

Chris

Autor: D. K. (wizz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Chris Nixda schrieb:
...
> Was bedeutet eigentlich die 4 in
> if(PINB&(1<<4))
...

Das da oben fragt ab, ob an PortB das 4. Bit TRUE ist.
Dies wird dadurch realisiert, daß eine 1 4-mal nach links geschoben 
wird.

Notwendig ist dies deshalb, weil an PortB Pin4 der Schalter vermutlich 
angeschlossen sein sollte...

Viele Grüße,

  Wizz

Autor: Chris Nixda (kleiner-onkel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich richtig verstanden habe ist


if(PINB&(1<<4))

und

if(PINB&(1<<PB4))

das gleiche?



Grüße Chris

Autor: D. K. (wizz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Chris Nixda schrieb:
> Wenn ich richtig verstanden habe ist
>
>
> if(PINB&(1<<4))
>
> und
>
> if(PINB&(1<<PB4))
>
> das gleiche?

Hallo,

ja, denn Du inkludierst das Header-File io.h ("#include <avr/io.h>").
Das wiederum definiert sowas hier:

#define PB4  4

Grüße,

  Wizz

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.