Hallo zusammen,
ich bin über ein verstecktes Fehlverhalten der IDE bzw. des Compilers gestolpert und habe nach einigen Stunden Tüftelei eine Lösung dazu gefunden.
Aber der Reihe nach: ich hatte mir kürzlich die IDE Version 1.6.8 heruntergeladen und installiert.
Nur durch Zufall habe ich dann ein ziemlich sonderbares Verhalten der IDE bzw. des Compilers entdeckt.
Es betrifft die Code-Generierung für ATTINY85 Prozessoren. Ob und welche TINY µController sonst noch betroffen sind konnte ich wegen fehlender Hardware leider nicht überprüfen.
Geplant war ein 1602er LCD (44780 kompat.) mit aufgelötetem I2C-Adapter mit einem ATTINY85 anzusteuern. Ich hatte diese Geschichte ja gerade mit einem ESP8266-01 realisert ( -> hier in den "Nebenprodukten" <- ) und deshalb bot sich das direkt an.
Allerdings stellte ich ziemlich schnell fest, dass das alles doch nicht so einfach war, wie es ursprünglich schien.
Ich habe mich dann durch Stapel von Webseiten gewühlt, weil ich desöfteren den Hinweis gelesen hatte, dass der ATTINY in Zusammenspiel mit einem LCD mit aufgebrachtem I2C-Adapter eine Sonderbehandlung erfordert.
Aber ich konnte machen was ich wollte ... es kam keine Ausgabe auf dem LCD.
Nun habe ich noch -> diese TINY85 Mini-Boards <- rumliegen und hab' die Software dann auf so einen DigiStump geflasht ... und siehe da ... es lief :s
Nach einigen Stunden herumprobieren stellte sich heraus, dass der Compiler bei den Versionen 1.6.6 bis 1.6.8 für den ATTINY85 falschen ( oder besser: nicht ablauffähigen ) Code erzeugt.
Im Vergleich zwischen der hex-Datei für den DigiStump ( ist ja auch ein ATTINY85 ) und dem File für den "generischen" ATTINY85 fiel mir dann auf, dass die erzeugte Datei um ca. 10 Byte zu klein war.
Ich habe dann mal die DigiStump-Datei per Hand unter Umgehung des micronucleus direkt auf den TINY geflasht ... und es lief anstandslos. Dasselbe Vorgehen mit der für den ATTINY85 erzeugten Datei rief keine Reaktion hervor.
Nun ... langer Rede kurzer Sinn: das Problem ist der ATTINY-Boardmanager. Ich hatte die URL
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
in den Voreinstellungen eingetragen. Diesen Eintrag musste ich gegen
tauschen und schon lief auch der für den ATTINY85 erzeugte Code anstandslos.
Da ist wohl der Boardmanager von David Mellis nicht kompatibel mit den aktuellsten Versionen der IDE.
Wer also lauffähigen Code für einen TINY85 benötigt sollte sich den Eintrag entsprechend abändern.
cheers,
-ds-