Forum: Mikrocontroller und Digitale Elektronik Reproduzierbarer merkwürdiger Absturz des Arduino Nano


von Alexander J. (Gast)


Lesenswert?

Hallo zusammen,

ich habe gerade eine LED Matrix mit einer Laufschrift befeuern wollen.
Beim ersten Start ist mir mein Arduino Nano nach zwei Buchstaben 
abgestürzt und startet neu. Danach läuft aber die Schrift 
zufriedenstellend über die Matrix.

Weil mir das keine Ruhe gelassen hat, habe ich mich ans debuggen gemacht 
und ein reproduzierbares Muster bei den Abstürzen gefunden.

Bei zwei UNO und einem MEGA tritt dieser Fehler nicht auf.

Hier mein auf den Fehlerkern reduziertes Sketch:
1
int counter = 1;
2
byte wert = B11110000;
3
4
void setup() {
5
  Serial.begin(9600);
6
  Serial.println("SETUP");
7
  Serial.println("---------------------------------------");
8
}
9
10
void loop() {
11
  Serial.println(counter);
12
  Serial.println(">>>>>>>");
13
  Serial.println(wert << 0,BIN );
14
  Serial.println("----w-----");
15
  counter++;
16
}

Und ein Auszug aus Ausgabe des Seriellen Monitors:
1
SETUP
2
---------------------------------------
3
1
4
>>>>>>>
5
11110000
6
----w-----
7
2
8
>>>>>>>
9
11110000
10
----w-----
11
3
12
>>>>>>>
13
11110000
14
----w-----
15
4
16
>>>>>>>
17
11110000
18
----w-----
19
5
20
>>>>>>>
21
11110000
22
----w-----
23
6
24
>>>>>>>
25
11110000
26
----w-----
27
7
28
>>>>>>>
29
11110000
30
----w-----
31
8
32
>>>>>>>
33
11110000
34
----w-----
35
9
36
>>>>>>>
37
11110000
38
----w-----
39
10
40
>>>>>>>
41
11110000
42
----w-----
43
11
44
>>>>>>>
45
11110000
46
----w-----
47
12
48
>>>>>>>
49
11110000
50
----w-----
51
13
52
>>>>>>>
53
11110000
54
----w-----
55
14
56
>>>>>>>
57
11110000
58
----w-----
59
15
60
>>>>>>>
61
11110000
62
----w-----
63
16
64
>>>>>>>
65
11110000
66
----w-----
67
17
68
>>>>>>>
69
11110000
70
----w-----
71
18
72
>>>>>>>
73
11110000
74
----w-----
75
19
76
>>>>>>>
77
11110000
78
----w-----
79
20
80
>>>>>>>
81
11110000
82
----w-----
83
21
84
>>>>>>>
85
11110000
86
----w-----
87
22
88
>>>>>>>
89
11110000
90
---SETUP
91
---------------------------------------
92
1
93
>>>>>>>
94
11110000
95
----w-----
96
2
97
>>>>>>>
98
11110000

Die Zahl der Durchläufe schwankt, meistens so zwischen 15 und 25. Die 
Zahl ist immer die gleiche, solange man den Nano nicht vom Strom nimmt 
und nur den Resetknopf drückt.

Ich habe das mit drei Nano reproduzieren können.

Allerdings habe ich auch "nur" Chinaclone hier, bisher liefen die aber 
immer tadellos.

Kann das jemand reproduzieren, ist der BUG bekannt oder nur ein 
Chinaclonephänomen?

Zum Schluss: Ich habe hierbei die aktuelle Arduinosoftware für macOS 
genutzt. Ich werde mal morgen auch unter Windows testen.

von Alexander J. (Gast)


Lesenswert?

Ich habe gerade mal schnell das Sketch weiter reduziert.
Serial ist nicht dran schuld.
1
byte wert = B11110000;
2
3
void setup() {
4
  pinMode(11,OUTPUT);
5
  digitalWrite(11, HIGH),
6
  delay(100);
7
  digitalWrite(11, LOW),
8
  delay(100);
9
  digitalWrite(11, HIGH),
10
  delay(100);
11
  digitalWrite(11, LOW),
12
  delay(100);
13
}
14
15
void loop() {
16
  wert = wert << 0;
17
}

Auch hier, die LED blinkt, dann ist ca. eine Sekunde Ruhe und dann 
blinkt sie wieder und bleibt dann dunkel.

Ich spiele mal weiter Szenarien durch, vll. finde ich die Lösung.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Alexander J. schrieb:
> Hier mein auf den Fehlerkern reduziertes Sketch:

 Hier mein aufs wesentliche reduziertes Urteil:

 Das was du geschickt hast, läuft bestimmt ohne Fehler, auch wenn
 es keinen Sinn macht.

von Alexander J. (Gast)


Lesenswert?

Marc V. schrieb:
> Alexander J. schrieb:
>> Hier mein auf den Fehlerkern reduziertes Sketch:
>
>  Hier mein aufs wesentliche reduziertes Urteil:
>
>  Das was du geschickt hast, läuft bestimmt ohne Fehler, auch wenn
>  es keinen Sinn macht.

Wie du an dem Output siehst, läuft es je nicht ohne Fehler.


Das Programm hat einen Sinn: Den Absturz zeigen.

von Max D. (max_d)


Lesenswert?

Alexander J. schrieb:
> Auch hier, die LED blinkt, dann ist ca. eine Sekunde Ruhe und dann
> blinkt sie wieder und bleibt dann dunkel.

Bootloader ?

von Sebastian E. (sbe_15)


Lesenswert?

Ein Paar Ideen:
- Wenn ein Reset schuld ist, sagt dir das MCUSR Register, was den Reset 
ausgelöst hat.
- Wenn Interrupts aktiviert sind, ohne dass ein Handler definiert wurde 
wird das Programm bei Auftreten eines Interrupts neu gestartet.

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Alexander J. schrieb:
> Kann das jemand reproduzieren, ist der BUG bekannt oder nur ein
> Chinaclonephänomen?

Oder ein Versorgungsphänomen. Hier auch auf einem China-Clone läuft die 
erste Version mit serieller Ausgabe seit einigen Minuten (Zähler über 
5000) ohne Ausfall.

von Wolfgang (Gast)


Lesenswert?

... jetzt 10000   ;-)

von Nanoschützer (Gast)


Lesenswert?

Alexander J. schrieb:
> ich habe gerade eine LED Matrix mit einer Laufschrift befeuern wollen.

Diese LEDs brauchen sicherlich gaaaaanz wenig Strom. Und
daher kann man sie auch dahingehend vergessen und gaaanz
leicht direkt vom Nano versorgen ..... oder?

von Alexander J. (Gast)


Lesenswert?

Wolfgang schrieb:
> ... jetzt 10000   ;-)



Wenn der erste Absturz durch ist, läuft es auch ohne Probleme. :-)



Ich konnte es an einem Windows PC nicht reproduzieren. Aus mangels eines 
zweiten Apple kann ich nicht ausschließen, dass vll. nicht am Nano, 
sondern am Mac liegt.

von Alexander J. (Gast)


Lesenswert?

Nanoschützer schrieb:
> Alexander J. schrieb:
>> ich habe gerade eine LED Matrix mit einer Laufschrift befeuern wollen.
>
> Diese LEDs brauchen sicherlich gaaaaanz wenig Strom. Und
> daher kann man sie auch dahingehend vergessen und gaaanz
> leicht direkt vom Nano versorgen ..... oder?

Ich steuer die Matix nur mit dem Nano, sie hat eine eigene 
Stromversorgung.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.