-         

Ergebnis 1 bis 2 von 2

Thema: tvout +i2c

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    20.02.2014
    Beiträge
    20

    tvout +i2c

    Anzeige

    hi

    ich habe volgendes programm und folgende fehlermeldung . wo liegt das problem? die variablen sind doch initialisiert

    #include <TVout.h>
    #include <fontALL.h>
    #include <Wire.h>

    TVout TV;

    void setup()
    {
    TV.begin(_PAL, 128, 96);
    TV.clear_screen();
    TV.select_font(font6x;
    Wire.begin(4); // join I2C bus with address #4
    Wire.onReceive(receiveEvent); // register event
    Serial.begin(9600); // start serial for output

    int control;
    int a;
    }

    void loop()
    {
    TV.clear_screen();
    TV.print(10,10, a );
    int b == a ;
    if ( b == a )
    {delay (100);}
    }

    // function that executes whenever data is received from master
    // this function is registered as an event, see setup()
    void receiveEvent(int howMany)
    {
    while(1 < Wire.available()) // loop through all but the last
    {
    char c = Wire.read(); // receive byte as a character
    Serial.print(c); // print the character
    }
    int x = Wire.read(); // receive byte as an integer
    Serial.println(x); // print the integer
    a = x;
    }

    slave_receiver.ino: In function 'void loop()':
    slave_receiver:23: error: 'a' was not declared in this scope
    slave_receiver:24: error: expected initializer before '==' token
    slave_receiver:25: error: 'b' was not declared in this scope
    slave_receiver.ino: In function 'void receiveEvent(int)':
    slave_receiver:40: error: 'a' was not declared in this scope

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    13.01.2014
    Beiträge
    398
    Blog-Einträge
    3
    Stichwort Sichtbarkeit von Variablen / Stack.
    Wenn du Variablen in einer Funktion (z.B. void setup()) initialisierst, sind diese von außen nicht sichtbar.
    Anders ausgedückt: Nach dem Durchlaufen einer Funktion werden alle dort deklarierten Variablen wieder gelöscht.

    Hab mir mal erlaubt den Code auf das Wesentliche zu kürzen (bin mir aber nicht sicher, ob ich den Zweck des Programms damit erschlagen habe):
    Code:
    #include <TVout.h>
    #include <fontALL.h>
    #include <Wire.h>
    
    TVout tv;
    int incoming = 0;
    
    void setup()
    {
      tv.begin(_PAL, 128, 96);
      tv.clear_screen();
      tv.select_font(font6x);
      Wire.begin(4); // join I2C bus with address #4
      Wire.onReceive(receiveEvent); // register event
      Serial.begin(9600); // start serial for output
    }
    
    void loop()
    {
      if (incoming)
      {
        // display the number 100ms then delete screen again
        tv.print(10,10, incoming);
        delay (100); 
        tv.clear_screen();
        incoming = 0;
      }
    }
    
    // function that executes whenever data is received from master
    // this function is registered as an event, see setup()
    void receiveEvent(int howMany)
    {
      while(1 < Wire.available()) // loop through all but the last
      {
        char c = Wire.read(); // receive byte as a character
        Serial.print(c); // print the character
      }
      incoming = Wire.read(); // receive byte as an integer
      Serial.println(incoming); // print the integer
    }
    Geändert von Sisor (20.03.2014 um 22:54 Uhr)

Ähnliche Themen

  1. Problem mit I2C Sensor DRMOD-I2C-RVI
    Von muerzi im Forum Sensoren / Sensorik
    Antworten: 23
    Letzter Beitrag: 22.02.2010, 19:29
  2. I2C-Bus, analog <-> I2C
    Von Normalo im Forum Elektronik
    Antworten: 26
    Letzter Beitrag: 29.12.2008, 20:24
  3. Antworten: 2
    Letzter Beitrag: 10.08.2006, 13:18
  4. Problem: Zwei MEGA8 via I2C-Bus koppeln (mit I2C-slave-Lib)
    Von Ulfens im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 11.01.2006, 16:25
  5. *I2C* maximale eingänge per i2c auf 8 digitale Pins
    Von Christian Sturm im Forum Elektronik
    Antworten: 9
    Letzter Beitrag: 22.06.2004, 20:44

Berechtigungen

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