Hallo allemaal,
ik ben op dit moment bezig met een project,,het is een robot met twee sensoren en ik gebruik atmega32l voor besturing.
De sensoren geven allebei een analoge waarde die tussen 0.5V en 5V varieren.
Het lukt mij wel om deze twee sensoren apart analoog naar digitaal om te zetten met A/D ingangen van de uC, maar tegelijk lukt het niet.
Ik wil voor deze sensoren twee aparte ingengen gebruiken van A/D en achter elkaar de waardes meten en de waarde die ze geven apart behandelen. Voor 1 sensor gebruik ik dit code:
interrupt [ADC_INT] void adc_isr(void)
{
double adc_data;
adc_data = ADCW;
if ((adc_data >=(0.8*1023)/5.0)) {
teller1 = 1;
}
ADCSRA|=0x40;
}
Ik heb gebprobeerd om in het zelfde interrupt een tweede variabele maken en en die gelijk stellen aan ADCW,,maar ik kreeg error:
interrupt [ADC_INT] void adc_isr(void)
{
double adc_data;
adc_data = ADCW;
double adc_data1;
adc_data1 = ADCW;
if ((adc_data >=(0.8*1023)/2.8)) {
teller1 = 1;
}
if ((adc_data1 >=(0.8*1023)/2.8)) {
teller2 = 1;
}
ADCSRA|=0x40;
}
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Je pakt nu het resultaat van de AD conversie, en stopt die in twee variabelen. Daarna ga je 2x kijken of ie groter is dan een bepaalde waarde.
Mij best hoor, maar zo krijg je dus niet de twee inputs verwerkt.
Dit zou WEL moeten compileren. Als dat het niet doet, zit er een stomme fout in, die ik met het handje niet zie. Daarom geeft jou compiler foutmeldingen met regelnummers er bij.....
Je moet de AD converter instellen om de ene uit te rekenen. Dat je met de ene bezig bent, stop je ook in een variabele. Als de AD-klaar-interrupt gebeurt, zie je dat de ene conversie klaar is, Dus je stopt het resultaat in de ene variabele, en gaat daarmee verder.
Vervoglens stel je de AD converter in om de andere input te gebruiken, en start je nog een conversie. Ook je waar-je-mee-bezig-bent variabele moet geupdate worden.