Forum: Mikrocontroller und Digitale Elektronik Assembler NOP in C Code einbinden


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Zulu (Gast)


Lesenswert?

Hallo,

kann mir jemand sagen, wie ich ein Assembler NOP (no operation) in C
einbinde?? Muß das in Assembler machen. Kenne weder den Assembler Code
dafür, noch den C-Teil da ich sowas noch nie gemacht hab.

Danke,
Zulu
von m@is (Gast)


Lesenswert?

Hallo Zulu,

ich benutze gerade eine Warteschleife die so aussieht:


void i2c_wait(void)
{
  unsigned int i;

  for (i = 0; i < I2CWAIT; i++)
    {
    _NOP();
                _NOP();
    _NOP();
    _NOP();
          }
}


weiterhin habe ich in meiner IAR Workbench den Header In430.h
eingefügt, der folgende Zeile enthält

void _NOP(void);

Schau mal in deinen Headerfiles nach, es könnte auch nop() oder _nop_()
heißen.

Gruß m@is
von Zulu (Gast)


Lesenswert?

Hi m@is,

danke, stimmt, NOP ist im header definiert, das macht die Sache
natürlich einfach. Funzt!

Brauche nur einen NOP um den benötigten Zeitstop zu erhalten:
_NOP();

Danke,
Zulu
von m@is (Gast)


Lesenswert?

da ich gerade drauf gestoßen bin hier der Auszug aus iomacros.h von
mspgcc:

...

/***** USEFULL MACROS DEFENITIONS *********/


/* no operation */
#define nop()  _asm_ __volatile__("nop"::)

/* IAR compatibility functs */
#define _NOP()  nop()

...


Gruß m@is
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.