ADC und PWM probleme

Gast #2456035
Lesenswert?

Hallo ich bin irgendwie zu blöd für den ADC
Ich möchte einfach ADC0 auslesen und als compare1a wert nehmen.dann adc1 
auslesen und als wert für compare1b nehmen.

Ich habe jetzt schon die ganze zeit hin und her versucht ich verstehe 
irgendwie nicht wie ich den Kanal wechsel und dann wieder das Register 
ADCH benutzen kann ohne das es Effekt auf den vorigen Kanal nimmt.Bis 
jetzt ändern sich immer beide PWM Kanäle.Warscheinlich ist es weil ich 
jedesmal adch nehme aber wie geht es richtig?

Admux = &B01100000
Adcsra = &B11010100
Sreg.7 = 1

Do
Pwm1a = Adch
Admux = &B01100001
Adcsra = &B11010100
Pwm1b = Adch
Loop
End
Gast #2456069
Lesenswert?

Hi

>aber wenn ich z.B. eine waitms einbaue geht es trotzdem nicht

Weil so etwas Unsinn ist. In 'Adcsra = &B11010100' ist das ADSC-Bit (von 
dir) versteckt. Das wird zu Starten von dir auf 1 gesetzt und vom ADC 
gelöscht, wenn er fertig ist. Also muss man nur das löschen abwarten. 
Und fertig.

Du willst übrigens ADC0 nur einmal lesen?

MfG Spess
Gast #2456107
Lesenswert?

Hi

>Ah also muss ich nur sagen wenn adsc=0 dann nächste messung und das
>ganze wieder auf 1 setzen richtig

Jain. Es geht auch mit dem ADC-Interrupt. Der wird, wenn freigegeben, 
ausgelöst, wenn der ADC fertig ist.

Außerdem ist das ständige Laden von Pwmxy auch Unsinn. Das macht man 
beim Overflow des Timers und nicht irgendwann.

Übrigens, mit Satzzeichen liest sich so etwas besser.

MfG Spess

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren