mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LED in Bascom dimmen


Autor: KL203 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
moin!
Ich würde gerne eine LED dimmen mit Bascom. Leider hab ich noch keine 
Erfahrung mit PWM. Nun hab ich mal im RN-wissen ein Beispielprogramm 
angeschaut und nicht ganz verstanden...
Trotzdem hab ichs mal auf meinen ATmega32 geladen und probiert eine LED 
über einen Transistor zu dimmen. Hier mein Programm:
$regfile = "m32def.dat"
$crystal = 1600000

Config Portb.1 = Output
Config Portb.2 = Output

Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm 
= Clear Up , Prescale = 1

Do
 Compare1a = 205
 Compare1b = 51
Loop

End

Autor: kurz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wo ist die Frage?

Autor: KL203 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich versteh nicht wie ich die Geschwindigkeit des PWMs einstellen kann.

Autor: gruselwusel7 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo KL203

Du setzt einen Atmega32 ein. Hier sind die PWM-Ausgänge von Timer 1 an 
Pin 18 (PD4 / OC1B) und Pin 19 (PD5 / OC1A) und NICHT an Port B1 und B2 
(=Atmega8).

Das solltest Du zuerst hardware- und software-seitig korrigieren.

In der Schleife:

Do
 Compare1a = 205
 Compare1b = 51
Loop

stellst Du das Tastverhältnis der beiden PWM-Kanäle ein.

Bitte den Prescale-Faktor nicht vergessen und entsprechend anpassen.

Steht aber alles in der Bascom-Hilfe, im RN-Wissen und in den 
Atmega-Datenblättern ;-)

Gruß vom Guselwusel

Autor: KL203 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo gruselwusel7!
Aha! OK Danke für die Antwort!

Der den Prescale hab ich doch initialisiert. Oder muss ich den nochmals 
initialisieren?

Gruss

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Falls mit 'Mode=8' der PWM-Mode gemeint ist, solltest du auch ICR1 
initialisieren. Das ist nämlich der Zählbereich deines Timers.

MfG Spess

Autor: gruselwusel7 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

> Der den Prescale hab ich doch initialisiert.

Stimmt! Prescale wird eingestellt = passt.

8bit-PWM ist eingestellt, ICR1 muss bei Bascom nicht initialisiert 
werden (Bascom = Blackbox-Programmierung).

Wünsche gutes Gelingen.

Bitte um Feedback, ob alles funktioniert.

Gruselwusel

Autor: Joachim R. (bastelbaer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal unter 
[[http://www.mcselec.com/index.php?option=com_conten...]]. 
Da gibts einen 8-Kanal-Dimmer für LEDs, und das ganze mit normalem 
Timer. Wenn du mehrere LEDs dimmen möchtest, ist das imho der bessere 
Weg. So lassen sich z.B. auch mehrere Servos gleichzeitig ansteuern.

Autor: KL203 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
Danke für den Link.

Danke für eure Hilfe es funktioniert nun!

Liebe Grüsse!

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.