- LiFePO4 Speicher Test         
Ergebnis 1 bis 4 von 4

Thema: I2c

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    06.04.2010
    Beiträge
    27

    I2c

    Anzeige

    Praxistest und DIY Projekte
    Hallo Com,
    ich habe mir dieses Display von Conrad gekauft und wollte darauf(über den I2C Bus) etwas schreiben.
    Display:
    HTML-Code:
    http://www.conrad.de/ce/de/product/191621/DISPLAY-RP5RP6-BLAU-MIT-BACKLIGHT/2420181&ref=list
    Ich hab dieses Programm geschrieben:
    Code:
    #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_transmissionError);
    
        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?
    Code:
    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
    Bei leichten Depressionen hilft ein Bad mit ätherischen Ölen,bei schweren Depressionen hilft ein Bad mit Föhn.

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    39
    Beiträge
    1.516
    Hallo,

    ich hoffe Du hast das Display noch NICHT an der RP6Base (dem Mainboard) angeschlossen.
    Denn das ist NICHT für die RP6Base gedacht sondern für das RP6-M32 Erweiterungsmodul.
    Zitat Produktbeschreibung: "Es ist passend für das RP6Control M32 und RP6 CC-PRO MEGA128 Modul."

    Das Diplay hat keinen I2C Bus und natürlich ist die Pinbelegung völlig anders als beim XBUS.
    Nur die beiden Erweiterungsmodule haben einen passenden Anschluss für das Display.


    Zu dem Programm:
    Schau Dir mal in der Anleitung an was writeString denn überhaupt ist und was das machen soll.
    (das ist eine Funktion, keine Variable).
    Es wäre besser Du schreibst erstmal nur Programme für die normale Hardware des Roboters bzw. gehst die Beispiele Schritt für Schritt durch.
    Wenn Du das verstanden hast, DANN kannst Du neue Hardware in Betrieb nehmen sonst weisst Du ja nicht obs nun an der Software oder an der Hardware liegt.


    MfG,
    SlyD

  3. #3
    Erfahrener Benutzer Roboter-Spezialist Avatar von RolfD
    Registriert seit
    07.02.2011
    Beiträge
    414
    SlyD hats ja schon erklärt, dein Display hat aber so rein garnichts mit I2C zu tun... siehe auch
    http://www.rn-wissen.de/index.php/LCD-Modul_am_AVR
    und
    http://www.rn-wissen.de/index.php/I2C

    Es gibt aber Umsetzer, die man da zwischen schalten kann um aus I2C ein LCD Bus zu bedienen. So wie z.B.: http://www.trade.channaa.com/html/i2c_lcd_adapter.html

    Sowas kann man sich mit einem PCF 8574 aber auch recht einfach selbst zusammen stricken

    Mit "LCD ADAPTER I2C" in Google findest Du massenweise weitere. Conrad bietet z.B. auch echte I2C Displays, die für Dein Fall wohl besser, aber auch teuerer sind.

    Hast Du Dir eigentlich mal das Handbuch zum RP6 angesehen?
    Geändert von RolfD (24.05.2011 um 13:59 Uhr)
    Sind Sie auch ambivalent?

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    06.04.2010
    Beiträge
    27
    Ja das Handbuch hab ich mir durchgelesen.Ob ich alles verstanden habe, ist da ne andere Frage^^.Naja dann werd ich einfach nochmal von vorne anfangen,wird schon irgendwann klappen.Thx
    Bei leichten Depressionen hilft ein Bad mit ätherischen Ölen,bei schweren Depressionen hilft ein Bad mit Föhn.

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad