Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Serielle Schnittstelle Kategorie: CC-Pro Unit & Appl.Board (von TOWSIM - 26.09.2006 18:01)
Als Antwort auf Re: Serielle Schnittstelle von PeterS - 18.09.2006 16:13
Ich nutze:
C-Control Pro Mega128, CC-Pro 128 Application Board
Hi Peter
ich habe inzwischen umfangreich Tests durchgeführt um den Fehler einzugrenzen. Leider funktioniert
ein isolierter Beispielcode aus meinem Programm ohne Fehler. Das gesamte Projekt, in welchem sich
der Fehler reproduzieren läÃ?t , ist zu umfangreich um es zum testen einzuschicken.  
Aber ich glaube, da� ich den Fehler grob eingerenzen konnte. In der ursprünglichen Version wurden
vom PC kleine Datenpakete von 16 Bytes an das Applcationboard gesendet. Es wurden 10 Pakete
proSekunde mit einer Rate vov 115200 bps geschickt. Damit wurde, wie ich glaube, der Receiver in
der C-Control überfordert.  Im internen Datenpuffer der seriellen Schnittstelle wurde anscheinend der
Empfang eines Pakets durch ein neues Paket unterbrochen. Damit ging die Synchronistation verloren,
da mein Empfangsteil im C-Interpreter den Anfang eines Pakets nicht mehr lokalisieren konnte.
Nach dem ich den Sender auf 5 Pakete pro Sekunde verlangsamt habe, war der Fehler verschwunden.
Vielleich könnte man in einer der nächsten Dokumentationsversion ein wenig näher auf die
Schnittstellen eingehen. Die internen Abläufe in der Betriebssystem Software und das Zeitverhalten,
sowie die Grenzwerte wären für den Entwickler von Interesse. Im Augenblick mu� ich leider zuviel
rumprobieren. Da die Erfahrung mit der C-Control bei mir fehlt, kummuliert die eigene Unzulänglichkeit
mit der vermeintlich fehlerhaften Hard/Software. Hier würde eine tiefergehende Dokumentation
hilfreich sein.

Mit freundlichem GruÃ?,

TOWSIM
 
> Hi,
>
> wie ich hier schon so oft geschrieben habe: Bitte ein möglixhst kleines Beispielprogramm, das den Fehler
> demonstriert,  an ccpro@gmx.de schicken. Ich teste dann, ob ein Problem besteht.
>
> Gruss Peter
>
> > Hallo Ortwin,
> > vielen Dank für die Antwort. Ich glaube,  ich habe das Problem beheben können. Es war wie immer
> > nicht nur ein Fehler. Meine externe Spannungsversorgung war schlicht zu schwach. Sobald die serielle
> > Schnittstelle aktiv wurde, ist die Spannung soweit abgefallen, daÃ? der Prozessor ein Reset
> > durchgefuehrt hat. Seit ich ein stärkeres Steckernetzteil verwende läuft der Aufbau relativ stabil.
> > Allerdings bin ich gleich an die nächste Grenze gesto�en. Der Spannungsregler auf dem Applkations
> > Bord ist derart schwachbrüstig, da� nur eingeschränkt Peripherie angesteuert werden kann. Ich arbeite
> > mit Modellbau - Servos, die natürlich bei Bewegung Strom ziehen. Sobald ein zweiter Servo
> > angeschlossen wird tritt das Spannungsproblem wieder auf. Aber das ist ein Problem, das behoben
> > werden kann. Wesentlich ernsthafter ist eine Unzulänglichkeit im C Interpreter. Ich habe einen wrap
> > around Buffer eingerichtet, in dem die zu sendenen Bytes fuer die serielle Schnittstelle abgelegt
> > werden. Dazu wird ein Index jeweils incrementiert. Da das Incrementieren sehr oft gebraucht wird,
> > wurde es in eine eigene Routine verlegt. Bei Verwendung der Subroutine steigt der Prozessor
> > nach etwa 5 Sendungen aus. Wird das Incrementieren inline ausgeführt, klappt alles ohne Probleme.
> > Ich habe sorgsam daruf geachtet, daÃ? die zwei laufenden Threads sich nicht ins Gehege kommen.
> > Nur ein Thread verwended die Subroutine. Der andere incrementiert inline. Selbst wenn beide
> > Threads die Subroutine verwenden würden sollte eigentlich nichts passieren denn es werden
> > auschlieÃ?lich lokale Variable verwendet.
> > Der Fehler konnte bisher nicht lokalisiert werden. Die Ã?berwachung der Indize mit dem Debugger hat
> > kein Ergebnis gebracht. Mich würde interessieren, ob Jemand ähnliche Probleme mit dem
> > C Interpreter gehabt hat. Wenn man einen Fehler kennt, kann man ihn umgehen.
> >
> > Mfg
> >
> > TOWSIM
> >
> > > Hallo TOWSIM
> > >
> > > ich hatte an Anfang die gleichen Probleme,
> > >
> > > probiers einfach mal mit Hyperterminal
> > >
> > > gruÃ? ortwin
> > >
> > >
> > > > Hallo,
> > > > nach einigen Versuchen ist es mir gelungen auf einem Windows XP System eine stabile serielle
> > > > Sende und Empfangsroutine zu implementieren. Es wird im overlapped Mode gearbeitet damit das
> > > > Programm nicht im Device Treiber hängen bleibt. Das Applikations Board zeigt jedoch ein
> > > > seltsames Verhalten. Mit einer positiven  SW1 Abfrage wird ein immer gleicher Datensatz von 12
> > > > Bytes an den PC gesendet und dort in einem Window zur Anzeige gebracht. Nach dem 10 Transfer
> > > > verabschidet sich das C-Control Programm. Entweder es hängt oder es beendet sich wortlos.
> > > > Das Programm auf dem PC bleibt stabil und nimmt ohne Restart wieder Kontakt zum C-Control
> > > > auf. Da der Debugger ein wenig rachitisch ist, kann man dem Fehler nicht auf die Spur kommen. Ich
> > > > vermute, dass irgendwo ein Speicherbereich überschrieben wird. Hat Jemand schon etwas ähnliches
> > > > erlebt und eine Ursache gefunden? Oder hat jemand ein C Code Snippet für eine stabile Verbindung
> > > > zum PC ?
> > > >
> > > > MfG
> > > > TOWSIM
> > > >


    Antwort schreiben


Antworten: