- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 8 von 8

Thema: batterie programm nun über das controlboard

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.12.2007
    Ort
    Berlin
    Alter
    40
    Beiträge
    211

    batterie programm nun über das controlboard

    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

    Code:
    #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;
    
    }

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    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...

    Gruß Dirk

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.12.2007
    Ort
    Berlin
    Alter
    40
    Beiträge
    211
    ok und woher weiss ich welcher sensor welchem register zugeordnet ist ?

    --in welcher lib ist das?

    gruss und danke

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    09.04.2008
    Beiträge
    384
    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.

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.12.2007
    Ort
    Berlin
    Alter
    40
    Beiträge
    211
    danke vielmals werde das gleich mal coden und posten.

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.12.2007
    Ort
    Berlin
    Alter
    40
    Beiträge
    211
    sorry also ich finde deine "Masterlib" nicht welche meinst du?
    RP6ControlLib.c, RP6ControlLib.h ?

    RP6I2CMasterTWI.c RP6I2CMasterTWI.h?

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    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

  8. #8
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    09.04.2008
    Beiträge
    384
    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.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen