Attiny I2c probleme beim Kompilieren

Hallo zusammen,

ich möchte mit eine Attiny85 einen Encoder auswerten und Werte via I2c auf einen Arduino senden.

leider habe ich Probleme beim Kompilieren des Programmes.

// Code für Attiny85
// Sendet über I2c die Deltawerte des Encoders zwischen jeder Abfrage
// V 0.1

#include <TinyWireS.h>                           // Bezieht I2c Bibliothek ein
#include "avr/interrupt.h";                      // Bezieht AVR Interrupt Bibliothek ein  
#define I2C_SLAVE_ADDRESS 0x4                    // I2c Slave Adresse

volatile int counter=0;                                   // Encoder Zähler
int calt=0;                                      // Zählerwert zum Zeitpunkt der letzten I2c Abfrage
byte d=0;                                        // Deltawert des Zählers



void setup() {                                    
  TinyWireS.begin(I2C_SLAVE_ADDRESS);             // Verbindet mit I2c Bus
  TinyWireS.onRequest(requestEvent);              // Bei I2c Anfrage springt in requestEvent Funktion
  GIMSK |= (1 << PCIE);                           // Aktiviert Interrupts
  PCMSK |= (1 << PCINT4);                         // Aktiviert PCINT4 als InerruptPin
  sei();                                          // Interrupts EIN
  pinMode(3, INPUT);                              // Setzt Pin 3 und 4 als Input und aktiviert pullup Widerstand
  pinMode(4, INPUT);

}

void loop() {                                      

}

ISR(PCINT0_vect){                                   // Funktion wird ausgeführt wenn Interrupt erkannt wird 
  if(digitalRead(4) != digitalRead(3))              // Encodereingange auswerten und couter entsprechend erhöhen oder veringern
    counter++;
  else
    counter--;
  
}

void requestEvent(){                                
  d = calt - counter;                               // Berechnung des Deltawertes
  TinyWireS.send(d);                                // Sendet I2c Nachricht
  calt = counter;                                   // Setzt calt gleich dem Zähler
}

Als Fehler bekomme ich :

FindFirstFile C:\Users\Susanne\AppData\Local\Temp\arduino_cache_982081: Das System kann die angegebene Datei nicht finden.

Fehler beim Kompilieren für das Board ATtiny25/45/85.

Ich wäre um Hilfe dankbar

Viele Grüße
Freddy

...\Temp\arduino_cache_982081: Das System kann die angegebene Datei nicht finden.

Bei Problemen mit temp Dateien würde ich die IDE neu starten.

Konkret aber keine Ahnung, Sorry.

C:\Users\User\AppData\Local\Temp\arduino_modified_sketch_871080\Test_Forum.ino:7:27: warning: extra tokens at end of #include directive

 #include "avr/interrupt.h";                      // Bezieht AVR Interrupt Bibliothek ein 

                           ^

Der Sketch verwendet 1424 Bytes (17%) des Programmspeicherplatzes. Das Maximum sind 8192 Bytes.
Globale Variablen verwenden 108 Bytes (21%) des dynamischen Speichers, 404 Bytes für lokale Variablen verbleiben. Das Maximum sind 512 Bytes.

Das Semikolon muß weg. M. E. kann aber die ganze Zeile gelöscht werden, zumindest mein Compiler ist dann zufrieden.

Ich verwende IDE 1.8.6 mit der Erweiterung von SpenceKonde.

Ok ich habe heute Morgen mein neues Glück versucht.
Das Semikolon entfernt und auch die ganze Zeile entfernt.

Jetzt habe ich eine andere Fehlermeldung.....

C:\Users\Susanne\Desktop\freddy\Attiny_I2c\Attiny_I2c.ino: In function 'void setup()':

Attiny_I2c:17:13: error: 'class USI_TWI_S' has no member named 'onRequest'

   TinyWireS.onRequest(requestEvent);              // Bei I2c Anfrage springt in requestEvent Funktion

             ^

exit status 1
'class USI_TWI_S' has no member named 'onRequest'

Fred95:
Ok ich habe heute Morgen mein neues Glück versucht.
Das Semikolon entfernt und auch die ganze Zeile entfernt.

Jetzt habe ich eine andere Fehlermeldung.....

Die Angabe (Hyperlink) deiner verwendeten "TinyWireS.h" wäre mal interessant.

Ich befürchte, dass der Kompiler recht hat!

Als Kompiler für den Attiny verwende ich :

https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json

und TinyWireS:

und TinyWireS:

TinyWire/TinyWireS at master · rambo/TinyWire · GitHub

Glaube ich nicht!
Denn die Klasse hat diese Methode.

Bitte ausführliche Meldungen aktivieren und genau kontrollieren, welche Lib "wirklich" genutzt wird.

Also jetzt habe ich die Bibliothek gelöscht und noch einmal eingefügt und siehe da es lässt sich kompilieren.

Danke für denn Tipp :smiley:

Jetzt habe ich als weiteres Problem dass ich vom Attiny nur 255 empfange ... ?

Jetzt habe ich als weiteres Problem dass ich vom Attiny nur 255 empfange ... ?

Vermutlich empfängst du gar nichts, machst aber keine Fehler-Auswertung.

Hier ist es üblich, für neue Fragen einen neuen Thread aufzumachen.