Gast
#562715
hallo
das folgende programm soll werte über den ADC lesen, und entsprechend
PWM frequenzen verändern
ich verwende den timer1
solange ich lediglich die routine für OCR1A durchlaufen lasse, verändert
sich die frequenz der pwm wie gewünscht bei verändern der entsprechenden
eingangsspannung.
sobald ich nun aber eine zweite spannung messen lasse und versuche eine
2. frequenz mittels OCR1B erzeugen zu lassen, beeinflussen plötzlich
beide ADC messwerte die frequenzen beider OCRs..
ich denke es ist bloss ne sache der konfiguration des Timer1? was hab
ich übersehn?
mfg
.include "m16def.inc"
.def temp1=r16
.def temp2=r17
init:
ldi temp1, LOW(RAMEND)
out SPL, temp1
ldi temp1, HIGH(RAMEND)
out SPH, temp1
;OC1A/B
ldi temp1, 1<<COM1A1 |1<<COM1B1 | 1<<WGM11 | 1<<WGM10
out TCCR1A, temp1
ldi temp1, 1<<CS11
out TCCR1B, temp1
sbi DDRD,4
sbi DDRD,5
main:
;OCR1A
ldi temp1,0b01000000
out ADMUX, temp1
ldi temp1,0b11000010
out ADCSRA, temp1
waitadc1:
sbic ADCSRA,ADSC
rjmp waitadc1
in temp1,ADCL
in temp2,ADCH
out OCR1AH,temp2
out OCR1AL,temp1
clr temp1
clr temp2
;rjmp main ;- wenn gesetzt, geht alles wie gewünscht -
;OCR1B
ldi temp1,0b01000001
out ADMUX, temp1
ldi temp1,0b11000010
out ADCSRA, temp1
waitadc2:
sbic ADCSRA,ADSC
rjmp waitadc2
in temp1,ADCL
in temp2,ADCH
out OCR1BH,temp2
out OCR1BL,temp1
clr temp1
clr temp2
rjmp main