Arduino Forum

International => Deutsch => Topic started by: AndT2018 on Apr 09, 2019, 12:20 pm

Title: BlinkLED - aber kompliziert (MCP23017 und Attiny85)
Post by: AndT2018 on Apr 09, 2019, 12:20 pm
Hi wie zum geier bekommt man ein MCP23017 auf dem Attiny85 zum laufen??
Das LCD2004 auf dem ATTINY85 war dagegen ein witz.
Zugegeben: Ich verstehe auch nicht wirklich etwas davon einen eigenen I2C Treiber zu schreiben..
Und wie liest man das Datenblatt des MCP23017 und übersetzt die I2C Befehle in die Ardoino IDE?
Danke schonmal :)
Ach ja die Adafruit Adafruit_MCP23017.h scheit den ATTINY85 nicht zu mögen..
Folgende Fehler:
Code: [Select]
D:\ardoino\arduino-1.8.8\hardware\arduino\avr\libraries\Wire\src\utility\twi.c: In function 'twi_init':

D:\ardoino\arduino-1.8.8\hardware\arduino\avr\libraries\Wire\src\utility\twi.c:76:16: error: 'SDA' undeclared (first use in this function)

   digitalWrite(SDA, 1);

                ^

D:\ardoino\arduino-1.8.8\hardware\arduino\avr\libraries\Wire\src\utility\twi.c:76:16: note: each undeclared identifier is reported only once for each function it appears in

D:\ardoino\arduino-1.8.8\hardware\arduino\avr\libraries\Wire\src\utility\twi.c:77:16: error: 'SCL' undeclared (first use in this function)

   digitalWrite(SCL, 1);

                ^

In file included from c:\users\andt2\appdata\local\arduino15\packages\arduino\tools\avr-gcc\5.4.0-atmel3.6.1-arduino2\avr\include\avr\io.h:99:0,

                 from D:\ardoino\arduino-1.8.8\hardware\arduino\avr\libraries\Wire\src\utility\twi.c:25:

D:\ardoino\arduino-1.8.8\hardware\arduino\avr\libraries\Wire\src\utility\twi.c:80:7: error: 'TWSR' undeclared (first use in this function)

   cbi(TWSR, TWPS0);

       ^

D:\ardoino\arduino-1.8.8\hardware\arduino\avr\libraries\Wire\src\utility\twi.c:80:3: note: in expansion of macro 'cbi'

   cbi(TWSR, TWPS0);

   ^
          
 usw..

Mit der DIYATTiny klapp das kompilieren, allerdings klappt dann der Upload nicht..  :smiley-confuse:
Danke schonmal im vorraus! :)
Title: Re: BlinkLED - aber kompliziert (MCP23017 und Attiny85)
Post by: gregorss on Apr 09, 2019, 12:40 pm
Folgende Fehler:
Code: [Select]

...
   digitalWrite(SDA, 1);
...
   digitalWrite(SCL, 1);
...

Zumindest die I²C-Pins SDA und SCL könntest Du auch durch deren „Klarnamen" (A4 und A5) ersetzen. Wie das mit den anderen Pins aussieht, weiß ich aus dem Stehgreif nicht.

Gruß

Gregor
Title: Re: BlinkLED - aber kompliziert (MCP23017 und Attiny85)
Post by: Serenifly on Apr 09, 2019, 12:41 pm
Für ATtinys braucht man andere I2C Libraries, da die Hardware Schnittstelle ganz anders ist. Die haben ein USI (Universal Serial Interface) das man sowohl als I2C als auch SPI betreiben kann
Title: Re: BlinkLED - aber kompliziert (MCP23017 und Attiny85)
Post by: Doc_Arduino on Apr 09, 2019, 12:45 pm
Hallo,

man könnte auch nach einer IDE Erweiterung suchen für den ATtiny85 für den Boardmanager. Dann wäre bestimmt vieles einfacher.
Title: Re: BlinkLED - aber kompliziert (MCP23017 und Attiny85)
Post by: AndT2018 on Apr 09, 2019, 01:52 pm
Ok nach sehr langem hin und her hab ich ein Workaround selbst für dieses Problem gefunden.. :)

1. Man trage die DIYAttiny Boards in den Voreinstellungen ein - Link: https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.json
2. Dann wählt man den ATTiny85 unter DIYATiny aus.
3. Damit der Upload per 'Arduino as ISP' funktioniert muss man natürlich noch den Overrive Speed auf 19200 stellen.
Eventuell noch einemal Das komplette Konstruckt vom USB trennen und neu verbinden und Voila :)

Oder Kurzgesagt, das er nicht hochladen wollte liegt daran dass der Override Speed auf 19200 gestellt werden muss wenn man mit einem Arduino den Code hochladen will.. ;)