PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : batterie programm nun über das controlboard



carlitoco
08.06.2008, 21:26
Ok das war bisher mein Batterie-status code, diesen
würde ich gern der Übung halber mal über das M32 Control laufen lassen.
Ich habe da schon einiges mit den Libs aus den ControlExamples versucht, es aber noch nciht zum laufen bekommen...

könnte mir da jeand helen ?

grüsse


#include "RP6RobotBaseLib.h"



int main(void)


{


initRobotBase();
powerON(); // Turn on Encoders, Current sensing, ACS and Power LED.

setACSPwrMed();



// Main loop

while(true)

{
if(adcBat > 800)
setLEDs(0b001001);

else if(adcBat < 801 && adcBat > 750)
{
writeString_P("under 800 mV\n");
statusLEDs.LED4 = !statusLEDs.LED4;
statusLEDs.LED1 = !statusLEDs.LED1;
updateStatusLEDs();
}

else if(adcBat < 751 && adcBat > 700)
{
writeString_P("under 750 mV\n");
setLEDs(0b000001);
}

else if(adcBat < 701 && adcBat > 680)
{
writeString_P("under 700 mV\n");
statusLEDs.LED1 = !statusLEDs.LED1;
updateStatusLEDs();
}
else if(adcBat < 681 && adcBat > 600)
setLEDs(0b000010);

else if(adcBat < 601 && adcBat > 500)
{ mSleep (5000);
if (adcBat > 609)
{ powerON(); // Turn on Encoders, Current sensing, ACS and Power LED.setACSPwrMed();

}
else if (adcBat < 609)


}
setStopwatch1(0);





task_RP6System();


}

return 0;

}

Dirk
08.06.2008, 22:33
Hallo carlitoco,

wenn du in die RP6Base das Programm "RP6Base_I2CSlave.c" lädst und in die Control M32 "Example_06_I2CMaster.c", dann hast du da ja das Lesen aller RP6 Register mit drin, also auch ein Beispiel, die Akkuspannung zu lesen.
Dann brauchst du das eigentlich nur noch zu vereinfachen... O:)

Gruß Dirk

carlitoco
08.06.2008, 23:23
ok und woher weiss ich welcher sensor welchem register zugeordnet ist ?

--in welcher lib ist das?

gruss und danke 8)

RP6conrad
09.06.2008, 16:41
Da gibt eine schone Funktion in die Masterlib von M32 : getAllSensors. Dan wirden alle ADC Werte von Base ueber Ic2 uebertragen an das M32. Dan kannst du gleich in deine M32 Program die Werte adcBat auswerten.

carlitoco
10.06.2008, 08:04
danke vielmals werde das gleich mal coden und posten.

carlitoco
10.06.2008, 09:11
sorry also ich finde deine "Masterlib" nicht welche meinst du?
RP6ControlLib.c, RP6ControlLib.h ?

RP6I2CMasterTWI.c RP6I2CMasterTWI.h?

Dirk
10.06.2008, 10:14
Ich denke, RP6conrad meint die Funktion "void readAllRegisters(void)" aus dem M32 Example "RP6Control_06_I2CMaster.c".

Diese Funktion legt alle Register in RP6data[32] ab.

Wenn du sehen willst, was da alles drin ist:
Im Programm "RP6Base_I2CSlave.c" steht das im Abschnitt "// I2C".

Gruß Dirk

RP6conrad
10.06.2008, 16:42
getAllSensors :
Diese Function wird genutzt in das Beispiel 10Move_2.c Die Function selbst findts du in die RP6Control_I2C_Masterlib das bei diesen Project gehort.