Forum: Mikrocontroller und Digitale Elektronik ESP8266 Nodemcu und C-Header


von Mathias F. (savag)


Lesenswert?

Hallo,
ich verwende den ESP8266 mit nodemcu und habe dazu eine Frage.

Ich habe jezt schon mehrfach gelesen dass es möglich ist C-Funktionen in 
LUA zu verwenden. Bei mir ist es noch einfacher :) ich würde gerne nur 
eine Header Datei in Lua einbinden, aber wie???

Warum nur eine Header Datei fragt sich jetzt jeder. Ganz einfach, die 
wird AUTOMATISCH erstellt und beinhaltet Adressierungen auf die ich es 
abgesehen habe.
1
#define MOD_SINGLE1_ALG0_GAIN1940ALGNS1_ADDR           0
Dies nur mal als Beispiel.

wie kann ich LUA nun dazu bewegen diese Adressvariabel zu verwenden??

Gruß

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das ist keine Variable. Auch in C nicht. Solange das in Deinem 
C-Programm nirgends genutzt wird, hat es auch für den LUA-Interpreter 
exakt gar keine Auswirkung.

von Mathias F. (savag)


Lesenswert?

Habe mich da etwas falsch ausgedrückt. Ja es ist ein define.
Und es gibt zu dieser Header Datei KEIN C Programm!
Das Tool erstellt diese Header mit diesen defines (Adressen).
Um aber meinem LUA Script zu sagen wo es auf dem I2C etwas machen soll
muss ich diese Header Datei verwenden oder alternative Abtippen und in 
LUA Manuell eintragen. Genau das möchte ich aber vermeiden.

Hier soll LUA auf das Register MOD_SINGLE1_ALG0_GAIN1940ALGNS1_ADDR
eben Daten schreiben.

von Klaus (Gast)


Lesenswert?

Mathias F. schrieb:
> #define MOD_SINGLE1_ALG0_GAIN1940ALGNS1_ADDR           0
> Dies nur mal als Beispiel.
>
> wie kann ich LUA nun dazu bewegen diese Adressvariabel zu verwenden??

das #define etwas umschreiben oder von einem Script machen lassen

MOD_SINGLE1_ALG0_GAIN1940ALGNS1_ADDR = 0

und dann noch

HierDerGainDenIchInVielenVersuchenAlsBestenHerausgefundenHab = 5

Dann kann man soetwas schreiben

i2c.write(0, MOD_SINGLE1_ALG0_GAIN1940ALGNS1_ADDR, 
HierDerGainDenIchInVeilenVersuchenAlsBestenHerausgefundenHab)

MfG Klaus

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.