Re: Multithreading I2C Timer2 Kategorie: Programmierung C (von PeterS - 8.07.2009 16:42) | ||
Als Antwort auf Re: Multithreading I2C Timer2 von ThomasJ - 8.07.2009 10:02 | ||
| ||
> > Hallo, > > > > beim Multithreading mit dem I2C Bus stellt sich mir die folgende Frage > > > > Was passiert wenn im > > > > Thread1: Thread_Delay() abläuft > > > > während im > > > > Thread2: while(1) > > {Threat_Lock(0) > > I2C Abfrage > > Thread_Lock(1)} > > abläuft. > > > > > > Läuft der Timer2 und der Counter von Thread_Delay weiter oder kommt es zu einem erheblichen Zeitfehler? Ja der Counter von Thread_Delay läuft bei einem Thrad_Lock weiter. > > > > Im voraus vielen Dank für eine Antwort > > > > MfG > > Thomas > > Hallo, > noch eine Frage. > > Ist Threat_lock au�er für die extrene Harware(LCD, I2C...) auch für die interne Hardware > z.B. Speichervorgänge auf dem EEprom erforderlich? Nein. Zugriffe auf das Interne EEPROM sind atomar. Auch für die externe Hardware ist es nur selten erforderlich. Nur wenn ich 2 laufende Threads (das Hauptprogramm ist auch ein Thread) habe, die gleichzeitig auf das gleiche Device zugreifen wollen, mu� ich synchronisieren. Im Falle eines Bus wie I2C oder SPI, ist der ganze Bus das Device. Das hei�t nur ein Thread sollte gleichzeitig auf einen Bus zugreifen, sonst kann es zu folgenden Problem kommen: Thread 1 adressiert I2C Device A Thread 2 adressiert I2C Device B Thread 2 schreibt auf Bus Thread 1 schreibt auf Bus, aber erwischt das falsche Device, da Thread 1 denkt Device A sei noch adressiert Gruss Peter > > Danke > > MfG > Thomas | ||
Antwort schreiben Antworten: |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum