Hallo, ich habe eine Asm datei mit diversen funktionen und die soll in mein c-projekt mit eingebunden werden so das ich die funktionen dort drin ganz normal benutzen kann. Nur alle versuche sind fehl geschlagen.. Als compiler benutze ich WinAVR 20060125, µC ist ein normaler avr mega161. Kann mir jemand helfen?
Beschreibe ,,alle versuche sind fehl geschlagen'' genauer: was hast du probiert, und was ging damit nicht.
naja, ich hab im makefile das asm source file hinzugefügt ich nenne es mal test.S also im makefile: ASRC = test.S beim compiliern kommen dann sehr viele fehler, unter anderem: "Error: number must be less than 32" bei der Anweisung: cbi SPCR,SPE und ich hab herausgefunden das er die Registernamen vom mega161 nicht kennt, abwohl ich mit der anweisung "#include <avr/io.h>" diese doch hinzugefügt haben müsste... wenn ich dazu noch eine ander .h datei includen will kommt solche Fehler wie: C:/WinAVR/avr/include/ctype.h:72: Error: unknown opcode `extern' weiss nich was ich machen soll...
> "Error: number must be less than 32" > bei der Anweisung: cbi SPCR,SPE Dann ließ dir bitte den Abschnitt über <avr/sfr_defs.h> im avr-libc Manual durch. Dort stehen die Optionen beschrieben, die du dafür hast, z. B. cbi _SFR_IO_ADDR(SPCR), SPE > wenn ich dazu noch eine ander .h datei includen Das ist für Assemblerdateien nicht gestattet, effektiv wird nur <avr/io.h> unterstützt. Was soll der Rest auch, die beschreiben doch C-Interfaces?
ööhm sorry, aber was du erzählst ist schwachsinn... in der io.h sind die portname für den aktuellen benutzen µC included somit auch SPCR = 0x0D und SPE = 6.... ersetze ich die namen mit dem wert, kommt der Fehler nicht mehr, obwohl das ja nicht sein dürfte da alles mit eingebunden wurde...also erzähl du mir nich ich soll irgendwas durchlesen! Und das mit der ander .h datei einbinden ist auch nicht richtig, bei anderen projekten gehts und wieso auch nicht, man bindet genauso #defines ein wie es die io.h datei auch macht...
> ööhm sorry, aber was du erzählst ist schwachsinn...
Auf dieser Basis brauch ich mit dir nicht mehr weiterzudiskutieren.
Sag mal, wer von uns beiden hatte hier eigentlich das Problem und
wollte gern von anderen Leuten Hilfe haben? Du oder ich?
Ich kann mir auch selbst helfen, danke.
Jörg hat recht, ich habe ebenfalls ehemals alten ARV-assembler Code für einen neuen Prozessore von AVR mit C gemischt. @Moe001 schau Dir das Manual durch oder lass es bleiben die Leute mit 'Schwachsinn' zu beleidigen :-((. gruss herbert
Sorry, aber ich war wütend, weil Jörg so herablassend gemeint hab ich hab keine ahnung und solls mir was durchlesen, obwohl es damit garnix zu tun hat. Ich hab auch schön öfter asm files eingebunden und es hat funktioniert, nur jetzt nicht mehr, muss mit der neuen Winavr version zusammenhängen... ausserdem hab ich niemanden persönlich beleidigt, meinte ja nich das er schwachsinnig ist, sondern nur seine aussage zu meinem problem...na gut jetzt könnte jemand sagen, schwachsinnig ist der, der schwachsinniges tut....aber dann wär ichs wohl auch, also sorry...
> obwohl es damit garnix > zu tun hat. Wenn du meinst... Ich denke sehr wohl, dass es genau damit was zu tun hat, und wenn du dir die entsprechende Doku durchlesen würdest, wüsstest du auch, welche Optionen du alle so hast. Im Übrigen, wenn du dir die entsprechende ioXXX.h mal ansiehst, wird du feststellen, dass die Definitionen für die IO-Register eben keineswegs so einfach sind, wie von dir behauptet.
Schwachsinn ist schon ein starker Hammer, ich nehme lieber "Quatsch mit Soße", meint zwar das gleiche, klingt aber nicht so persönlich :-) Allerdings auch nur, wenn ich mir meiner Sache 101%-ig sicher bin. Peter
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.