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
Grüße Flo







Zitieren


Lesezeichen