Reproduzierbarer merkwürdiger Absturz des Arduino Nano

Gast #4974892
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.
Gast
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.
Gast
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.
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.
Gast
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.
Gast
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.