Hallo zusammen. Wie der Titel schon sagt habe ich Probleme mit Bascom und Fading von drei PWM Kanälen.

Aufbau:
Ich habe an ADC Kanal 0/1/2 je ein Potti 10k.
Diese faden die PWM Kanäle des Timers0 / Timers1 eines Atmega 16.

Das Konkrete Problem ist das ich immer nur zwei faden kann, sobald ich den dritten fade,
Springen alle drei ADC Kanäle auf 0.
Unabhängig welche ich regele, also beide Timer1 oder je einen von Timer1 und Timer0, kommt der Dritte hinzu springt alles auf 0.
Ich höffe Ihr könnt mir weiter Helfen

Anbei das Bascom Programm.
Schaltplan

Code:


$regfile = "m16def.dat"
$crystal = 16000000
$hwstack = 40
$swstack = 16
$framesize = 32

Ddrb = &HFF
Ddrd = &HFF
Ddrc = &HFF

Ddra = &H00

Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portc.4 , Db6 = Portc.3 , Db7 = Portc.2 , E = Portc.0 , Rs = Portc.1
Config Lcd = 20 * 4

Enable Interrupts


Dim Adc_rot As Word
Dim Adc_grün As Word
Dim Adc_blau As Word

Dim Pwm_rot As Word
Dim Pwm_grün As Word
Dim Pwm_blau As Word

Config Timer0 = Pwm , Compare Pwm = Clear Down , Prescale = 256
Config Timer1 = Pwm , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 256




Config Adc = Single , Prescaler = Auto , Reference = Avcc






Do

Waitms 250

Cls

Locate 1 , 1
Lcd "Motion Control @ RAU"

   Locate 2 , 1
   Lcd "ROT   "

         Gosub Rot_messen

      Pwm_rot = Adc_rot / 4

   Lcd Pwm_rot


   Locate 3 , 1
   Lcd "GRUEN "

         Gosub Grün_messen

      Pwm_grün = Adc_grün / 4

   Lcd Pwm_grün



   Locate 4 , 1
   Lcd "BLAU  "

         Gosub Blau_messen

       Pwm_blau = Adc_blau / 4

   Lcd Pwm_blau


 Ocr0 = Adc_rot
 Ocr1a = Adc_grün
 Ocr1b = Adc_blau

Loop

End



Rot_messen:

   Start Adc
   Adc_rot = Getadc(2)
   Stop Adc

Return

Grün_messen:

   Start Adc
   Adc_grün = Getadc(1)
   Stop Adc

Return

Blau_messen:

   Start Adc
   Adc_blau = Getadc(0)
   Stop Adc

Return
Klicke auf die Grafik für eine größere Ansicht

Name:	RGB Steuerung.jpg
Hits:	12
Größe:	43,7 KB
ID:	20081

Grüße Flo