Forum: Mikrocontroller und Digitale Elektronik delay.h und Interrupt


von Nullahnung (Gast)


Lesenswert?

Hallo,

mal ne dumme Frage: kann zB.: _delay_us(500); von Interrupts 
unterbrochen werden?

Danke und schöne Grüße

von Achim M. (minifloat)


Lesenswert?

ja. _delay macht nur warteschleifen mit for-schleife.
mfg mf

von Micha (Gast)


Lesenswert?

_delay produziert ein Assembler-Makro, das einfach nur Zeit verzählt. In 
dem Makro ist kein CLI eingebaut, demnach kann ein Interrupt 
dazwischenfunken. Falls du das nicht wünschst, einfach ein cli() vor 
_delay() setzen.

von Nullahnung (Gast)


Lesenswert?

Ok, danke

ne im Gegenteil, ich möchte nicht das dieses Makro mein System 
"blockiert"

von Falk B. (falk)


Lesenswert?

@Nullahnung (Gast)

>ne im Gegenteil, ich möchte nicht das dieses Makro mein System
>"blockiert"

Das tut es aber. Denn die CPU dreht Strafrunden. Nur die Interrupts 
laufen dazu "parallel". Wie man es meist besser macht, siehe 
Multitasking.

MFG
Falk

von Nullahnung (Gast)


Lesenswert?

danke für den Link

muss ich mir mal genau ansehen wenn ich Zeit hab
Momentan bin ich froh, dass meine Interrupts durchgehen^^

Weil ich grad dabei bin: wird die
1
eeprom_write_byte();
 von Interrupts unterbrochen? :-)

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.