Hallo, ich bekomme die Fehlermeldung e:\Eigene Dateien\Test_1-wire\Test_1-wire.asm(3): error: xtal: Unknown instruction or macro aber die Anweisung .equ xtal = 1000000 hab ich drin. Warum erkennt er das nicht? Achja ATMega16 AVRStudio4 Danke ->Sanlo
sicher, dass das gleichheitszeichen nicht weg muss? (War doch so bei .equ im Avr Assembler)
.equ ist doch eine Makrodefinition. Dann sollte das = auf jeden Fall überflüssig sein.
Guten Abend Sanlo, die Anweisung: ".equ xtal = 1000000" stimmt schon. Ich vermute mal das Du diese Anweisung in einer Include-Datei stehen hast und nicht in der Datei:"Test_1-wire.asm". Wahrscheinlich wirst Du in der Datei "Test_1-wire.asm" eine andere Konstante mit "xtal" berechnen, z.B. Wire_Clock= xtal/irgendwas. Sind meine Annahmen richtig, hast Du vergessen die Datei in der die Anweisung: ".equ xtal = 1000000" steht, zu "includieren". Zur genaueren Diagnose mußt Du aber den Quelltext posten. Gruß Stevko
@Rahul: Ich denke mal das sich Sanlo im ASM-Gebiet bewegt. Da ist .equ folgendermaßen definiert: EQU = Set a Symbol (Equ)al to an Expression. Beispiel: ".equ xtal = 1000000" Also lieber Compiler immer wenn das Wort "xtal" auftaucht, dann setze dafür immer "1000000" ein. Gruß Stevko
die Test_1-wire geht so los: .include "m16def.inc" .include "LCDTRTC.H" xtal equ 1000 ;1000kHz w15 equ ( xtal + 799 ) / 719 w60 equ ( xtal + 199 ) / 169 w480 equ ( xtal + 24 ) / 20 w66 equ ( xtal + 181 ) / 184 und das ist die LCDTRTC.H ;*********************************************************************** ** ;----------------------------------------------------------------------- -- ; Definierung der Konstanten ;----------------------------------------------------------------------- -- .equ xtal = 1000000 ;1.0MHz (max 3.2MHz) Bei der Gelegenheit könnte mir auch mal jemand erklären, wie die grandiose Rechnerei zustandekommt. Die hab ich ja so von PeDa übernommen. @PeDa: Danke für den Quellcode. Wenn ich den jetzt noch verstehe und zum Laufen bringe ist meine Welt in Ordnung. :-) ->Sanlo
Warum denken die Leute immer, man müßte sich an jede Programmzeile genau erinnern, die man mal irgendwo veröffentlicht hat ? Wenn es sich hier auf ein Codebeispiel bezieht, dann poste doch Deine Frage in dem entsprechenden Thread, damit man nachschauen kann. Und wenn es nicht im Mikrocontrollerforum war, dann poste den Link auf den Beitrag. Peter
@Sanlo: Deine Fehlermeldung ist: e:\Eigene Dateien\Test_1-wire\Test_1-wire.asm(3): error: xtal: Die (3) besagt das der Fehler in Zeile 3 ist. Nun sehen wir uns mal Zeile 3 an. (1).include "m16def.inc" (2).include "LCDTRTC.H" (3) xtal equ 1000 ;1000kHz Und was sehen wir da? Das "xtal equ 1000 ;1000kHz" ist nur ein Kommentar also bitte mit ";" kennzeichnen. -> ;xtal equ 1000 ;1000kHz oder ;xtal = 1000kHz. Gruß Stevko
Irgendwas stimmt da nicht. Der Name des Include-File, LCDTRTC.H, lässt für mich den Rückschluss zu, dass das irgendwas mit einem LCD zu tun hat. Auch sind offensichtlich die Einheiten nicht gleich: In LCDTRTC.H ist xtal mit 1000000, also in Hertz dimensioniert. In Test_1.wire.asm wird xtal aber mit 1000 equated. Auch der zugehörige Kommentar lässt darauf schliessen, dass hier die Einheit KiloHertz ist. Eines ist klar: 1 xtal muss weg. Nur muss die Verwendung des anderen auf die Richtige Einheit angepasst werden. Oder aber die Alternative: Ein xtal komplett auf was anderes umbenennen (Sowohl die equ Definition als auch die Verwendung) Das alles ist nur geraten und aus dem wenigen Code den ich hier sehe abgeleitet. Aber eines ist schon klar: Namen wie 'xtal' sind eine schlechte Wahl für ein Modul, da die Gefahr von Namens-Duplikaten besteht. Besonders prekär wird die Situation, wenn, wie hier, unterschiedliche Einheiten im Spiel sind.
gut, ich hab ein xtal rausgenommen und jetzt kommt zumindest beim Compilieren kein Fehler mehr. dafür jetzt dieser... e:\Eigene Dateien\Test_1-wire2\ovf0int.inc(7): error: Overlap in .cseg: addr=0x12 conflicts with 0x0:0xff wie kann ich mir denn in AVRStudio4 die Speicherbereiche anzeigen lassen, damit ich dem Fehler aus die Pelle rücken kann? Oder wie würdet ihr an den Fehler rangehen? ->Sanlo
was zum Teufel ist dieses cseg??? Ich hab die kompletten 355 Seiten ATMega16 Doku durchsucht und rein garnichts gefunden. Kennt irgendjemand den Fehler???
>>Ich hab die kompletten 355 Seiten ATMega16 Doku durchsucht und rein garnichts gefunden. Guter Versuch, allerdings in die falsche Doku geschaut :-) Schau in die Hilfe vom AVR-Studio
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.