Dann äußere dich doch mal zu der Aufgabe. Eventuell findet sich dann eher jemand, der Interesse und Zeit hat.
Dann äußere dich doch mal zu der Aufgabe. Eventuell findet sich dann eher jemand, der Interesse und Zeit hat.
Grüße,
Daniel
Im Prinzip geht es darum, dass die Verbindung vom uC zum Pc immer wieder unregelmäßig abbricht.
Wäre erstmal wichtig, einzugrenzen, ob es an der Software oder einer fehlerhaften Fuse Bit Einstellung oder ähnlichem liegt.
Näheres dann bei Kontakt.
Gruß
Welche Art Verbindung? RS232?
Vollstaendige Unterbrechung oder nur fehlerhafte Daten zwischendurch?
Nenn mal paar Eckdaten..Quarzfrequenz, Baudrate, etc. ggf. Schaltplan
Dann kann man schon mal grob abschaetzen wo der Hund liegt.
Gruss
Nam et ipsa scientia potestas est..
Verbindung ist RS232, fehlerhafte Daten über einen Zeitraum von meistens 40 minuten alle 2-3 minuten, danach vollständige Unterbrechung.
quartz: 8 Mhz, 19200 Baudrate. Nach erneuter Verbindung das gleiche Spielchen wieder.
Mh, da spuckt mir AVRCalc nen Baudratenfehler von 0.16% aus..das sollte keine Probleme machen.
Beschaltung von MAX232 passt, Ground verbunden und Kabel nicht zu lang?
Ansonsten muesste man mal einen Blick auf die Software werfen.
Nam et ipsa scientia potestas est..
Eine kalte oder nicht vollständig leitende Lötstelle oder ein Kabelbruch wäre auch eine Möglichkeit. Ansonsten hat der Wastel schon Recht, da hilft nur ein Blick in die Software. Ist das Zeug irgendwie aus einer Firma oder Ähnlichem? Also dass das nicht öffentlich gemacht werden darf?
Sonst hättest du auch einfach hier im Forum Fragen können, ohne Kohle locker zu machen.
Grüße,
Daniel
Sind in gewisser Weise schon sensible Daten. Daher ungern veröffentlichen.
Für mich hört sich das etwas nach Pufferüberlauf an.
Addressieren die verwendeten Pointer wirklich nur die reservierten Bereiche, oder könnte auch aus Versehen ein Bereich dahinter angesprochen werden?
Beispiel: Puffergröße 128 Byte, Pointer hat den Wert 130!
Dann wird eine nachfolgende Variable überschrieben was nicht gut sein kann!
Werden Daten vom PC zum Mega 8 gesendet, oder umgekehrt, oder beides?
Wie ist die Sende bzw. Empfangsroutine angelegt?
Polling oder Interrupt?
Ich mach da gerne Empfangsinterrupts um jeweils ein Byte in einem Puffer abzulegen.
Im Hauptprogramm wird dann immer wieder geschaut, ob in dem Puffer was Neues drin ist.
( Schreib / Lesezeiger oder Marker = Bit Variable ).
Beim Senden wird dann auch immer wieder ein Puffer beschrieben und dieser Puffer dann per Interrupt byteweise versendet.
Wenn die Puffer nicht zu klein sind und der µC genügend Zeit zu Abarbeitung hat, macht das eigentlich keine Probleme.
Ich Merge mit diesem Prinzip 4 MiDi Eingänge ( 31250 Bit/s ) auf einen Ausgang zusammen. Allerdings mit einem ATMEGA1280 an 16MHz.
Um den Controller nicht auszubremsen würde ich keine! delay_ms Aufrufe für Zeitschleifen verwenden, sondern Variablen im einem Timer Interrupt hoch bzw. runter zählen lassen.
Lesezeichen