rp6flash
08.03.2008, 19:06
Servus mal wider,
also erstmal ganz grob: Ich hab en Problem mit der Datenübertragung über I²C. Als master benutz ich das/der/die(was auch immer) RP6base und als Slave das RP6Control. Und jetz mal der Code:
#include "RP6ControlLib.h"
#include "RP6I2CslaveTWI.h"
#define CMD_SET_LEDS 1
int main(void){
initRP6Control();
I2CTWI_initSlave(10);
initLCD();
while(true){
if(I2CTWI_writeRegisters[0] && !I2CTWI_writeBusy){
showScreenLCD("Komando","emfangen");
mSleep(2000);
uint8_t cmd = I2CTWI_writeRegisters[0];
uint8_t param1 = I2CTWI_writeRegisters[1];
uint8_t param2 = I2CTWI_writeRegisters[2];
uint8_t param3 = I2CTWI_writeRegisters[3];
uint8_t param4 = I2CTWI_writeRegisters[4];
I2CTWI_writeRegisters[0] = 0;
if(cmd == CMD_SET_LEDS){
showScreenLCD("LEDs","setzen");
externalPort.LED1 = param1;
externalPort.LED2 = param2;
externalPort.LED3 = param3;
externalPort.LED4 = param4;
outputExt();
}
}
}
return 0;
}
#include "RP6RobotBaseLib.h"
#include "RP6I2CmasterTWI.h"
#define CMD_SET_LEDS 1
int main(void) {
initRobotBase();
I2CTWI_initMaster(100);
setLEDs(0b111111);
I2CTWI_transmit2Bytes(10, 0, 1);
I2CTWI_transmit2Bytes(10, 1, 0);
I2CTWI_transmit2Bytes(10, 2, 1);
I2CTWI_transmit2Bytes(10, 3, 1);
I2CTWI_transmit2Bytes(10, 4, 1);
while(true){
}
return 0;
}
So das eigentliche Problem liegt glaube ich bei der Übertragung. Die daten vom master kommen nicht im Register an den "Komando empfangen" wird net auf meinem LCD angezeigt! Ich sitz schon paar Tage an dem Problem und jetzt hoff ich auf eure Hilfe!
Danke im voraus;-)
also erstmal ganz grob: Ich hab en Problem mit der Datenübertragung über I²C. Als master benutz ich das/der/die(was auch immer) RP6base und als Slave das RP6Control. Und jetz mal der Code:
#include "RP6ControlLib.h"
#include "RP6I2CslaveTWI.h"
#define CMD_SET_LEDS 1
int main(void){
initRP6Control();
I2CTWI_initSlave(10);
initLCD();
while(true){
if(I2CTWI_writeRegisters[0] && !I2CTWI_writeBusy){
showScreenLCD("Komando","emfangen");
mSleep(2000);
uint8_t cmd = I2CTWI_writeRegisters[0];
uint8_t param1 = I2CTWI_writeRegisters[1];
uint8_t param2 = I2CTWI_writeRegisters[2];
uint8_t param3 = I2CTWI_writeRegisters[3];
uint8_t param4 = I2CTWI_writeRegisters[4];
I2CTWI_writeRegisters[0] = 0;
if(cmd == CMD_SET_LEDS){
showScreenLCD("LEDs","setzen");
externalPort.LED1 = param1;
externalPort.LED2 = param2;
externalPort.LED3 = param3;
externalPort.LED4 = param4;
outputExt();
}
}
}
return 0;
}
#include "RP6RobotBaseLib.h"
#include "RP6I2CmasterTWI.h"
#define CMD_SET_LEDS 1
int main(void) {
initRobotBase();
I2CTWI_initMaster(100);
setLEDs(0b111111);
I2CTWI_transmit2Bytes(10, 0, 1);
I2CTWI_transmit2Bytes(10, 1, 0);
I2CTWI_transmit2Bytes(10, 2, 1);
I2CTWI_transmit2Bytes(10, 3, 1);
I2CTWI_transmit2Bytes(10, 4, 1);
while(true){
}
return 0;
}
So das eigentliche Problem liegt glaube ich bei der Übertragung. Die daten vom master kommen nicht im Register an den "Komando empfangen" wird net auf meinem LCD angezeigt! Ich sitz schon paar Tage an dem Problem und jetzt hoff ich auf eure Hilfe!
Danke im voraus;-)