Zitat Zitat von SlyD
Hallo,

in dem Beispielprogramm wird task_RP6System() verwendet und diese Funktion enthält schon den Aufruf von task_ADC().
Genau wie alles andere was so benötigt wird (Motorregelung, ACS, IRCOMM, ADCs, Bumper).
Eigentlich musst Du nur immer task_RP6System() in der Hauptschleife aufrufen.

MfG,
SlyD
wo wird denn dann in diesem programm task_RP6System() aufgerufen?


Code:
// Uncommented Version of RP6Base_LightDetection.c
// written by Dominik S. Herwald
// ------------------------------------------------------------------------------------------

#include "RP6RobotBaseLib.h" 


#define RANGE 15     

void task_LDRinfo(void)
{
	uint16_t left, right;

	if(getStopwatch1() > 200)
	{
		writeString_P("LDR_L: ");
		writeIntegerLength(adcLSL, DEC, 4);
		writeString_P(" ; LDR_R: ");
		writeIntegerLength(adcLSR, DEC, 4);
		
		writeString_P(" ||");
		if(adcLSL >= RANGE && adcLSR >= RANGE)
		{
			int16_t dif = ((int16_t)(adcLSL - adcLSR));
			if(dif > 160) dif = 160;
			if(dif < -160) dif = -160;

			if(dif > 140)
				setLEDs(0b111000);
			else if(dif > 75)
				setLEDs(0b011000);
			else if(dif > 35)
				setLEDs(0b001000);
			else if(dif > -35)
				setLEDs(0b001001);
			else if(dif > -75)
				setLEDs(0b000001);
			else if(dif > -140)
				setLEDs(0b000011);
			else 
				setLEDs(0b000111);
				
			if(adcLSL < (adcLSR - RANGE)) 
				writeString_P("   L < R # ");
			else if(adcLSR < (adcLSL - RANGE)) 
				writeString_P(" # L > R   ");
			else 
				writeString_P("   L = R   ");
		}
		else  
		{
			writeString_P(" It is very dark!");
			if(adcLSL < adcLSR) 
			{
				setLEDs(0b010110);
				writeString_P("   L < R # ");
			}
			else if(adcLSR < adcLSL) 
			{
				setLEDs(0b110010);
				writeString_P(" # L > R   ");
			}
			else 
			{
				setLEDs(0b011011);
				writeString_P("   L = R   ");
			}
		}
		
		writeString_P(" || UBAT: ");
		writeIntegerLength(adcBat, DEC, 3);
		writeChar('\n');
		if(adcBat < 600) 
		{
			writeString_P("WARNING: BAT IS LOW!\n");
			writeChar('\n');
		}
		setStopwatch1(0);
	}
}

int main(void)
{
	initRobotBase();
    writeString_P("\nRP6Loader - LDR Testprogram\n");
	writeString_P("___________________________\n\n");

	setLEDs(0b111111);
	mSleep(1000);
	setLEDs(0b000000);

	startStopwatch1();

	while(true) 
	{
		task_LDRinfo();
	}
	return 0;
}
mfg