Forum: Mikrocontroller und Digitale Elektronik TIMER GLEICHZEITIG neben dem Programm


von blabla (Gast)


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 :)

von Frank (Gast)


Lesenswert?

Steht alles im Datenblatt deines Controllers.

von Falk B. (falk)


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.).

von Ralph (Gast)


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

von Blinky (Gast)


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.

von Werner (Gast)


Lesenswert?

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.

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

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.

von Falk B. (falk)


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

von Falk B. (falk)


Lesenswert?

Oh, wie es scheint gibts jetzt auch C für den Propeller. Hmmm.

http://www.parallax.com/tabid/407/Default.aspx

von MJB (Gast)


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.

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
Noch kein Account? Hier anmelden.