Hallo Leute,
ich habe da ein kleines Problem,
habe mir eine 30 Kanal PWM mit ATMEGA32 gebaut, diese Redet mit dem PC
über RS232.
das klappt auch alles soweit, aber da ist irgentwo ein Bug drin.
Wenn ich alle Kanale nacheinander ansteuer 1-30. Startet aus
irgentwelchen gründen beim ansteuern von Kanal 19 der µC neu.
Wenn ich aber von hinten anfange, also von 30-1 klappt es
kann das der Watchdog sein?
hab das Programm mal in den Anhang gepackt.
vielleicht sieht ja jemand von euch wo es hängt.
Danke schon mal
Gruß Parabol
Deine UART Auswertung ist ziemlich brutal.
Du verlässt dich da darauf, dass da nichts durcheinander kommt.
Trotzdem kann ich keinen Weg finden, wie du mit falschen Zeichen (zb
einem \n) da out of bounds ins Channel Array schreiben kannst.
@Karl Heinz Buchegger ich gehe da von aus!
habe 3 Platinen davon; Channel 1-30, 31-60, 61-90 alle mit dem gleichen
MAX232 verbunden, und beim ansteuern von Kanal 19 steigt die 1. Karte
aus
alle anderen bleiben an, ich kann aber ohne Manuellen Reset, die Kanäle
wieder ansteuern,
Das gleiche bei Kanal 49 und 79 hmmmm
Parabol1337 schrieb:> @Karl Heinz Buchegger ich gehe da von aus!>> habe 3 Platinen davon; Channel 1-30, 31-60, 61-90 alle mit dem gleichen> MAX232 verbunden, und beim ansteuern von Kanal 19 steigt die 1. Karte> aus
Was heißt 'steigt aus'?
reagiert sie nicht mehr, gehen alle LED aus oder voll an?
Ich würd wenigstens auf das erste 'C' in deinem Protokoll
synchronisieren. So als Minimalsicherung gegen Fremdzeichen.
Karl Heinz Buchegger schrieb:> Ich würd wenigstens auf das erste 'C' in deinem Protokoll> synchronisieren. So als Minimalsicherung gegen Fremdzeichen.
Ist normalerweise auch so, nur bei der Fehlersuche minimier ich das
erstmal
Danke Für den Schönen Code,
werde deinen Morgen gleich mal einbinden und testen.
PS hatte eigentlich von niemanden verlerlangt mir den Code zuschreiben,
aber trozdem herzlichen Dank.
hab morgen Frühschicht
Gute Nacht
Parabol1337 schrieb:> Danke Für den Schönen Code,
Ist nur eine Idee.
Wie gesagt: Ich kann deinen Code in Gedanken durchgehen so viel ich
will, ich finde kein Schlupfloch, wie da Arrayindizes entstehen können,
die ungültig sind. Du machst eine Plausibilitätsprüfung und IMHO müsste
die alles abfangen.
Auf der anderen Seite: Da ist ja auch sonst nichts im Programm, was
einen Restart oder sonstigen Mist veranstalten könnte.
Karl Heinz Buchegger schrieb:> Auf der anderen Seite: Da ist ja auch sonst nichts im Programm, was> einen Restart oder sonstigen Mist veranstalten könnte.
Wie wäre es dann mit einem Hardwarefehler? Zeig doch mal den Schaltplan
deiner Platinen. Evtl. hast du ein Kanal 19 einen Designfehler und
zwingst den ATmega in die Knie...
Parabol1337 schrieb:> Ein Layout Fehler würde ich aus schließen, denn alle 3 Platinen werden> von der Gleichen 5V Spannungsquelle gespeißt
Da fehlen 100nF-Kondensatoren zwischen VCC und GND und AVCC und GND -
ganz nah an den µC. Die müssen auf jeden Fall rein, sonst ist das Murks
und Glücksspiel, ob es läuft oder nicht.
Hallo Ich bins noch mal, vielleicht kann mir wer noch einen kleinen Tip
zur UART geben,
wenn ich zu schnell dem controller daten sende hängt er sich einfach
auf,
heißt einige Känale bleiben an und sind nicht mehr änderbar, aber die
anderen gehen einwandfrei, erst ein neustart des µC bringt abhilfe
ich habe das grfühl der µC kommt nicht hinterher, wenn ich zwischen
jedem Telegram 20ms pause machen klappt es einwandfrei
Danke schon mal