Forum: Mikrocontroller und Digitale Elektronik Fehlermeldung studio 4 overlap


von mojo (Gast)


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:

von Frank L. (hermastersvoice)


Lesenswert?

mach mal ne komplette Interrupttabelle rein oder setz nen neuen .org

von mojo (Gast)


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

von Michael U. (amiga)


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

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
Noch kein Account? Hier anmelden.