DerNeuling
24.05.2011, 12:59
Hallo Com,
ich habe mir dieses Display von Conrad gekauft und wollte darauf(über den i2C Bus) etwas schreiben.
Display:
http://www.conrad.de/ce/de/product/191621/DISPLAY-RP5RP6-BLAU-MIT-BACKLIGHT/2420181&ref=listIch hab dieses Programm geschrieben:
#include "RP6RobotBaseLib.h"
#include "RP6I2CmasterTWI.h"
void I2C_transmissionError(uint8_t errorState)
{
writeString_P("\nI2C ERROR - TWI STATE: 0x");
writeInteger(errorState, HEX);
writeChar('\n');
}
#define PCF8574_LCD_ADR 0x70
void task_meinProg(void)
{
static uint8_t writeString_P = 3;
if(writeString_P == 3)
I2CTWI_transmitByte(PCF8574_LCD_ADR, (writeString_P) );
writeString_P("Hallo,ich bin Robby!\n");
}
int main(void)
{
initRobotBase();
I2CTWI_initMaster(100);
I2CTWI_setTransmissionErrorHandler(I2C_transmissio nError);
setLEDs(0b111111);
mSleep(500);
setLEDs(0b000000);
powerON();
while(true)
{
task_I2CTWI();
task_RP6System();
}
return 0;
} Leider hat das ganze nicht funktioniert.
Also habe ich nun ein paar Fragen:
Wo muss ich das Display genau anschließen( XBUS1,XBUS2,USRBUS2,USRBUS1)?
Woher weiß ich welche Adresse ich ansteuern muss?
I2CTWI_transmit2Bytes(10, 2, 128 ) Das stand in der Anleitung(10 ist die Adresse und der Rest sind Bytes)Wie mache ich daraus den Befehl,dass das Display "Hallo,ich bin Robby!" schreibt?
void task_meinProg(void)
{
static uint8_t writeString_P = 3;
if(writeString_P == 3)
I2CTWI_transmitByte(PCF8574_LCD_ADR, (writeString_P) );
writeString_P("Hallo,ich bin Robby!\n");
} Dieser Teil bereitet mir die meisten Probleme.Ich muss writeString_P definieren,das sagte mir jedenfalls Porgrammers Notepad bei den Fehlern.
ich habe dann wie in einem Beispielprogramm eifnach mal die Zahl 3 eingesetzt,wie löse ich das ganze jetzt?
mfG
ich habe mir dieses Display von Conrad gekauft und wollte darauf(über den i2C Bus) etwas schreiben.
Display:
http://www.conrad.de/ce/de/product/191621/DISPLAY-RP5RP6-BLAU-MIT-BACKLIGHT/2420181&ref=listIch hab dieses Programm geschrieben:
#include "RP6RobotBaseLib.h"
#include "RP6I2CmasterTWI.h"
void I2C_transmissionError(uint8_t errorState)
{
writeString_P("\nI2C ERROR - TWI STATE: 0x");
writeInteger(errorState, HEX);
writeChar('\n');
}
#define PCF8574_LCD_ADR 0x70
void task_meinProg(void)
{
static uint8_t writeString_P = 3;
if(writeString_P == 3)
I2CTWI_transmitByte(PCF8574_LCD_ADR, (writeString_P) );
writeString_P("Hallo,ich bin Robby!\n");
}
int main(void)
{
initRobotBase();
I2CTWI_initMaster(100);
I2CTWI_setTransmissionErrorHandler(I2C_transmissio nError);
setLEDs(0b111111);
mSleep(500);
setLEDs(0b000000);
powerON();
while(true)
{
task_I2CTWI();
task_RP6System();
}
return 0;
} Leider hat das ganze nicht funktioniert.
Also habe ich nun ein paar Fragen:
Wo muss ich das Display genau anschließen( XBUS1,XBUS2,USRBUS2,USRBUS1)?
Woher weiß ich welche Adresse ich ansteuern muss?
I2CTWI_transmit2Bytes(10, 2, 128 ) Das stand in der Anleitung(10 ist die Adresse und der Rest sind Bytes)Wie mache ich daraus den Befehl,dass das Display "Hallo,ich bin Robby!" schreibt?
void task_meinProg(void)
{
static uint8_t writeString_P = 3;
if(writeString_P == 3)
I2CTWI_transmitByte(PCF8574_LCD_ADR, (writeString_P) );
writeString_P("Hallo,ich bin Robby!\n");
} Dieser Teil bereitet mir die meisten Probleme.Ich muss writeString_P definieren,das sagte mir jedenfalls Porgrammers Notepad bei den Fehlern.
ich habe dann wie in einem Beispielprogramm eifnach mal die Zahl 3 eingesetzt,wie löse ich das ganze jetzt?
mfG