-         

Ergebnis 1 bis 2 von 2

Thema: RP6 Überstromereignis

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    09.09.2004
    Ort
    BitteKeinePrivatenDatenAngeben! Danke!
    Beiträge
    63

    RP6 Überstromereignis

    Anzeige

    Der RP6 hält nach einigen Sekunden alle Motoren an, lässt die vier roten LEDs blinken und gibt folgendes aus:

    Code:
    ##### EMERGENCY SHUTDOWN #####
    ##### ALL OPERATIONS STOPPED TO PREVENT ANY DAMAGE! #####
    
    ### ENCODER (OR MOTOR) MALFUNCTION! ###
    Affected channel:LEFT!
    
    (s. task_motorControl() function in RP6Lib!)
    You need to check Encoder/Motor assembly (or your software).
    
    The Robot needs to be resetted now.
    Das hier ist mein Programmcode:

    Code:
    #include "RP6RobotBaseLib.h"      
    
    #include "RP6I2CmasterTWI.h" 
    
    #define   SRF02   0xE2
    
    uint8_t srfbuffer[2]; 
    uint16_t distance = 200;
    
    void obstacle(void)
    {
    	moveAtSpeed(0,0);
    }
    
    
    // Main: 
    
    int main(void) 
    { 
       initRobotBase(); 
       setLEDs(0b111111); 
       mSleep(1000); 
       setLEDs(0b100100); 
       I2CTWI_initMaster(100);
       moveAtSpeed(100,100);
        
       // Main loop 
       while(true) 
       { 
    	  task_motionControl();
    	  task_ADC();
    	  
          I2CTWI_transmit2Bytes(SRF02, 0, 81); 
          mSleep(65); 
          I2CTWI_transmitByte(SRF02, 2); 
    
          I2CTWI_readBytes(SRF02, srfbuffer, 2);
          distance = (srfbuffer[0] << 8) + srfbuffer[1]; 
    	  
    	  if( (distance < 50))
    		obstacle();
    
          //writeString_P("\n distance:"); 
          //writeInteger(distance,DEC);
    	  
    	  mSleep(500);
        
       } 
        
       return 0; 
    }
    Wenn ich moveAtSpeed(100,100) durch moveAtSpeed(0,100) ersetze passiert dasselbe, nur dass der Affected Channel dann RIGHT ist.

    Das Selftest-Programm läuft einwandfrei, d.h. ein Hardwarefehler ist auszuschliessen.

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    17.07.2010
    Beiträge
    45
    Ich hab Ihn seit dem 24. kann aber glaube ich helfen:
    Du musst "powerON();" aufrufen (ich glaube um die Motorkomponenten mit Strom zu versorgen)

    Tu das am besten nach "initRobotBase();", da ist es kein Problem.

    Steht glaub ich irgendwo in ner PFD Datei (Ist kein Überstromereigniss, soweit ich weiss)

Berechtigungen

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