Forum: Mikrocontroller und Digitale Elektronik ATmega16 PWM licht dimmen?


von flow (Gast)


Lesenswert?

Abend...
Nachdem ich endlich die letzten Tage meine ATmega32 und ATmega16 zum 
laufen bekommen habe... meine 5 LEDs tanzen auch hin und her...

Jetzt würde ich gerne eine LED dimmen und wieder hell leuchten lassen, 
dass ganze in einer endlos schleife...

Nutze zur Zeit einen ATmega16 und hab die LED mit einem vorwiederstand 
am PB0 bis PB3 herum probiert ^^

Irgendwie versteh ich das nicht mit dem PWM.
Hab einige Beitrage hier gelesen und Bascom codes gefunden und diese 
versucht zu probieren und umzuschreiben... Doch die LED bleibt aus!?


Den code hab ich als letztes probiert... sollte das licht einfach nur 
dimmen...
1
$regfile = "m16def.dat"
2
$crystal = 1000000
3
Config Portb.1 = Output
4
Config Timer1 = Pwm , Pwm = 8 , Compare B Pwm = Clear Down , Prescale = 1
5
6
Do
7
  Pwm = Pwm - 1
8
9
  Wait 20
10
11
Loop
12
13
End

Irgendwas mach ich falsch... irgendwas an der Schaltung falsch?



mfg.
Flow

von tom (Gast)


Lesenswert?

hi

so weit ich das noch im kopf habe, mußt du mit dem compare arbeiten.

ist doch alles in der hilfe ztu bascom erklärt....ein bischen zu config 
timer 1 lesen und das sollte schon helfen.

bei 8 bit kannst du werte zwischen 0....255 benutzen.
bei deiner schleife kann ja nischt passieren.
gruß

von flow (Gast)


Lesenswert?

Jetzt hab ich folgenden Code Probiert...

ATmega16 läuft mit einer einfachen Grundschaltung ohne externem Quarz.
Am PB1 hängt ein 120 Ohm wiederstand und dannach eine normale Rote LED.


schalte ich PB1 auf High leuchtet die LED... aber gedimmt bekomm ich Sie 
nicht hin.


Bascom code, mit dem ich es jetzt einfach nur mal gedimmt leuchten 
lassen wollte... Doch die LED bleibt weiterhin aus.
1
$regfile = "m16def.dat"
2
$crystal = 1000000
3
4
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down , Prescale = 1
5
6
7
Do
8
9
10
Compare1a = 100
11
Pwm1a = 100
12
Loop
13
14
End


mfg.
Flow

von tom (Gast)


Lesenswert?

hi

vieleicht hilft das weiter....

http://www.rn-wissen.de/index.php/Bascom_und_PWM

gruß

von tom (Gast)


Lesenswert?


von Bernd S. (wird_schon)


Lesenswert?

Genau so ist es. Beim Mega16 Pin D4 und D5. Datenblatt lesen!

>-------------------------------------
Config Portd.5 = Output

Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , Prescale = 1
Enable Timer1
Start Timer1

Dim Phase As Word

Do

For Phase = 0 To 1023
 Ocr1ah = High(phase)
 Ocr1al = Low(phase)
 Waitms 1
Next

For Phase = 1023 To 0 Step -1
 Ocr1ah = High(phase)
 Ocr1al = Low(phase)
 Waitms 1
Next

Loop

End
>-------------------------------------

'PWM = 10' -> 1024 versch. Werte sind möglich. Die Richtung (hoch - 
runter) wird mit 'Compare A Pwm' bestimmt. Analog das Ganze für OCR1B 
(D4). Da der 16-bit Timer aus 2 8-bit Timern besteht wird vom 
einzustellenden Wert jeweils das höherwertige und niederwertige bit 
verwendet.

von Thomas H. (merlin63)


Lesenswert?

hi flow

na?....ist der groschen nun gefallen?

lass mal hören...
gruß

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.