- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 18

Thema: Wie bringe ich OLED 1306 mit AVR/C ingang ?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.694
    Danke Rabenauge, danke Achim.S.

    .. teste das Ding .. mit der Lib. von Adafruit .. Und auch die Adresse kannst du so easy rausfinden: .. I2C-Scanner ..
    Libs für Arduino - na ja, ich kann KEIN "arduinolanguage", kenne auch nicht die arduino-IDE und hab sie nicht installiert. Danke für den Tip mit dem Scanner - den habe ich in (fast) allen meinen I²C-Masterplatinen. Beim Archie z.B. sucht der Zentralrechner nach seiner Peripherie (nur die I²C-Slaves) und meldet die auf die Startseite (und reagiert auch intern drauf). Also - Adressbereich softwaremässig umgestellt
    Code:
    // ============================================================================= =
     void i2clook (void)            // Welche I²C-Devices existieren? Liste ?
     {                              //                              Aufruf     main =>
    // Teste I²C-Schreibadressen von 0x70hex bis 0xAC, 112 - 254 (früher bis 0xFC)
    //   ##>> Testbereich evtl. neu definieren
    //      Erfolgsmeldung(en) ausgeben mit Adresse dez und hex, Fehlsuche mit "-"
      uint8_t jaflag = 0;           // Ja-Flag
      u8    aktptr  =       0;      // Aktuelle I²C-Adresse
    // - - - - - - - - - - - - - - -
    und siehe da, der Test bringt ein glaubhaftes Ergebnis (copy&past vom Terminal) :

    Cxxx arno_x00 328/20 16 Apr 2017 09:28
    UART0_64 110 k
    Suche I²C-Devices im Bereich 0x00/_0dez - 0xFC/252dez
    Jedes '-' bedeutet: Slave/s nicht vorhanden oder defekt
    ------------------------------------------------------------
    Slave addr 120 dez = 0x78
    ------------------------------------------------------------------
    I²C-Slaves gesucht bis (dez) 252


    .. Gibt ja kaum ein anständiges Datenblatt dazu. Scheinbar verträgt das Oled 3,3V und 5V ..
    Meins verträgt wohl die 5V - denn der Scan läuft mit 3,3 V und 5V - jeweils als Versorgung und Signalpegel.

    Ok, der erste Schritt ist also getan: das Ding reagiert auf Zuruf. Sozusagen noch immer. Jetzt kommt der schwierige(re) Teil, die softwareseitige Implementierung des Dings. Da hoffe ich, dass das nicht sooo lange dauert :-/ -- leider habe ich KEIN einziges einfaches, kurzes, verständliches Beispiel in AVR8/C gefunden :-/

    Danke allen Helfern für Ihre Mitarbeit!



    @Achim.S: das ELV Ding ist recht schick, wenn man sich mal dran gewöhnt hat. Beispiel (zufällig):
    Code:
    - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Fahre Servo 1 auf PWM 400 - und lies sofort Daten zurück
    v----- Dies ist der Befehl zum Adressieren des Targets
    v    v--- Stopbefehl
    v    v    v-- Dies ist die Adresse, ab der geschrieben wird
    s 84 p w 64  01  01  90  01  00  00  00  00  00  01  p s8460p r10p   <   <  Nur EIN Befehlsstring :-)
    hex-Adresse  64  65  66  67  68  69  6A  6B  6C  6D
    dez-Adresse 100 101 102 103 104 105 106 107 108 109
    =======================================================
    Läuft aber leider nur über das (eher gewöhnungsbedürftige HTerm)
    Geändert von oberallgeier (16.04.2017 um 10:05 Uhr) Grund: Text zurechtgerückt - war missverständlich
    Ciao sagt der JoeamBerg

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    11.08.2009
    Ort
    Berlin
    Alter
    70
    Beiträge
    348
    HTerm - ist leider "sehr" alt und seit gefühlten 10 Jahren nicht gepflegt. Besser gesagt, vergessen worden (kein Intresse mehr dran).
    Mache alles mit dem "normalen C" und bin sehr zufrieden damit. Das einzigste was fehlt ist ein gute Anbindung an den PC. Suche noch nach einer guten Lösung.
    Kennst du was dazu? oder Nachfolger von HTerm? So was vielleicht wie WLAN mit I2C Bus?
    An einem Beispiel der Einbindung vom Oled an den Bus bin ich auch interessiert. Falls du was findest.
    achim

  3. #3
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.694
    So, die chose ist geritzt. Einfach das Atmel Studio 7.? am Desktop installiert (gabs bisher nur am Notebook) und das verdaut auch die Beispiele im Netz mit den *.cpp´s. Und das Terminal zeigt schon die ersten, selbst kreierten Bitfelder (8.x.8 ) bzw. Buchstaben - mal sehen was draus wird und was man mit den selbst verwalteten 128x64 Bitfeldern anfangen kann. Seltsam sind die zwei Farben bei meinem Displays: oben ein Streifen weiß, die Hautpsache aber blau.

    @achim:
    HTerm - ist leider "sehr" alt .. Mache alles mit dem "normalen C" .. was fehlt ist ein gute Anbindung an den PC. Suche .. Lösung ..
    Alt ist ja nun kein Synonym für schlecht. Na ja, mit fast 5 MB ist es etwas sehr groß, aber zusammen mit dem ELV-USB-I²C ist es bei mir ein sehr praktisches Werkzeug. Terminal geht zum Beispiel bei br@ys Terminal auch mit knapp 300 k, für mich die beste Lösung. Ich benutze das Terminal von br@y (das 2004er) seit "Jahren" für "alles" was über UART reinkommt oder reinkommen soll. Als Adapter dazu den schicken AVR-USB von Pololu (item#: 1300) - der hat auch gleich noch ein minimalistisches 5V-DSOszilloskop.

    - - - Aktualisiert - - -

    Ein Problemchen bleibt, eine Frage.

    Beim Compilieren (des past´n´copy Codes) bekomme ich Warnungen - alledings wird (wie gewohnt bei NUR Warnung) ein lauffähiger code erstellt. Die Warnung ist wech, wenn ich den Codeteil "int i = 0" ändere gegen "unsigned int i ..".

    Fehlerbeschreibung:
    Warning comparison between signed and unsigned integer expressions [-Wsign-compare]

    bei Code:
    for (int i = 0; i < sizeof(bitmap2); ++i) {
    mit "sizeof" = highligthed

    Frage: Klar, "int" ist vorzeichenbehaftet. Aber wo(her) bekomme ich das Vorzeichen von sizeof ? Das sollte ja sinnvollerweise ein vorzeichenloser Wert sein ! ?

    Ich habe Hinweise gefunden, dass "sizeof" in der stddef.h des WinAVR-20100110 liegt, dort finde ich aber nur den Kommentar /* Unsigned type of `sizeof' something. */

    Danke für die Hilfe

    - - - Aktualisiert - - -

    Nachtrag: das "Problemchen" mit dem sign von "sizeof"
    Ciao sagt der JoeamBerg

  4. #4
    HaWe
    Gast
    hi,
    schön dass es noch funktioniert, wie es sich anhört.
    einen 3EUR Arduino würde ich mir zwar an deiner Stelle auch mal anschaffen (ist praktisch zum schnell mal austesten), aber Libs für "richtiges C" habe ich hier auch, ebenfalls auf der Basis für Adafruit Libs, aber für gcc/Linux. Vlt hilft es ja trotzdem!

    http://www.mindstormsforum.de/viewto...p=69371#p69370

    sizeof ist egal ob Datentyp Vorzeichenbehaftet ist oder nicht, es ist immer eine Ganzzahl >= +1:
    sizeof(unsigned char) == sizeof(signed char) == 1
    sizeof(unsigned int) == sizeof(signed int) == 2 (bei 8bit-AVRs)
    Geändert von HaWe (18.04.2017 um 10:43 Uhr)

  5. #5
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.694
    Kleine Ergänzung zum Projektchen hier; Thema "Flanken bei 400kHz bzw. 200 kHz" beim Oled1306.
    Ciao sagt der JoeamBerg

  6. #6
    HaWe
    Gast
    Beziehst du dich mit deinen "Flanken" auf meinen verlinkten Post zum OLED am Raspi, wo ich schreibe, dass das OLED bei 100-400kHz läuft? Hast du ein grundsätzliches 400 KHz Problem bei deinen AVRs?
    Bei meinen Raspis hatte ich noch keine Probleme bei FAST I2C beobachtet (400 kHz, 3.3V), darauf bezog sich ja mein Hinweis, und nicht auf AVRs. Weiterhin laufen weitere Geräte ebenfalls störungsfrei bei 400kHz auf demselben Bus (ein 3x3D-IMU und 2 MCP23017).
    Bei 100kHz jedenfalls läuft es ziemlich quälend langsam und bremst die Programme unglaublich aus, wenn man die OLED-Anzeige-Routinen nicht in eigenen threads laufen lässt, und auch die restlichen I2C Geräte auf demselben Bus werden dann bei 100kHz ebenso erheblich ausgebremst.

  7. #7
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.694
    Beziehst du dich mit deinen "Flanken" auf meinen verlinkten Post zum OLED ..
    Nein......
    Ciao sagt der JoeamBerg

Ähnliche Themen

  1. OLED leuchtet eigenartig
    Von Siro im Forum Elektronik
    Antworten: 6
    Letzter Beitrag: 12.12.2014, 22:18
  2. Bringe Pro-Bot128 nicht zum laufen -.-
    Von light.on im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 1
    Letzter Beitrag: 14.02.2010, 10:47
  3. OLED Adapter
    Von TomT. im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 2
    Letzter Beitrag: 28.07.2009, 21:39
  4. wie bringe ich ihm das Fliegen bei?
    Von Papa Schlumpf im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 36
    Letzter Beitrag: 03.05.2006, 16:03
  5. Ich bringe mein 4*20 LCD nicht zum laufen
    Von Dane im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 18.07.2005, 19:31

Berechtigungen

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

12V Akku bauen