
Zitat von
damaltor
die funktion itoa lässt sich nciht schachteln. sie muss einzeln aufgerufen werden:
itoa(zahlenvariable;stringvariable;zahlensystem);
also zb. itoa (i,text[],10);
Upps, stimmt, da war ich zu schnell.
@AppeL: Du musst beim Funktionskopf von PollSwitch "int PollSwitch(void)" statt "unsigned char PollSwitch(void)" schreiben.
Außerdem musst du in der asuro.h das selbe tun, auch dort wird bereits definiert, wie PollSwitch aussieht.
Besser wäre es wenn du die IR Sache direkt in die Funktion reinschreibst, also in etwa so(nicht getestet):
Code:
unsigned char PollSwitch (void)
{
unsigned int i;
unsigned char text[10]={'\0'};
DDRD |= SWITCHES; // Switches as Output
SWITCH_ON; // Output HIGH for measurement
ADMUX = (1 << REFS0) | SWITCH; // AVCC reference with external capacitor
Sleep(10);
ADCSRA |= (1 << ADSC); // Start conversion
while (!(ADCSRA & (1 << ADIF)));// wait for conversion complete
ADCSRA |= (1 << ADIF); // clear ADCIF
i = ADCL + (ADCH << 8);
itoa(i, text, 10);
SerWrite(text,10);
SWITCH_OFF;
return ((unsigned char) ((( 1024.0/(float)i - 1.0)) * 63.0 + 0.5));
}
Berichte dann von deinen Werten.
Lesezeichen