(ATmega88-hoz, STK500 tavír).
Egyszerűen nem értem: adott az alábbi program - sima 8 bites átalakítás.
Amikor csak az egyik, vagy másik ADC bemeneti függvényt futtatom, akkor minden rendben van. Azonban, amikor mindkét bemenethez tartozó ADC-t futtatom, akkor mindkét bemenet hatással van mindkét kimenetre.
Lefordítva: amikor a "poti" változóhoz tartozó bemenetet változtatom, akkor az a "motor" változót is befolyásolja.
Meg tudnátok mondani, hogy mit rontottam el? Előre is köszönöm a válaszokat.
És elnézést, de nem tudom, hogyan kell külön ablakos csatolást alkalmazni.
16. szerkesztésem: azt észrevettem, hogy egy 10ms késleltetés segít, de nem értem, hogy miért.
Kód: Egész kijelölése
int main(void)
{
DDRB = 140;
DDRC = 0;
DDRD = 255;
while(1)
{
CHKpoti();
_delay_ms(10);
CHKmotor();
_delay_ms(10);
PORTD = poti;
// PORTD = motor;
}
}
int CHKpoti(void) // Poti
{
PRR = 0;
ADMUX = (1<<ADLAR)|(1<<MUX1)|(1<<MUX0);
ADCSRA = (1<<ADEN)|(1<<ADSC);
while (!(ADCSRA & (1<<ADIF)))
;
poti = ADCH;
}
int CHKmotor(void)
{
PRR = 0;
ADMUX = (1<<ADLAR)|(1<<MUX1);
ADCSRA = (1<<ADEN)|(1<<ADSC);
while (!(ADCSRA & (1<<ADIF)))
;
motor = ADCH;
}