AVRGCC und Assemblermacro´s

Gast #40391
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
Gast
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 ????
Gast
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.
Gast
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
Gast
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
Gast
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
Gast
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

Eine eigene Frage? Dieser Thread ist über 23 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.