PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Timer1 PWM an Tiny85



severin8b
11.01.2012, 15:50
Hallo zusammen!

Ich versuche gerade vergebens eine einfache RGB Steuerung an einem Tiny85 zu realisieren. Die PWM-Ausgänge OC0B und OCA1 liegen aber auf einem Pin. Im Compiler stellt sich das so dar, dass Bascom die Pwm Befehle an Timer1 nicht richtig einfärbt und bei zuweisungen Fehler ausspuckt, auch bei dem Pin der gar nicht doppelt belegt ist. Der aktuelle Code:


$regfile = "attiny85.dat"
$crystal = 8000000

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

pwm0a = 255
pwm1a = 120
pwm1b = 20


Schon daran scheitert es. Gebe ich dem Compiler eine andere .def Datei, z.B. ein mega644 klappt alles reibungslos. Software PWM ist nutzlos, der Controller wird noch genug zu tun bekommen...

Hat jemand da eine Idee?

Viele Grüße

Severin

Kampi
11.01.2012, 16:40
Guck mal ob dir das hier weiterhilft :)
http://bascom-forum.de/showthread.php?3489-Problem-mit-Timer-beim-ATtiny85-%28PWM%29

severin8b
11.01.2012, 18:01
Viiielen Dank.

Klappt alles. An alle die das Problem auch haben: Hier ein funktionierender Beispiel-Code mit Clear-Down und 8Bit PWM an Timer 1:


$crystal = 8000000

Config Timer0 = Pwm , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1

Gtccr = Gtccr Or &B01100000
Ocr1b = 0
Tccr1 = Tccr1 Or &B00000011

OCR0A = 255
OCR1A = 120
OCR1B = 20