Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Probleme beim Aufruf mehrerer Threads Kategorie: Programmierung (von André H. - 16.04.2002 13:35)
Als Antwort auf Re: Probleme beim Aufruf mehrerer Threads von André H. - 16.04.2002 12:03

Hallo Thomas,
Ich habe mir jetzt im Handbuchder CC2 die Schaltpläne angesehen,
und den vermeindlichen Fehler entdeckt. :-)
(Das könnte die Ursache dafür sein, da� die Auslieferung der Station II
gestoppt wurde)

Bei der Station II werden die LEDs und die Relais über Schieberegister
parallel zum LCD angesteuert !!
Das LCD und die LEDs haben dabei einige Daten/Steuerleitungen
der Schieberegister gemeinsam. Sobald man mit mehreren Threads versucht
auf diesen Bereich (LCD, LEDs, Relais) zuzugreifen, vermischen sich die Daten
und man hat einen prima Zufallsgenerator. :-)
Versuche ein explizites capture für die LCD, LED und Relais Routinen zu setzen.
dann sollte dieses Problem teilw. oder ganz verschwinden.

Es wäre trotzdem nett, wenn du mir die Systemmodule senden würdest.
Dann könnte ich evtl. diese Module patchen, um dieses Problem zu
beseitigen.
Bis das CTC dazukommt kann es sicher dauern. :-)

MfG André H.


> > Hallo,
> >
> > ihr könnt mir bestimmt bei meinem Thread Problem behilflich sein, wahrscheinlich ist es nur ein Newbieproblem =:-) Ich bin bezüglich C2 am Beginn der Lernphase, Hardware ist die CC2 Station.
> >
> > Ein kleiner LED-Blink Programmteil funktioniert wie er soll, wenn ich ihn innerhalb des main threads (als einzigen thread) aufrufe. Versuche ich das aber in einen extra thread auszulagern, spielt die Station "verrückt". Es wird scheinbar wahllos auf LEDs und Relais zugegriffen - es "blinkt und klappert". (ich hoffe ich langweile euch nicht allzu sehr):
> >
> > thread dcf77led
> > {
> >  //wie im gemeinsamen Programm
> > }
> > thread main
> > {
> >  //Init
> >  run dcf77led
> >  loop
> >  {
> >  //LCD Anzeige Zeit, Datum...
> >  }
> > }
> >
> > Kommentiere ich im thread dcf77led die funktion station_io.LEDon(int) und station_io.LEDoff(int) aus, blinkt und klappert die Station zwar nicht mehr, aber natürlich blinkt die LED nicht mehr wie gewünscht. Station_io ist das unveränderte (gemeinsames) Modul von Conrad.  
> >
> > Ersatzweise habe ich mal alle sleep() aus dem thread dcf77takt herausgenommen und nur eine Zeile
> > station_io.LEDon (5);
> > Der Effekt ändert nur seine Taktfrequenz.
> >
> > Was mache ich falsch? Ruft man weitere Threads anders auf?
> >
> > Thomas


Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten:

Re: Probleme beim Aufruf mehrerer Threads (von Thomas Einzel - 16.04.2002 14:08)
    Re: Probleme beim Aufruf mehrerer Threads (von André H. - 16.04.2002 14:38)
        Re: Probleme beim Aufruf mehrerer Threads (von Thomas Einzel - 17.04.2002 10:14)