- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 3 von 3

Thema: .byte Befehl verursacht Fehler bei Simulation mit AVR Studio

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    11.11.2006
    Beiträge
    6

    .byte Befehl verursacht Fehler bei Simulation mit AVR Studio

    Anzeige

    Praxistest und DIY Projekte
    Hi,

    ich benutze zum Programmieren in Assembler das Programm myAVR Workpad und zum similieren das AVR Studio 4. Da ich jetzt ein paar Bytes brauche um Daten aus dem SRAM auszulesen bin ich am definieren eines Bytes (.byte) hängen geblieben . Na ja bei der Simulation stand immer da AVR Simulator: Invalid opcode 0x00bf at address 0x000017 sehr komisch.
    Wenn ich das .byte lösche geht alles wunderbar also ligt es 100% an diesem einem Befehl. Suche im Internet ergab leider keine richtige Lösung. Wenn mir mir jemand Helfen kann wäre das richtig super.

    Viele Grüße Micha

    P.S. der Code erfüllt keine Funktion is nur zum Testen nicht wundern

    Code:
    .include	"AVR.h"
    
    daten:	.byte	10
    ;------------------------------------------------------------------------
    ;Reset and Interrupt vector             ;VNr.  Beschreibung
    begin:	rjmp	main	;1   POWER ON RESET
    	   reti		;2   Int0-Interrupt
    	   reti		;3   Int1-Interrupt
    	   reti		;4   TC2 Compare Match
    	   reti		;5   TC2 Overflow
    	   reti		;6   TC1 Capture
    	   reti		;7   TC1 Compare Match A
    	   reti		;8   TC1 Compare Match B
    	   reti		;9   TC1 Overflow
    	   reti		;10  TC0 Overflow
    	   reti		;11  SPI, STC Serial Transfer Complete
    	   reti		;12  UART Rx Complete
    	   reti		;13  UART Data Register Empty
    	   reti		;14  UART Tx Complete
    	   reti		;15  ADC Conversion Complete
    	   reti		;16  EEPROM Ready
    	   reti		;17  Analog Comparator
    	   reti		;18  TWI (I²C) Serial Interface
    	   reti		;19  Store Program Memory Ready
    ;------------------------------------------------------------------------
    ;Start, Power ON, Reset
    main:
    
    	ldi	r16,lo8(RAMEND)
    	out	SPL,r16
    	ldi	r16,hi8(RAMEND)
    	out	SPH,r16
    ;------------------------------------------------------------------------
    mainloop:
    	wdr
    	rjmp	mainloop

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.12.2004
    Ort
    LEV
    Beiträge
    505
    .Byte geht nicht im Codesegment.
    Da sollte eigentlich schon der Assembler drüber meckern.
    Deine Interupt Vectoren wären ja dann auch alle an der falschen Stelle.

    Probier es mal mit:
    .dseg
    daten: .byte 10
    und dann noch .cseg,
    wenn du die .Byte Anweisung unbedingt an Anfang haben willst.

    Gruß Jan

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    11.11.2006
    Beiträge
    6

    Danke für die schnelle Antwort!

    Hi,

    glaub habe den Fehler gefunden die Def Anweisung muß doch unter die Interrupt Vectoren hab nur ein Beispiel von einem Kumpel und da stand das so drin mein Fehler kam mir schon komisch vor und ich hab auch gedacht die Daten stehen im Datenspeicher na ja man soll halt doch erst das Hirn einschalten und dann schreiben

    P.S. .dseg und .cseg kennt Workpad gar nicht. Trotzdem Danke für deine Hilfe

    Viele Grüße Micha

Berechtigungen

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

Labornetzteil AliExpress