-         

Ergebnis 1 bis 2 von 2

Thema: Überlappender Speicherbereich

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.03.2006
    Beiträge
    200

    Überlappender Speicherbereich

    Anzeige

    Hallo,

    da ich gemerkt habe dass meine Frage quatsch ist hab ich sie zurückgenommen und stelle eine andere...

    Beim komplieren des Programms bekomme ich folgende Fehlermeldung:
    D:\Arbeitsverzeichnis\AVRStudio\test1.asm(24): error: Overlap in .cseg: addr=0x9 conflicts with 0x9:0xa

    Kommentiere ich eine der beiden Interrupt-Vektoren aus, ist die Fehlermeldung weg
    keine Ahnung woran das liegen mag

    Code:
     .INCLUDE <m8def.inc>
    
     .def temp = r17
     .equ TIMERWERT_A = 100
     ;------------------------------------------------------
     ;     Start Adresse 0000 /Interruptvektoren
     ;------------------------------------------------------
     .org 0x000
    	rjmp Init			; Interruptvektoren überspringen
     
     .org OVF0addr
     	rjmp Timer0_Interrupt ;Multiplexing	
    
     .org OC1Aaddr
     	rjmp Timer1A_Interrupt ;Daten holen
    
     ;------------------------------------------------------
     ;     INITIALIZE
     ;------------------------------------------------------
    INIT:
    ;Stack Pointer setzen
      ldi temp,high(RAMEND)
      out SPH,temp
      ldi temp,low(RAMEND)
      out SPL,temp
    
    
    ;Timer1 einstellen
      ldi temp,HIGH(TIMERWERT_A)		
      out OCR1AH,temp				; Vergleichsregister (LowByte) mit Var Timerwert laden
      ldi temp,LOW(TIMERWERT_A)
      out OCR1AL,temp				; Vergleichsregister (HighByte) mit Var Timerwert laden
    
      ldi temp,(1<<CS12)|(1<<WGM12)	; Prescaler, Systemtakt durch 256 teilen 
      out TCCR1B,temp				; und Timer im CTC-Modus, siehe Tabelle S.99
      
    
    
    ;Timer0 einstellen 
      ldi temp,(1<<CS00)			;Timer0 freigeben, keine Teilung des Systemtaktes
      out TCCR0,temp
    
    ;Interrupt für Timer0/1 einstellen
      ldi temp,(1<<TOIE0)|(1<<OCIE1A)
      out TIMSK,temp
    
      sei							; globale Interruptfreigabe
    
    ;------------------------------------------------------
     ;   HAUPTSCHLEIFE
     ;------------------------------------------------------
    Hauptschleife:					
    
    
    rjmp Hauptschleife
    
    
     	
    Timer0_Interrupt:	
    				   
    reti
    
    
    Timer1A_Interrupt:
      
    reti
    
    
     ;------------------------------------------------------
     ;   ENDE
     ;------------------------------------------------------
     Ende:  
            rjmp Ende
    Gruß, JK

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.03.2006
    Beiträge
    200
    Ha, ich habs inzwischen doch gefunden.
    Purer Zufall, aber falls jemand mal knobeln will...

    Der Programmcode selber ist richtig, eigentlich ist es einfach wenn man ISRs öfter verwendet.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •