- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 16

Thema: Programm säubern mit vielen void()s in eigenen Tabs

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied
    Registriert seit
    28.09.2013
    Beiträge
    49

    Programm säubern mit vielen void()s in eigenen Tabs

    Mein Programm wird ziemlich umfangreich, jetzt wollte ich für verschiedene Funktionen eigene Tab s erzeugen und dann diese dort ablegen.
    Nach dem ich das gemacht habe, gibt es Probleme beim aufrufen der Funktionen. Muss ich diese irgendwie im Hauptprogramm definieren/anmelden das in anderen Tabs void() s sind die gebraucht werden ?

    Gruß

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Wenn du verschiedene .ino Dateien in einem Ordner speicherst, wird der Kompiler diese Dateien automatisch integrieren.
    Das sollte kein Problem darstellen.

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    28.09.2013
    Beiträge
    49
    ja das hätte ich auch gemacht , komisch ist das es nur mit den void() s probleme gibt mit dennen das Display angesprochen wird.
    Hab die jetzt im Hauptprogramm belassen, so funktionierst wenigstens

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Das Problem ist, dass du ein Display-Objekt ansprichst, dass der Kompiler anfangs noch nicht kennt.
    Wenn du Auslagern willst, könnte das so gehen:

    Vorher:
    Code:
    // test.ino
    #include <LiquidCrystal_I2C.h> 
    LiquidCrystal_I2C lcd(32, 4, 5, 6, 0, 1, 2, 3, 7, NEGATIVE);
    
    void setup()
    {
      ...
      createCustomChar();
      ...
    }
    ...
    void createCustomChar()
    {
      uint8_t bell[8] = {0x04,0x0E,0x0E,0x0E,0x1F,0x00,0x04};
      lcd.createChar(0, bell);
    }
    Nachher:
    Code:
    // test1.ino
    #include <LiquidCrystal_I2C.h> 
    LiquidCrystal_I2C lcd(32, 4, 5, 6, 0, 1, 2, 3, 7, NEGATIVE);
    
    void setup()
    {
      ...
      createCustomChar(lcd);
      ...
    }
    ...
    Code:
    //test2.ino
    #include <LiquidCrystal_I2C.h> 
    
    void createCustomChar(LiquidCrystal_I2C lcd)
    {
      uint8_t bell[8] = {0x04,0x0E,0x0E,0x0E,0x1F,0x00,0x04};
      lcd.createChar(0, bell);
    }
    Ich hoffe das Beispiel ist verständlich. Vorher mit integrierter void-Funktion, nachher ausgelagert. Das Display-Objekt (lcd) wird übergeben, damit es dem Kompiler zur Kompilierzeit bekannt ist.

    ODER:

    Code:
    // test3.ino
    
    void setup()
    {
      ...
      createCustomChar();
      ...
    }
    ...
    Code:
    //test4.ino
    #include <LiquidCrystal_I2C.h>
    LiquidCrystal_I2C lcd(32, 4, 5, 6, 0, 1, 2, 3, 7, NEGATIVE); 
    
    void createCustomChar()
    {
      uint8_t bell[8] = {0x04,0x0E,0x0E,0x0E,0x1F,0x00,0x04};
      lcd.createChar(0, bell);
    }
    Hierbei ist der Trick, dass die Dateien test3.ino und test4.ino im Ordner test4 liegen. Dadurch erkennt die Arduino-IDE welche Datei als erstes zu interpretieren ist.

    ODER:

    Code:
    // test5.ino
    #include <LiquidCrystal_I2C.h>
    LiquidCrystal_I2C lcd(32, 4, 5, 6, 0, 1, 2, 3, 7, NEGATIVE); 
    void setup()
    {
      ...
      createCustomChar();
      ...
    }
    ...
    Code:
    //test6.ino
    
    void createCustomChar()
    {
      uint8_t bell[8] = {0x04,0x0E,0x0E,0x0E,0x1F,0x00,0x04};
      lcd.createChar(0, bell);
    }
    Hier müssen die Dateien test5.ino und test6.ino im Ordner test5 liegen, damit es funktioniert.
    Geändert von Sisor (23.03.2014 um 08:43 Uhr) Grund: unrichtige Aussage

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    28.09.2013
    Beiträge
    49
    Alles klar danke, ich habe es verstanden . Gruß

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    16.02.2014
    Beiträge
    80
    Ich dachte genau sowas macht man mit #include? Ist das tabu für Code-Teile und wird nur für Header-Dateien verwendet?

Ähnliche Themen

  1. Unklarheit mit void Funktionen
    Von super-robman im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 29.08.2011, 19:01
  2. problem mit erstem eigenen programm
    Von rocketman123 im Forum Asuro
    Antworten: 18
    Letzter Beitrag: 03.10.2007, 18:43
  3. Thermometer mit vielen DS18S20
    Von 1100101 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 09.05.2006, 22:19
  4. anfänger mit vielen fragen =)
    Von chrikumo im Forum Motoren
    Antworten: 8
    Letzter Beitrag: 03.06.2005, 15:12
  5. Vielen, vielen Dank
    Von Weisse1 im Forum Robby CCRP5
    Antworten: 2
    Letzter Beitrag: 07.12.2004, 16:21

Berechtigungen

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

LiFePO4 Speicher Test