Noch was:
Die erste zeile nach loop:
if(Serial.available() > 0) {Serial.end();}
hab ich erst vor kurzem hinzugefügt, dass ich, wenn ich das programm
hochladen kann, die serielle schnittstelle deaktivieren kann.
Hätte ich besser seit anfang ins programm gemacht..
guest78987 schrieb:> Hätte ich besser seit anfang ins programm gemacht..
Das ist nicht dein Problem.
guest78987 schrieb:> if(Serial.available() > 0) {Serial.end();}> hab ich erst vor kurzem hinzugefügt, dass ich, wenn ich das programm> hochladen kann, die serielle schnittstelle deaktivieren kann.> Hätte ich besser seit anfang ins programm gemacht..
Das ist völlig unnötig, denn dieser Code interessiert den Bootloader
herzlich wenig.
Der Bootloader funktioniert so:
Die Arduino IDE macht einen Softreset (bei manchen Arduino-Boards
funktioniert das nicht, und man muss durch drücken der Reset-Taste
nachhelfen).
Nach dem Reset führt der uC ca. 0.5 Sekunden lang den Bootloader aus,
und wartet auf Daten. Für diese Zeit spielt dein Programm absolut keine
Geige.
Kommen keine Daten wird dein Programm geladen und ausgeführt.
Ab diesem Zeitpunkt spielt der Bootloader keine Geige mehr.
Außerdem ist es von der Logik her unschön, wenn du die
Serielleschnittstelle zumachst (Serial.end()) und später trotzdem
versuchst was zu schreiben(Serial.println()).
Keine Ahnung was das Arduino-Gedöns macht, wenn man versucht auf die
geschlossene Schnittstelle zu schreiben.
guest78987 schrieb:> -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v> -patmega32u4 -cavr109 -PCOM10 -b57600 -D> -Uflash:w:C:\Users\Julian\AppData\Local\Temp\build1fd255a953a8c14710f29c> 1c59ff99b2.tmp/Lenkrad.ino.hex:i
Rufst du das Ding von Hand auf?
Benutzt die die Arduino IDE? Welche Version?
Benutzt du die IDE von arduino.cc oder von arduino.org?
Hallo,
Wenn ich das richtig verstanden habe funktioniert also mein bootloader
nicht mehr richtig, oder? Denn ich habe schon oft die arduino ide
geschlossen (version 1.6.4 von arduino.cc), den resetknopf am arduino
gedrückt, die ide wieder gestartet, ein leeres programm geöffnet und auf
hochladen geklickt und sobald "hochladen" erschien den resetknopf wieder
losgelassen. Der arduino wird ja auch erkannt und sendet daten an die
serielle Schnittstelle. Die Meldung "programmer is not responding" kommt
auch jedes mal, was ja eigentlich auch nur am bootloader liegen kann
oder? Ausserdem wird auch ab und zu "port busy" angezeigt. Gibt es
irgend eine Möglichkeit den arduino zu retten oder muss ich mir einen
zweiten kaufen und mit diesem den bootloader neu flashen? Was ich auch
sehr komisch finden ist, dass immer die gleichen werte im seriellen
Monitor angezeigt werden, was bei einem funktionsfähigen arduino ja
nicht sein kann?
Kaj schrieb:> guest78987 schrieb:> -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v> -patmega32u4 -cavr109 -PCOM10 -b57600 -D> -Uflash:w:C:\Users\Julian\AppData\Local\Temp\build1fd255a953a8c14710f29c> 1c59ff99b2.tmp/Lenkrad.ino.hex:i>> Rufst du das Ding von Hand auf?> Benutzt die die Arduino IDE? Welche Version?> Benutzt du die IDE von arduino.cc oder von arduino.org?
Was meinst du mit von Hand aufrufen? Ich klick einfach auf hochladen.
Und was mir, nach deiner erklärung, wie der bootloader funktioniert auch
komisch vorkommt, ist dass wenn ich wie oben beschrieben den reset knopf
bis hochladen drücke, der Arduino erst nach etwa 0,5s, also wenn ja
eigentlich schon das programm läuft, von der IDE erkannt wird.
Ohne diese beiden zeilen:
Taster am lenkrad gedrückt -> pin wird low -> 0
Taster wird nicht gedrückt: durch pullup pin high -> 1
Da es ja genau umgekehrt sein soll habe ich diese beiden zeilen
eingebaut.
Aus 0 wird 1 und aus 1 wird 0.
Ohne else ist die variable ja immer 1??
Das programm hat so auf jeden fall funktioniert
Hallo,
ich habe mir jetzt mittlerweilevielleichtweiten, nichtoriginalen arduino
micro gekauft und versucht, mit diesem auf meinen original arduino micro
einen neuen bootloader zu brennen. Der nachbauarduino wurde auf Anhieb
ganz normal von der IdE erkannt und funktioniert auch einwandfrei.
Ich habe also die pins (alle an der Unterseite, nicht am icsp Anschluß)
miso, mosi, sck, 5v, gnd und pin 10 an den icsp anschluss des defekten
arduino micro angeschlossen. Die power led des def. Arduino leuchtete,
sobald der andere arduino per usb an den pc angeschlossen wurde. Als
nächstes habe ich dann auf den funktionsfähigen arduino das isp sketch
geladen, arduino as isp als programmer ausgewählt und bin dann auf
bootloader brennen. Doch leider kam, genauso wie wenn ich ihn direkt per
usb programmieren will "programmer is not responding" und noch irgendwas
mit "not in sync" die IDE probierte das ganze 10 mal, ohne erfolg.
Jetzt ist meine frage, ob der arduino vieleicht kaputt sein könnte (er
ist erst wenige monate alt und wurde teuer bei conrad gekauft) oder ob
ich eventuell was falsch gemacht hab?
Läuft sowas eventuell auch über Garantie, also dass ich das ganze über
conrad reklamiere und dann einen neuen bekomm bzw. Der alte repariert
wird oder sind solche Fälle von der Garantie ausgeschlossen?
Sorry in der zweiten zeile hat wohl die autokorektur bisschen mist
gebaut. Das soll natürlich "ich habe mir jetzt einen zweiten,
nichtoriginalen arduino micro gekauft..." heissen.
Kann kaputt sein oder auch nicht.
Ich würde mal alle Anschlüsse deines ISP-Programmers überprüfen.
Ob du das reklamieren und als Garantie abwickeln kannst musst du mit
Conrad klären.