Hast Du das "nur so" übernommen, oder vielleicht doch die LED an den Port C.0 angeschlossen?Config Pinc.0 = Output
Beim Mega32 ist der OC1A-Ausgang nämlich der Port D.5...
Aus reinen Test- bzw. Lernzwecken wäre es schön ein kleines LED Fader Prog für die RN-Control zu haben.
Dazu hat Uwe DK1KQ vor einer Weile schonmal was geschrieben, nämlich diesen Code hier, ich habe lediglich ein paar Sachen an die RN-Control angepasst.
Bei mir leuchtet die LED jedoch einfach nur auf, kein Fading. Was stimmt nicht??
### Korrigiert
$regfile = "m32def.dat"
$crystal = 16000000
Dim A As Word
Dim B As Word
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down , Prescale = 1
Config Pind.5 = Output
Do
For A = 255 To 10 Step -10
Pwm1a = A
Waitms 50
Next
For A = 10 To 255 Step 10
Pwm1a = A
Waitms 50
Next
Loop
End
Hast Du das "nur so" übernommen, oder vielleicht doch die LED an den Port C.0 angeschlossen?Config Pinc.0 = Output
Beim Mega32 ist der OC1A-Ausgang nämlich der Port D.5...
nein das habe ich geändert. pinc.0 ist die LED1 auf dem Board, pinc.7 ist LED8 ...
Okay - die LED hämgt also an D.5.
Stimmen denn die 16 MHz? Ansonsten könnten nämlich die vermeintlichen 50 Millisekunden sehr viel länger dauern, was Extrem-Zeitlupentempo zur Folge hätte...
Der Code sieht soweit ziemlich o.k. aus...
Im Zusammenhang mit dem Mega32 liest man hier öfter noch was über das JTAG-Fuse, das wohl öfter mal Ungemach bereitet. So ´ne druckreife Erklärung was das genau ist habe ich leider nicht parat, aber Du könntest das entsprechende FuseBit ja mal löschen (ist im Original-Zustand gesetzt).
So´n einfaches Programm, das die Zeiten und den Ausganspin checkt, hast Du schon versucht? Etwa so...
DDRD.5=1
Do
Toggle PortD.5
waitms 500
Loop
Mehr fällt mir im Moment auch nicht ein...
die 16Mhz stimmen, ist doch wie gesagt die RN Control.
Habe es auch schon mit PortA1 etc. ausprobiert, ist das selbe. Auch egal was ich bei den ms einstelle, die LED leuchtet einfach nur normal.
Habe auch JTAG mal von disabled auf enabled umgestellt - kein effekt.
Sorry - die kenn´ ich nicht. Ich hab´ ein etwas angestaubtes, aber herrlich großes Steckboard vom Flohmarktdie 16Mhz stimmen, ist doch wie gesagt die RN Control.
Aber jetzt muss ich noch mal ganz blöd fragen: Die LED ist schon an D.5, oder? Das ist nämlich der einzige Pin, an dem es funktionieren kann..Habe es auch schon mit PortA1 etc. ausprobiert, ist das selbe.
oww jetzt funktioniert es! Um zu wissen warum es nur an D5 geht kenn ich mich noch nicht genug aus aber wie steuert man dann mehrere LEDs an?!
Na also - geht doch
Beim Hardware-PWM zählt der Zähler immer rauf und runter. Wenn der Zähler den Wert im "Output-Compare"-Register (OCR) erreicht, wird ein bestimmter, definierter (!!) Pin getoggelt. Man kann zwar wählen, ob dieser Pin beim raufzählen auf High gesetzt und beim runterzählen auf Low gesetzt werden soll, oder eben umgekehrt (Compare = Clear Up bzw. Clear down). Aber welcher Pin getoggelt wird - das kann man nicht beeinflussen.
Dieser Pin ist beim Mega32 (Du ahnst es wahrscheinlich schon...) - D.5!
Ein sehr gutes Kapitel zum Thema PWM findest Du hier:
https://www.roboternetz.de/wissen/in...Bascom_und_PWM
Viel Spaß noch beim rumexperimentieren!!
viele Kanäle unterschiedlich dimmen geht bedingt mit Software-PWM oder mit einem zusätzlichen PWM-Chip. Gute Erfahrungen hab ich mit dem PCA9635 gemacht
hi,
mit dem ATmega168 kannst du 6 Hardware PWM´s realisieren.
Reicht das?
liebe Grüße,
Klingon77
Der kürzeste Weg zwischen zwei Menschen ist ein Lächeln - http://www.ad-kunst.de
Lesezeichen