PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kann sich ein Programm verlangsamen?



Duesentrieb
03.11.2011, 09:07
Hallo,

ich habe mehrere Mega8 und Mega32 mit Bascom im Einsatz.
Immer wieder stelle ich fest dass sich ein Programm, welches z.B. eine LED gleichmäßig blinken lässt, plötzlich verlangsamt.
Die Megas laufen immer mit externem Quarz.

Habt Ihr so etwas auch schon einmal gehabt?
Wie kann ich das lösen?

PicNick
03.11.2011, 10:08
Gibt nix, was nicht andere auch schon hatten.
Möglichkeiten;
1) ein Wunder geschieht
2) die Hardware spinnt
3) in der Software steht ein Käse drinnen

am häufigsten ist 3) , die Veröffentlichung des Programms wäre also erforderlich

und ev. eine Anamnese, d.h. z.B was heisst plötzlich verlangsamt ? nach einer sekunde, minute stunde ?

Vitis
03.11.2011, 15:47
Wenn die LED zum ersten mal blinkt freut man sich und die Zeit geht schneller vorbei (subjektiv)
Wenn man 2 Stunden vor dem Blinker sitzt wird's langweilig und die Zeit vergeht subjektiv
langsamer ... kann aber auch sein das die Blinkerei dem µC auf den Die geht.

Richard
03.11.2011, 17:08
Hallo,

ich habe mehrere Mega8 und Mega32 mit Bascom im Einsatz.
Immer wieder stelle ich fest dass sich ein Programm, welches z.B. eine LED gleichmäßig blinken lässt, plötzlich verlangsamt.
Die Megas laufen immer mit externem Quarz.

Habt Ihr so etwas auch schon einmal gehabt?
Wie kann ich das lösen?

Das kann sehr viele Ursachen haben, eine Möglichkeit Erwärmung von Bauteilen oder Teile derselben. Frequenz nicht wirklich stabil und natürlich auch Software Fehler siehe auch die Antwort von PicNick.

Gruß Richard

BMS
03.11.2011, 18:10
Das Programm könnte natürlich auch durch Interrupts gebremst werden.
Wenn dann die LED nicht über einen Timer blinkt sondern per Wartefunktion,
blinkt sie langsamer, wenn viele Interrupts auftreten.

seite5
04.11.2011, 09:47
hallo,
"Erwärmung von Bauteilen": Falls das Ganze halbwegs ordentlich aufgebaut ist, dürfte wohl das Quarz + C's das einzige BT sein, dass die Frequenz des
Blinkens beeinflussen dürfte, allerdings in einer Grössenordnung, die es selbst dem besten Zeitgefühl unmöglich machen sollte, das ohne Messmittel festzustellen.
Eine mögliche Ursache (aus meiner Erfahrung) für solche Effekte ist ein Stacküberlauf oder "falsch positionierte" Interrupt-Vektoren, ein Programmlisting
wäre hier wirklich sehr hilfreich.
mfg
Achim

Duesentrieb
04.11.2011, 17:22
Hallo und Danke für eure Antworten.

Leideder ist mein Programm / Programme sehr komplex (CAN-Bus, Teperatur mittels 1W, etc.) so dass ich euch das nicht unbedingt zumuten wollte.
Euren Antworten entnehme ich dass es mit größter Wahrscheinlichkeit an meinem Programmen liegen muss.
Da werde ich mich jetzt mal auf die Suche machen