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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.