mikrocontroller.net

Forum: Compiler & IDEs AVRGCC und Assemblermacro´s


Autor: Aart Keijmel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich versuche mühselig die GrafikLCD routinen von Bakke aus AVRGCC 
aufzurufen , habe das ein teil des gd50_gfx_lib.asm file in 
g_lcd_putbyte.s umbenannt , die Dateiname in Make unter  ASRC 
eingetragen , in das Assemblerfile #include <macros.inc>
und #include <ctoasm.inc> eingefügt ,die Routine vorher  .global 
g_lcd_putbyte und .func g_lcd_putbyte eingefügt und am ende .endfunc

 beim builden kriege ich nun immer Error : constant value required bei 
jeder Assembler Anweisung  im file steht da z.B. cbi portc,1

was mache ich bloß falsch
Ich wollte ein Nokia 7110 LCD unter AVRGCC ansteuern ,hat jemand da ein 
tip , oder beispiel oder Bakke´s routinen eingebunden wo es funktioniert 
damit ich mein Fehlern abschaffen kann ??
Bitte Antwort per email  dl6du@t-online.de
Danke

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Geht so einfach nicht.

Richtig wäre es, die Aufrufe von PORTC etc. umzuschreiben in
_SFR_IO_ADDR(PORTC).  Ich befürchte, daß Du dazu keine Lust
haben wirst.

Alternativ kann man sich mit #define __SFR_OFFSET 0 behelfen.

Lesestoff dazu:
http://savannah.nongnu.org/download/avr-libc/doc/a...

Autor: Aart Keijmel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Jörg
Habe es probiert mit #define __SFR_OFFSET 0 an anfang , aber es ändert 
sich leider nichts..

solls den heissen

cbi _SFR_IO_ADDR(PORTC),1 ????

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Letzteres wäre der ,,richtig saubere'' Weg, ja.

Ersteres muß auch gehen, aber Du mußt das natürlich vor dem
#include <avr/io.h> angeben.  Dieses File wertet ja den Makro
__SFR_OFFSET bereits aus.

Autor: Aart Keijmel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es bleibt konsequent beim
Error : constant value required
und es ist nun noch
Error :  ´',required
Error : number must be less than 8
Error : garbage at end of line

Alles wird noch schlimmer und ich weis überhaupt nicht wodrann es liegen 
soll
der Include hab ich drinn
denke der syntax ist noch falsch

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, muß ich mir dann wohl selbst nochmal ansehen.

Mit avr-gcc -E kannst Du Dir angucken, was der Präprozessor
daraus macht.

73! de DL8DTl

Autor: Aart Keijmel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aha es gibt noch mehr OM´s...
Ja ich werde es mal mit -E versuchen , bin noch nicht so lange mit 
avrgcc unterwegs , alles neu für mich.. kämpfe mich durch..
lesen lesen lesen...
73es

Autor: Aart Keijmel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Jörg
Gibs schon was neues??
Haste nochmal probiert??

73es Aart

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Öhm, nö.  Bei mir tat das aber soweit, hast Du vielleicht mal ein File,
mit dem das nicht tut?

Autor: Aart Keijmel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem ist ja schon bei 2 Zeilen , von Programm kann man da noch
gar nicht reden..


im C Programm steht

extern void g_lcd_putbyte(unsigned char)

und nach main :

g_lcd_putbyte(10);


und im make steht:

ASRC = g_lcd_putbyte.s


im file g_lcd_putbyte.s steht:

#include <macros.inc>
#include <ctoasm.inc>
#include <avr/io.h>

.global g_lcd_putbyte
.func g_lcd_putbyte
g_lcd_putbyte:
cbi __SFR_IO_ADDR(PORTC),1
ret
.endfunc


und schon geht nix...

reicht das ??

...Aart

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.