Archiv verlassen und diese Seite im Standarddesign anzeigen : LED Dimmerprogramm
king-sixXx
21.01.2006, 19:56
Hallo Leute!
Ich hab mich mal testweise an einem Dimmerprogramm versucht.
Dazu habe ich an Pin 15 (OC1A) des Mega8 nach einem 1,2K Widerstand eine LED an die Masse angeschlossen.
Mein Programm dazu sieht so aus:
$Regfile="m8def.dat"
$Crystal=4000000
$Baud =9600
DDRB.1=1
TCCR1A=&B10000001
TCCR1B=&B00000010
Do
OCR1AL=220
'OCR1AL=120
'OCR1AL=20
Loop
Leider funktioniert es nicht. Egal welchen Wert ich ich setze, die LED bleibt aus..
Findet jemand den Fehler???
Vielen Dank!
hallo
glaube du machst es einfach zu kompleziert geht auch einfacher:
Dim A As Word
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 8
Config Pinb.1 = Output
do
For A = 0 To 511
Pwm1a = A
Waitms 20
Next
loop
end
oder um nur a zu bestimmen schreibste einfach
a = 255
probiers einfach mal so
gruß
patrick
king-sixXx
24.01.2006, 11:12
Hi patti16!
Danke für die schnelle Antwort. Ich bin eben erst dazu gekommen dein Programm zu testen.
Leider funktioniert es auch nicht. Kann es sein, dass sich mein mega8 verabschiedet hat?
Hab mir mal einen neuen bestellt und werde es mal mit dem neuen versuchen.
MFG!
warum meinste das sich dein mega8 verabschiedet hat tut sich da gar nichts mehr?
oder was macht er über haupt wenn er noch was tut??
gruß
patrick
king-sixXx
24.01.2006, 19:50
PWM-technisch macht er gar nichts, er gibt über die RS232-Schnittstelle nur noch undefinierbare Zeichen aus und er lässt sich nicht mehr programmieren....
Ich hab sonst keine Idee, was da schief galaufen ist.
hallo
hast du die fusebits umgestellt?
die dürftest du auf jeden fall noch raus bekommen andern falls ist der µC denke ich mal kaputt.
gruß
patrick
king-sixXx
25.01.2006, 10:05
An den Fusebits hab ich nichts umgestellt.
Der µC wird auch nicht mehr von Bascom erkannt. Ich hoffe der neue kommt heute oder morgen.
MFG!
An den Fusebits hab ich nichts umgestellt.
$Crystal=4000000
Dann ist dein Programm für einen 4 mal schnelleren Takt berechnet als der AVR tatsächlich hat!
Wenn du nichts eingestellt hast, läuft er mit 1MHz.
Nur komisch, das Bascom ihn nicht mehr erkennt. Aber das mag ja auch andere Gründe haben.
king-sixXx
25.01.2006, 13:31
nein, nein so mein ich das nicht :-)
Ich hab die Fusebits schon auf den externen Quarz umgestellt. Entschuldigt meine ungenaue formulierung.
Mit dem Satz wollte ich nur ausdrücken, das die Fusebits nichts mit dem aktuellen Problem zu tun haben.
MFG!
Achso, dann hab ich das nur falsch verstanden.
Vielleicht ist es doch nur ein Hardwareproblem? Der Quarz schwingt nicht richtig, oder er ist kaputt, der Dongle ist defekt, ...?
Naja, mal schauen, wie sich der neue Mega8 in der Schaltung verhält.
Hallo,
Ich bin seit einer Woche dabei mit meinem Steckbrett und meinem ersten AVR zu testen.
Das Dimmen von LED habe ich gestern gerade probiert und funktioniert mit diesem Code bei mir.
Sollte eigentlich alles klar sein:
Mußt halt nur die config´s an deine Probierplatine anpassen
$regfile = "m16def.dat"
$crystal = 12000000
Const True = 1
Const False = 0
Dim Hi As Byte
Dim Lo As Byte
Dim Phase As Bit
Config Timer0 = Timer , Prescale = 64
On Timer0 Timer0_isr
Config Pinc.0 = Output
Config Pinc.1 = Output
Led1 Alias Portc.0
Led2 Alias Portc.1
' Config Lcd = 16 * 2
' Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4
' Config Lcdbus = 4
Config Pina.0 = Input
Config Pina.1 = Input
Config Pina.2 = Input
Tasterhoch Alias Pina.0
Tasterrunter Alias Pina.1
Tasterenter Alias Pina.2
Enable Timer0
Enable Interrupts
Lo = 255
Phase = True
Porta.0 = 1
Porta.1 = 1
Porta.2 = 1
'Initlcd
'Cls
Do
Waitms 5
'Locate 1 , 5 : Lcd Lo
If Tasterhoch = 1 Then Incr Lo
If Tasterrunter = 1 Then Decr Lo
If Lo = 0 Then Lo = 1
If Lo = 255 Then Lo = 254
Hi = 255 - Lo
Loop
End
Timer0_isr:
If Phase = True Then
Led1 = 1
Timer0 = Lo
Phase = False
Else
Led1 = 0
Timer0 = Hi
Phase = True
End If
Return
Die Sachen, die ich auskommentiert habe, kannste auch weglassen, wenn Du kein Display dran hast.
ich habe das nur für mich gemacht. (Übung macht den Meister) O:)
king-sixXx
27.01.2006, 14:30
Es funktioniert!!!!!!
Ich hab das schon so lange versucht mit dem PWM und es hat nie geklappt.... und jetzt langs nur an dem doofen Chip! Aber jetzt neuer Chip, neues Glück und es läuft!
Vielen Dank an alle!!!
bitte bitte nichts zu danken.
gruß
patrick
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.