- 12V Akku mit 280 Ah bauen         
Seite 7 von 19 ErsteErste ... 5678917 ... LetzteLetzte
Ergebnis 61 bis 70 von 183

Thema: Problem Beim Programmieren vom LCD

  1. #61
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.066
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Zitat Zitat von damaltor
    wenn ich die jumper (einen oder mehrere) ziehe, scheint das ne reine glückssache zu sein. habe den selbsttest wieder geflasht, und mal gehts, mal nicht. die led blinkt unregelmässig rot und grün.
    habe jetzt die beiden widerstände r14 und r15 entfernt. jetzt passiert folgendes:

    der pcf arbeitet weiterhin einwandfrei.
    wenn die flaschen jumper gesetzt werden, dann ist die led zuerst mal rot, und die an den pcf angeschlossenen leds bleiben aus. allerdings: sowie man den asuro, spezielle die jumper (bzw deren pins) berührt oder in die nähe kommt, spricht der baustein an und macht das, was er bei gesetzten jumpern auch mache sollte. die led wird grün, und der portbaustein setzt die ports entsprechend so dass die an ihn angeschlossenen leds leuchten.

    wenn alle jumper entfernt wurden wird es ein wenig komplexer, dann passiert das nur noch seehr selten.

    wenn ich die ganze erweiterungsplatine entferne, also NICHTS an die leitungen SDA und SCL angeschlossen ist (auch keine pullups, die sind auf der erweiterungsplatine), dann ist die led zuerst grün, und wird dan rot, gelegentlich wieder grün... wechelhaft eben =) scheint so, als wenn bei undefiniertem zustand der leitungen nix halbes und nix ganzes passiert.
    meine frage: hat der atmega nicht eigene, integrierte pullups? wie werden die aktiviert (also für adc3 und adc2)? wie vertragen die sich mit den pullups die auf der erweiterungsplatine drauf sind? und vor allem: werden die evtl schon in der i2cmaster library angesprochen?
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  2. #62
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    27.11.2006
    Ort
    Hamburg
    Alter
    35
    Beiträge
    184
    Hey, in der datenblatt von deiner LCD steht, dass die Pullups möglichst klein sein soll: 1k8...10K, vllt, wenn du z.B: 4.7k nimmst passiert es seltener....
    Gruß Raid

    Der ^^ Mann

  3. #63
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.12.2006
    Ort
    Saarland
    Alter
    44
    Beiträge
    314
    problem habe nur noch einen leider

    edit: ich esel habe doch 2 beim alten asuro ist noch einer drin ich werde e heute mittag versuchen


    So jetzt habe ich hin bekommen das er sich nemmer ausschaltet sobald die statusLED grün wird ich glaube es hängt mit der i2cmaster.S datei zusammen ich komme immer ein stückchen näher habe ich das gefühl nur jetzt weiss ich leider nicht mehr weiter habe alles in hexdez ausgerechnet und auf ein blatt geschrieben dann habe ich von m.a.r.v.i.n den link noch mal angeschaut und es so eingetragen (alles) wie es auch da stand nur leider sehe ich immer noch kein curser und kein text

  4. #64
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    27.11.2006
    Ort
    Hamburg
    Alter
    35
    Beiträge
    184
    Hi probiere dies mal:

    Code:
    #include "asuro.h"
    #include "i2cmaster.h"
    
    #define  DEVICE 0x74  // LCD I2C Address
    
    
    int main(void)
    {
    	Init();
    	i2c_init();
    	
    	// LCD Init
    	i2c_start_wait(DEVICE+I2C_WRITE);
    	i2c_write(0x00);
    	i2c_write(0x2C);
    	i2c_write(0x0E);
    	i2c_write(0x06);
    	i2c_stop();
    	
    	// Write P
    	i2c_start_wait(DEVICE+I2C_WRITE);
    	i2c_write(0x40);
    	i2c_write(0x50);
    	i2c_stop();
    	
    	while(1);
    	
    	return 0;
    }
    Gruß Raid

    Der ^^ Mann

  5. #65
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Hi,

    ich hab mir auch noch mal das Datenblatt angeschaut und komme auf das gleiche Ergebnis wie damaltor und raid_ox.

    Hier noch mal mein Beispielcode für das EA T123. Initialisierung und Textausgabe in Subroutinen. Delay auf 1ms reduziert. Status LED sollte eine halbe Sekunde gelb leuchten, wenn Init erfolgreich war, dann grün. Rot bei Fehler.
    Code:
    #include <avr/io.h>
    #include "i2cmaster.h"
    #include "asuro.h"
    
    #define Display   0x74      // device address of Display, see datasheet
    
    int lcd_init(void)
    {
      int ret=0;
    
       Msleep(500);
       ret = i2c_start(Display+I2C_WRITE); //hier wird der I2C bus gestartet und die adresse
       if ( ret )             //geschrieben
          {
          i2c_stop();         //sollte das nicht gehn, abbrechen
          return -1;
          }
       i2c_write(0x00);      //controll byte (muss gesendet werden laut datenblatt)
       Msleep(1);
       i2c_write(0x2C);      //die nächsten bitfolgen bzw werte sind aus dem daten-
       Msleep(1);         //blatt kopiert. sollte eigentlich das display
       i2c_write(0x0E);      //einschalten und den corsur nach oben
       Msleep(1);         //links setzen.
       i2c_write(0x06);      //einzige änderung: da nicht dual power sondern
    nicht
                   //+5V und -5V) habe ich das G-bit auf 1 geändert.
                   //single supply genutzt wird (also nur +5V und gnd und    
      i2c_stop();         
      Msleep(10);
      return 0;
    }
    
    int lcd_write(char *text)
    {
      int ret=0;
      unsigned char i = 0;
      
      ret = i2c_start(Display+I2C_WRITE); //hier wird der I2C bus gestartet und die adresse
       if ( ret )             //geschrieben
          {
          i2c_stop();         //sollte das nicht gehn, abbrechen
          return -1;
          }
       i2c_write(0x40);      //controll byte (muss gesendet werden laut datenblatt)
      while(text[i] != 0)
      {
         i2c_write(text[i++]);
         Msleep(1);         
      }
      i2c_stop();    
      return 0;     
    }
    
    
    int main(void)
    {
       int ret;
    
       Init();
       i2c_init();
       
       ret = lcd_init();    // LCD Initialisieren
       if (ret == 0)
       {
          StatusLED(YELLOW);
          ret = lcd_write("Test");     // LCD Textausgabe
          if (ret == 0)
          {
            Msleep(500);
            StatusLED(GREEN);        
          }
          else 
            StatusLED(RED);           // Fehler beim LCD schreiben
       }
       else 
          StatusLED(RED);            // Fehler beim LCD init
    
       while(1);    
          
      return 0;
    }
    Ansonsten zur Hardware noch den Tip, am Kontrastregler drehen. Die Kontrastspannung VEE sollte ca 1V oder darunter betragen.

  6. #66
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.12.2006
    Ort
    Saarland
    Alter
    44
    Beiträge
    314
    Jo ich komme auch immer auf das ergebniss ich glaube auch ganz erlich nicht daran das es daran ligt irgendwo irgend wie übersehe ich (wir) was ich weiss nur net was vllt ligt es wirklich an den 10k ohm was ich mir allerdings nicht vorstellen kann ich besorge mir auf der arbeit noch ein 4,7k ohm wiederstand beim asuro war der wiederstand nur noch 4 k ohm also denke ich das der kaputt ist in der zeit Suche ich was das zeug hält um den fehler zu finden werde vllt mal mit dem schreiben von m.a.r.v.i.n´s link der hat es ja offensichtlich hin bekommen

    Irgendwie glaube ich das es daran hängt ob die codes richtig sind
    Code:
    #define EAT123A-I2C   0x74      // device address of PFC 2116-C, see datasheet
    
     int main(void)
     {
         unsigned char ret;
    
         i2c_init();                             // initialize I2C library
    
         // write 0x75 to EEPROM address 5 (Byte Write) 
         i2c_start_wait(EAT123A-i2c+I2C_WRITE);     // set device address and write mode
         i2c_write(0x05);                        // write address = 5
         i2c_write(0x75);                        // write value 0x75 to EEPROM
         i2c_stop();                             // set stop conditon = release bus
    
    
         // read previously written value back from PFC address 5 
         i2c_start_wait(EAT123A-i2c+I2C_WRITE);     // set device address and write mode
    
         i2c_write(0x05);                        // write address = 5
         i2c_rep_start(EAT123A-i2c+I2C_READ);       // set device address and read mode
    
         ret = i2c_readNak();                    // read one byte from EEPROM
         i2c_stop();
    
         for(;;);
     }

  7. #67
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.12.2006
    Ort
    Saarland
    Alter
    44
    Beiträge
    314
    Zitat Zitat von m.a.r.v.i.n
    Hi,

    ich hab mir auch noch mal das Datenblatt angeschaut und komme auf das gleiche Ergebnis wie damaltor und raid_ox.

    Hier noch mal mein Beispielcode für das EA T123. Initialisierung und Textausgabe in Subroutinen. Delay auf 1ms reduziert. Status LED sollte eine halbe Sekunde gelb leuchten, wenn Init erfolgreich war, dann grün. Rot bei Fehler.
    Code:
    #include <avr/io.h>
    #include "i2cmaster.h"
    #include "asuro.h"
    
    #define Display   0x74      // device address of Display, see datasheet
    
    int lcd_init(void)
    {
      int ret=0;
    
       Msleep(500);
       ret = i2c_start(Display+I2C_WRITE); //hier wird der I2C bus gestartet und die adresse
       if ( ret )             //geschrieben
          {
          i2c_stop();         //sollte das nicht gehn, abbrechen
          return -1;
          }
       i2c_write(0x00);      //controll byte (muss gesendet werden laut datenblatt)
       Msleep(1);
       i2c_write(0x2C);      //die nächsten bitfolgen bzw werte sind aus dem daten-
       Msleep(1);         //blatt kopiert. sollte eigentlich das display
       i2c_write(0x0E);      //einschalten und den corsur nach oben
       Msleep(1);         //links setzen.
       i2c_write(0x06);      //einzige änderung: da nicht dual power sondern
    nicht
                   //+5V und -5V) habe ich das G-bit auf 1 geändert.
                   //single supply genutzt wird (also nur +5V und gnd und    
      i2c_stop();         
      Msleep(10);
      return 0;
    }
    
    int lcd_write(char *text)
    {
      int ret=0;
      unsigned char i = 0;
      
      ret = i2c_start(Display+I2C_WRITE); //hier wird der I2C bus gestartet und die adresse
       if ( ret )             //geschrieben
          {
          i2c_stop();         //sollte das nicht gehn, abbrechen
          return -1;
          }
       i2c_write(0x40);      //controll byte (muss gesendet werden laut datenblatt)
      while(text[i] != 0)
      {
         i2c_write(text[i++]);
         Msleep(1);         
      }
      i2c_stop();    
      return 0;     
    }
    
    
    int main(void)
    {
       int ret;
    
       Init();
       i2c_init();
       
       ret = lcd_init();    // LCD Initialisieren
       if (ret == 0)
       {
          StatusLED(YELLOW);
          ret = lcd_write("Test");     // LCD Textausgabe
          if (ret == 0)
          {
            Msleep(500);
            StatusLED(GREEN);        
          }
          else 
            StatusLED(RED);           // Fehler beim LCD schreiben
       }
       else 
          StatusLED(RED);            // Fehler beim LCD init
    
       while(1);    
          
      return 0;
    }
    Ansonsten zur Hardware noch den Tip, am Kontrastregler drehen. Die Kontrastspannung VEE sollte ca 1V oder darunter betragen.

    So weit kommt er nicht die LED wird grün und das wars die status LED wird nur gelb wenn ich den asuro an mache (leider)

  8. #68
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.066
    dann scheint wirklich irgend etwas falsch angeschlossen zu sein oder das display ist wirklich defekt.
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  9. #69
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.12.2006
    Ort
    Saarland
    Alter
    44
    Beiträge
    314
    jo ich weiss ja auch net ich versuche es jetzt zuerst mal mit den 4,7k ohm wiederständen weil überall lese ich das es 4,7k ohm sein sollten und wenn das dann immer noch nichts bringt ruf ich bei connrad an und lasse mir ein neuen schicken. Ich poste dann morgen wieder was draus geworden ist mit den wiederständen

  10. #70
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    27.11.2006
    Ort
    Hamburg
    Alter
    35
    Beiträge
    184
    vielleicht hast du irgend eine Leiterbahn kaputtgemacht. Schick doch endlich ein closeup bild von deinem Asuro mit LCD, aufdem man die verbindung etc. sehen kann
    Gruß Raid

    Der ^^ Mann

Seite 7 von 19 ErsteErste ... 5678917 ... LetzteLetzte

Berechtigungen

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

12V Akku bauen