Merkwürdiges Verhalten bei bestimmten Programmzeilen und avrdude.

Gast #4287426
Lesenswert?

Board: Arduino Mega 2560 R.3
Software Arduino 1.6.5 (avrdude)


Zeilen innerhalb der loop() sind das Problem:
1
   if(reffekt>"") {     //echtzeit-effekte
2
    if ((millis()-milli2>39)) {
3
      realtimeeffect();
4
      milli2=millis();
5
    }
6
   }

deklaration der Variablen:
1
volatile long milli2;
2
String reffekt="";

Inhalt der Funktion realtimeeffect():
1
void realtimeeffect() {
2
  flash();
3
}


Nach dem kompilieren mit den Zeilen:
Der Sketch verwendet 24.614 Bytes (9%) des Programmspeicherplatzes. Das 
Maximum sind 253.952 Bytes.
Globale Variablen verwenden 2.624 Bytes (32%) des dynamischen Speichers, 
5.568 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 
Bytes

kommentiere ich die Zeilen mit /* ... */ aus und kompiliere:
Der Sketch verwendet 24.514 Bytes (9%) des Programmspeicherplatzes. Das 
Maximum sind 253.952 Bytes.
Globale Variablen verwenden 2.512 Bytes (32%) des dynamischen Speichers, 
5.568 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 
Bytes

Die Fehlerbeschreibung:
sind diese Zeilen auskommentiert (/* ... */) wird das Board einwandfrei 
beschrieben.

sind diese Zeilen nicht auskommentiert wird das Board nicht beschrieben!
Fehlermeldungen von avrdude:
Timeout!

Ich habe viele Versuche unternommen, mit und ohne diese Zeilen,
USB-Treiber deinstalliert, installiert,
Bootloader neu geladen (manchmal kamen auch dabei Fehler)

wie kann es sein???

UPDATE:
Da ich die Fehlermeldungen von avrdude hier reinkopieren wollte, hab ich 
das Programm nochmals, mit den Zeilen, kompiliert und geladen,
jetzt ohne Fehler!!! habe nichts geändert.

hat jemand eine Idee was das sein kann?

Andre
#4288436
Lesenswert?

Simon K. schrieb:
> if(reffekt>"") {     //echtzeit-effekte
>
> Ob das tut, was du glaubst, dass es tut? ...
1
  String reffekt="";

ich weiss jetzt nicht, welche Operatoren von der String Klasse überladen 
werden, aber die Chancen stehen nicht schlecht, dass die Ersteller 
dieser Klasse mitgedacht haben und einen entsprechenden Operator 
definiert haben. Warum auch nicht, ist ja nicht weiter schwer oder 
aufwändig.
Persönliche Seite #4288890
Lesenswert?

Karl H. schrieb:
> Simon K. schrieb:
>> if(reffekt>"") {     //echtzeit-effekte
>>
>> Ob das tut, was du glaubst, dass es tut? ...
>   String reffekt="";
>
> ich weiss jetzt nicht, welche Operatoren von der String Klasse überladen
> werden, aber die Chancen stehen nicht schlecht, dass die Ersteller
> dieser Klasse mitgedacht haben und einen entsprechenden Operator
> definiert haben. Warum auch nicht, ist ja nicht weiter schwer oder
> aufwändig.

Oh, gar nicht gesehen. Danke :-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren