Hallo, mich interessiert gerade was. Und zwar gibt es ja diesen TImer. Dieser löst bei jedem ÜBerlauf einen Interrupt aus. So, läuft der Zähler wirklich parallel zur hauptschleife, bzw hat der controller sozusagen ein eigenes "BLOCK" nur um den counter zu inkrementieren? Und wie ist es mit dem Interrupt der ausgelöst wird? Läuft der wirklich neben der Hauptschleife in einem eigenen "BLOCK" oder ist das alles nur schnelles abwechselndes bearbeiten der Befehle? => Zbsp bei einem 1 Kern computer prozessor da wird das multitasking ja nur "simuliert", durch schnelles abwechseln der zu bearbeitenden befehle! Wie sieht das bein uC aus? Danke, schönen abend :)
@blabla (Gast) >mich interessiert gerade was. Und zwar gibt es ja diesen TImer. Dieser >löst bei jedem ÜBerlauf einen Interrupt aus. Ja, kann man einstellen. Siehe Timer und Interrutpt. >So, läuft der Zähler wirklich parallel zur hauptschleife, Ja, es ist ein unabhängigs Stück Hardware, dass parallel zur CPU arbeitet. > bzw hat der >controller sozusagen ein eigenes "BLOCK" nur um den counter zu >inkrementieren? ??? >Und wie ist es mit dem Interrupt der ausgelöst wird? Läuft der wirklich >neben der Hauptschleife in einem eigenen "BLOCK" Nein. > oder ist das alles nur >schnelles abwechselndes bearbeiten der Befehle? Ja. Bei einem Interrput wird das aktuelle Program unterbrochen (Nomen est omen), die Interruptserviceroutine ausgeführt und dann das normale Programm weiter abgearbeitet. >=> Zbsp bei einem 1 Kern computer prozessor da wird das multitasking ja >nur "simuliert", durch schnelles abwechseln der zu bearbeitenden >befehle! Ja, siehe Multitasking. >Wie sieht das bein uC aus? Genau so. Wenn gleich es einige, größere Mikrocontroller gibt, die viele unabhängige, paralle arbeitende Hardwaremodule haben (DSP, Ethernet-Interface, DMA etc.).
Jeder Prozessor hat verschieden Module in sich die alle parallel mit dem Systemtakt, oder einem davon abgeleiteten Takt laufen. Diese Module arbeiten voneinander unabhängig und parallel. Allerdings können sich die Module auch gegenseitig steuern und überwachen. Welche Module in einem Prozessor enthalten sind ist unterschiedlich. alle haben jedoch die folgenden Module: ALU Interruptcontroller Speichercontroller IO controller Optional sind : UART SPI TWI TIMER CAN . . . . . Wie das jeweils miteinander Verbunden ist, was der spezielle Prozessor an Modulen hat kannst du dem Datenblatt entnehmen
Hallo, Der Timer ist Hardware, hier geschieht auch das Hochzählen und das prüfen der Bedingung für den Interrupt. Nach dem Auslösen springt der Controller aus dem Hauptprogramm auf die in der Interrupt Tabelle dafür angegebene Adresse und führt diesen Programmteil aus. Danach springt er wieder zurück ins Hauptprogramm. Die Details dazu findet man im Datenblatt des jeweiligen Controllers.
blabla schrieb: > Wie sieht das bein uC aus? Die µC haben meist viele verschiedene Einheiten, die parallel arbeiten, z.B. USART, SPI, TWI, Timer, ADC, CPU, Watchdog usw.
Oder man nimmt einen Propeller. Dann heißt es aber nicht mehr multitasking sonden multiprozessing. Da kann ohne weiteres ein Kern den anderen triggern und die einzelnen Routinen können sich gegenseitig überholen.
@ Christian H. (netzwanze) Benutzerseite >Oder man nimmt einen Propeller. Hmmm, wenn gleich das Konzept nett klingt, ist der praktisch eher vermurkst. Schon dieser komische Basic-artige Dialekt SPIN. > Dann heißt es aber nicht mehr >multitasking sonden multiprozessing. Da kann ohne weiteres ein Kern den >anderen triggern und die einzelnen Routinen können sich gegenseitig >überholen. Nennt man dann race condition und ist der Schuss ins Knie. Gerade Mehrprozessorsystem wollen systematisch programmiert sein. http://de.wikipedia.org/wiki/Race_Condition
Oh, wie es scheint gibts jetzt auch C für den Propeller. Hmmm. http://www.parallax.com/tabid/407/Default.aspx
Falk Brunner schrieb: >> Dann heißt es aber nicht mehr >>multitasking sonden multiprozessing. Da kann ohne weiteres ein Kern den >>anderen triggern und die einzelnen Routinen können sich gegenseitig >>überholen. > > Nennt man dann race condition und ist der Schuss ins Knie. Gerade > Mehrprozessorsystem wollen systematisch programmiert sein. > > http://de.wikipedia.org/wiki/Race_Condition dafür gibt es zu vernünftiger Programmierung dann auch locks / semaphoren im Propeller. Und da keine Interrupts verwendet werden müssen lässt es sich im Propeller sehr deterministisch programmieren.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.