mikrocontroller.net

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


Autor: Andreas D. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: thkais (Gast)
Datum:

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

Autor: Andreas D. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas D. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#include <avr/io.h> vergessen?

Autor: Lumpi (Gast)
Datum:

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



SG Lumpi

Autor: Andreas D. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
??? du meinst selbst schreiben oder???

Autor: Andreas D. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.