hi alle,
frohe Kunde; der "Kleine" funzt dank eurer Hilfe wie er soll
Die LED blinkte bei eingestelltem 16MHz Takt schön im Sekundenrhythus.
Hier die Fusebit´s; evtl. kann es nochmal jemand gebrauchen...
Bild hier
Fusebit "C" habe ich ausgeschaltet...
Bild hier
... und den entsprechenden Quarz (mit langer Einschwingzeit) eingeschaltet.
Dann "wagte" ich mich an die PWM.
Mit Hilfe des Buches von Roland Walter, einigen Beschreibungen aus dem Forum und dem Wiki des Forums, sowie ein wenig Überlegen brachte ich dann eine ein- und ausfadende LED zustande \
/
Nun habe ich die PWM-Grundlagen schon durchgelesen.
Leider ist noch nicht alles sofort aus dem Kopf abrufbar.
Lange Rede, kurzer Sinn:
Es "funzt"; im Groben weiß ich auch warum aber die Details muß ich mir noch erarbeiten.
Code:
$regfile = "m168def.dat" 'ATmega 168 Definition
$crystal = 16000000 'Ext. Quarz 16 Mhz
Ddrd.7 = 1 'Pin PD7 als Ausgang definieren
On Timer0 Ontimer 'Interruptroutine für Timer0
Dim Helligkeit As Byte
Dim Lauf As Byte 'Schleifenvariable
Config Timer0 = Timer , Prescale = 64
Enable Timer0 'Timer0 Overflow Interrupt ein
Enable Interrupts 'Interrupts global einschalten
Do
For Lauf = 2 To 254
Helligkeit = Lauf
Waitms 2
Next Lauf
For Lauf = 254 To 2 Step -1
Helligkeit = Lauf
Waitms 2
Next Lauf
Loop
Ontimer:
If Portd.7 = 1 Then Timer0 = 256 - Helligkeit Else Timer0 = Helligkeit
Toggle Portd.7 'LED umschalten
Return
END
Nächste Woche finde ich hoffentlich mal ein wenig Zeit ein paar Fotos zu machen und einen kleinen "Bericht" in meinem LED-Thread darüber zu schreiben.
Nochmals Dank für eure Hilfe
liebe Grüße,
Klingon77
Lesezeichen