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


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.