Okay, das fahren klappt jetzt super! Danke Dirk!
Aber der Servo bewegt sich nicht:
Der zuckt nur kurz und dann fährt der Rp6 weiter.Code:#include "RP6ControlLib.h" #include "RP6I2CmasterTWI.h" #include "RP6Control_I2CMasterLib.h" #include "RP6ControlServoLib.h" void watchDogRequest(void) { static uint8_t heartbeat2 = false; if(heartbeat2) { clearPosLCD(0, 14, 1); heartbeat2 = false; } else { setCursorPosLCD(0, 14); writeStringLCD_P("#"); heartbeat2 = true; } } void I2C_requestedDataReady(uint8_t dataRequestID) { checkRP6Status(dataRequestID); } void I2C_transmissionError(uint8_t errorState) { writeString_P("\nI2C ERROR - TWI STATE: 0x"); writeInteger(errorState, HEX); writeChar('\n'); } int main(void) { initRP6Control(); initLCD(); initSERVO(SERVO1); WDT_setRequestHandler(watchDogRequest); I2CTWI_initMaster(100); I2CTWI_setRequestedDataReadyHandler(I2C_requestedDataReady); I2CTWI_setTransmissionErrorHandler(I2C_transmissionError); sound(180,80,25); sound(220,80,25); setLEDs(0b1111); mSleep(500); setLEDs(0b1111); I2CTWI_transmit3Bytes(I2C_RP6_BASE_ADR, 0, CMD_SET_ACS_POWER, ACS_PWR_MED); I2CTWI_transmit3Bytes(I2C_RP6_BASE_ADR, 0, CMD_SET_WDT, true); I2CTWI_transmit3Bytes(I2C_RP6_BASE_ADR, 0, CMD_SET_WDT_RQ, true); while(true) { servo1_position = 50; move(60, FWD, DIST_CM(30), BLOCKING); servo1_position = 140; task_SERVO(); } return 0; }
Am Servo liegt es nicht, da er in einem anderen Programm klappt.
mfG
Philip







Zitieren
Lesezeichen