www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Fehlermeldung studio 4 overlap


Autor: mojo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo zusammen

hab etwas code geschrieben für einen atmega8 in avr studio 4.
beim assemblieren kam eine fehlermeldung:

error: Overlap in .cseg: addr=0x9 conflicts with 0x9:0xa

die fehlermeldung ist erst für (ldi uni1, low(ramend)
wenn ich das auskomentiere kommt der fehler für die nächste zeile und so 
weiter.
ich habe erst ein ok bekommen als ich alles nach unten auskomentiert 
hab.
einen fehler hab ich nicht gefunden und durch meine frust werde ich auch 
so schnell keinen finden.
darum bitte ich euch um hilfe.

mein code bis jetzt:
.include "m8def.inc"
;START-----------------------------------------

.def uni1 = r16
.def uni2 = r17
.def seceiner = r18
.def seczehner = r19
.def ausgabeE = r20
.def ausgabeZ = r21
.def eingabe = r22
.def eingabealt = r23
.def status = r24
.def zaehler = r25

.org 0x000
  rjmp start
.org ovf0addr
  rjmp runter
.org ovf1addr
  rjmp zeigen
;INITIALISIERUNGEN-----------------------------
start:
;STACK:
  ldi uni1, low (ramend)
  out spl, uni1
  ldi uni1, high (ramend)
  out sph, uni1
;timer0:
  ldi uni1, (1<<cs02)|(1<<cs00)
  out tccr0, uni1      ;prescaler für timer0 1024
;timer1:
  ldi uni1, (1<<cs22)|(1<<cs20)
  out tccr1b, uni1        ;prescaler für timer2 128
  ldi uni1, (1<<toie2)
  out timsk, uni1        ;interrupt enabled
;I/O:
  ser uni1
  out ddrb, uni1        ;portb ist output
  out ddrc, uni1        ;portc ist output
  clr uni1
  out ddrd, uni1        ;portd ist input
  ser uni1
  out portd, uni1        ;interne R aktiviert
  sei
;TASTENABFRAGE UND WARTESCHLEIFE---------------

;ZIFFERN ANZEIGEN------------------------------
zeigen:

runter:

Autor: Frank L. (hermastersvoice)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mach mal ne komplette Interrupttabelle rein oder setz nen neuen .org

Autor: mojo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo ich nochmal
ich hab mal was gefuttert und mich wieder rann remacht ;-)

ich hab erst ovf1 mit ovf2 vertauscht da ich den timer 2 benutzen will,
dann hab ich ovf0 und ovf2 vertauscht und nun geht das mit dem 
assemblieren!

ich denke ich hab nur die interupt zeilen (wenn jemand weiß was ich 
meine) vertauscht.

ich danke dir frank l. für die antwort.

gruß und wenn es mal nicht klappt einfach mal was essen hegen hehe

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

deshalb steht bei mir am Programmbeginn immer ein

;INITIALISIERUNGEN-----------------------------

.org INT_VECTORS_SIZE

start:
;STACK:
  ldi uni1, low (ramend)
  out spl, uni1
  ldi uni1, high (ramend)
  out sph, uni1

INT_VECTORS_SIZE zeigt auf die Adresse hinter den Interrupt-Vectoren und 
ist in den AVR-Includes definiert.

So spielt es keine Rolle, wieviel Vectoren in welcher Reihenfolge oben 
definiert werden.

Gruß aus Berlin
Michael

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.