TIMER GLEICHZEITIG neben dem Programm

Gast #3061679
Lesenswert?

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 :)
#3061719
Lesenswert?

@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.).
Gast #3061726
Lesenswert?

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
Gast #3061735
Lesenswert?

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.
#3061910
Lesenswert?

@  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
Gast #3141206
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren