xtal in Peter Danneggers 1-wire

Gast #348417
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
Gast #348418
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
Gast #348419
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
#348420
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
Gast #348421
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
#348422
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.
Gast #348423
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

Antwort schreiben

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.

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.