Forum: Mikrocontroller und Digitale Elektronik ATmega8: ASM zu C++


von Andreas D. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!
Ich habe mich bis jetzt immer nur mit ASM auseinandergesetzt, und
möchte nun auch in C programmieren. Jedoch möchte ich die LCD und I2C
Routinen nicht wieder neu schreiben und sie möglichst "mitnehmen"!
Nun habe ich aber keine Ahnung, was hier der beste Weg ist bzw. in wie
weit es überhaupt sinnvoll ist. Vielleicht hat auch jemand schon eine
C-Lib für genau meinen Anwendungsfall (LCD wird über einen Portexpander
im 4-bit Modus betrieben) oder ich muss das ganze wirklich neu schreiben
- da überleg ich mir aber wirklich, nicht gleich bei ASM zu bleiben...
:(

Hoffe auf gute Lösung ...

Gruß Andreas

von thkais (Gast)


Lesenswert?

Beim GCC kann man Assembler-Dateien einbinden. Schau mal ins
entsprechende Tutorial in den Artikeln.

von Andreas D. (Gast)


Lesenswert?

Gibts da eigentlich keine fertigen Libs? So ziemlich jeder braucht doch
eine Lib für ein LCD, und die meisten werden es doch auch mit einem
Portexpander betreiben, oder komm nur ich auf so Idee bzw. gibs
einfachere oder günstigere Lösungen?

Grüße Andreas

von Andreas D. (Gast)


Lesenswert?

Jetzt hab ich noch eine Frage:
Hab mich jetzt mal dazu gesetzt und das ganze umgeschrieben, zeigt aber
beim kompilieren sehr viele fehler an - und zwar in jeder zeile, wo z.B:
TWCR, TWINT oder TWDR steht. Da muss man diese Ausdrücke immer so wie
diesen _SFR_IO_ADDR(DDRD) schreiben? - oder gibs da vielleicht noch
spezialbefehle???

Grüße Andreas

von Rolf Magnus (Gast)


Lesenswert?

#include <avr/io.h> vergessen?

von Lumpi (Gast)


Lesenswert?

Man kann den Assemblercode fast 1:1 in C umsetzen (gute Übung).



SG Lumpi

von Andreas D. (Gast)


Lesenswert?

??? du meinst selbst schreiben oder???

von Andreas D. (Gast)


Lesenswert?

so, jetzt hab ich keine fehler mehr! juhu!
die Funktion dürfte aber noch nicht gegeben sein - da hätte ich noch
zwei fragen:

1. was bedeutet eigentlich ein $ vor einer Zahl -> HEX??

2. Wie funktioniert das eigentlich mit den Übergabevariablen?? Soviel
ich mitbekommen habe, befinden die sich im Register 24/25, stimmt
das???

Danke schonmal für eure Beiträge!!
Andreas

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.