www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik xtal in Peter Danneggers 1-wire


Autor: Sanlo (Gast)
Datum:

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

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sicher, dass das gleichheitszeichen nicht weg muss? (War doch so bei
.equ im Avr Assembler)

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
.equ ist doch eine Makrodefinition. Dann sollte das = auf jeden Fall
überflüssig sein.

Autor: Stevko (Gast)
Datum:

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

Autor: Stevko (Gast)
Datum:

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

Autor: Sanlo (Gast)
Datum:

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

Autor: Peter Dannegger (peda)
Datum:

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

Autor: Stevko (Gast)
Datum:

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

Autor: Karl heinz Buchegger (kbucheg)
Datum:

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

Autor: Sanlo (Gast)
Datum:

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

Autor: Sanlo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was zum Teufel ist dieses cseg???

Ich hab die kompletten 355 Seiten ATMega16 Doku durchsucht und  rein
garnichts gefunden.

Kennt irgendjemand den Fehler???

Autor: Alex Trusk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Alex Trusk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://www.google.com/search?q=cseg+avr sollte es natuerlich heissen...

Autor: Simon K. (simon) Benutzerseite
Datum:

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

Autor: Sanlo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
super, danke...

->Sanlo

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.