Was ist der Unterschied zwischen Reset und Spannungszufuhr?
Ein Nano Every initialisiert problemlos beim Einschalten,
zeigt aber seltsame Zeichen, auf einem 2 Zeilen I2C Display, nach einem Reset.
Erst nach mehrmaligen Reset (oder Aus- und Einschalten) fängt er sich wieder.
welche Zeichen genau? mach mal ein Bild damit man sich was vorstellen kann.
Welches I2C Display? hat das native i2c Unterstützung oder verwendest du ein I2C Backpack? Produkt verlinken!
Welche Library verwendest du für das Display?
Ist das Verhalten beim mitgelieferten Hello World Beispiel auch so?
Wenn mehrere Reset helfen, probier mal ein delay(5000); am Anfang von setup().
Der Unterschied ist, daß ein Einschalten alle vorhandenen Teile einen Anfangsreset durchführen. Bei einem Reset des Controllers nur dieser resettiert wird.
uwefed:
Der Unterschied ist, daß ein Einschalten alle vorhandenen Teile einen Anfangsreset durchführen. Bei einem Reset des Controllers nur dieser resettiert wird.
Genau. Das Display wird meistens nicht einzeln resetet. Einige Displays haben einen extra Resetpin oder Reset Kommando was dann im Initialiserungscode genutzt werden sollte. Ansonsten hilft nur wie festgestellt der gesamte "Spannungsreset" der gesamten Schaltung.
Alle etwa 5 Mal Reset über den Resetbutton am Nano klappt nicht.
Ich habe jetzt erst mal den Vorschlag mit dem Delay ausprobiert. => Immer noch
Dann habe ich 2 10KOhm an die I2C (A4,A5) Leitungen zu 5V gelegt. => Immer noch
Das Display ist aus einem Joy-it Kit: 1602A
void setup() {
// put your setup code here, to run once:
lcd.init();
lcd.backlight();
lcd.clear();
zaehler=0;
attachInterrupt(digitalPinToInterrupt(HallPin),Hall_ISR,FALLING);
}
Den Nano every kenne ich nicht, aber es gibt andere, die mit dem Anfang von setup Probleme haben. Daher könntest Du versuchsweise ein delay(3000); an den Anfang von setup setzen.
Selbst das Datenblatt vom hd44780 kennt nur das PowerOnReset mit ziemlich langen Zeiten.
Da wird wohl nur die Variante von hotsystems mit dem Transistor bleiben.
Das würde aber bedeutet, dass wenn ich VCC vom Display abtrenne und wieder anschließe,
es sich reseten müsste.
Das tut es aber leider nicht.
Wenn ich aber danach nochmals den Nano resete, dann fängt sich sich das Display wieder.
Das habe ich jetzt 10 mal vesucht, ohne dass jeweils nach dem Fehler wieder seltsame Zeichen erschienen.
Also ich resete, die seltsamen Zeichen erscheinen.
Dann entferne ich VCC vom Display und schließe es wieder an.
Andere seltsame Zeichen sind sichtbar.
Ich resete den Nano
Alles ist wieder in Ordnung.
das sind am Ende alles nur Kommandos die übertragen werden. Du müßtest das hier rausfischen, schauen was dahintersteckt, danach bei deinem Display nach Übereinstimmung suchen und nach/einbauen. Macht Aufwand, zugegeben. Oder du suchst dir eine andere I2C Display Lib.
ja, eine andere Lib(s) könnte man probieren bzw. vorher durchschauen. Was mir noch einfällt wäre, den Lib Programmierer auf Github mit einem Issues ganz lieb bitten das init zu ändern oder eine zusätzliche Methode zur Verfügung stellen, reinit oder was er dann auch immer macht.
oleum:
Das würde aber bedeutet, dass wenn ich VCC vom Display abtrenne und wieder anschließe,
es sich reseten müsste.
Das tut es aber leider nicht.
Wenn ich aber danach nochmals den Nano resete, dann fängt sich sich das Display wieder.
Das muss ja auch gleichzeitig passieren.
Durch den Reset muss auch die Spannung vom LCD getrennt werden.
Da sind schon zusätzliche Transistoren erforderlich.
Mein erstes Projekt, und ich kann schon voll einsteigen
C ist nicht meine Muttersprache.
Wo stehen denn die tatsächlichen Befehle, die an die Pins geschickt werden, in den Libs?
Versteht der Arduino direkt C oder ist da noch eine Schicht Maschinenkode ?
Kann ich die Libs denn selbst bearbeiten?
UART Controller hatte ich schon mal vor ~hundert Jahren per Assembler
programmiert.
Wo finde ich die ganzen harwarenahen Unterlagen zum Arduino?
Kann ich selbst Treiber programmieren, läuft das auch in C ?
Jetzt kommen halt die ganzen Fragen, die die innere Struktur
betreffen...