or und ori funktionieren nicht

Gast #172454
Lesenswert?
• ▲
▼
Hi Leute

Mal ne Frage Laut Befehlssatz Referenz des AT MEGA 32 kann der MEGA 32
or und ori wäre auch ein Wunder wenn nicht ;-)

das da ist mein jetziger asm code:

.include "m32def.inc"



.org 0x00

    .def temp = r16

        ldi   R16,low(RAMEND)    ; Load low byte address of end of RAM
into register R16
  out  SPL,R16      ; Initialize stack pointer to end of internal RAM
  ldi   R16,high(RAMEND)  ; Load high byte address of end of RAM into
register R16
  out   SPH, R16    ; Initialize high byte of stack pointer to end of
internal RAM


    ldi r16, 0xff
    out DDRC, r16


    ldi r16, 0xff
    out PORTC, r16



    ldi r17,0b10000110
    OR ADCSRA,r17



ende:    rjmp ende           ;Sprung zur Marke "ende" ->
Endlosschleife

AVR Studio sagt mir:

Building project...
C:\Projekte\ASM\start2\start2.map konnte nicht gefunden werden
C:\Projekte\ASM\start2>del "C:\Projekte\ASM\start2\start2.lst"

C:\Projekte\ASM\start2\start2.lst konnte nicht gefunden werden
C:\Projekte\ASM\start2>"C:\Programme\Atmel\AVR
Tools\AvrAssembler\avrasm32.exe" -fI  -o
"C:\Projekte\ASM\start2\start2.hex" -d
"C:\Projekte\ASM\start2\start2.obj" -e
"C:\Projekte\ASM\start2\start2.eep" -I
"C:\Projekte\ASM\start2" -I "C:\Programme\Atmel\AVR
Tools\AvrAssembler\Appnotes" -w  -m
"C:\Projekte\ASM\start2\start2.map"
"C:\Projekte\ASM\start2\start2.asm"
AVRASM: AVR macro assembler version 1.76.4 (Aug  6 2004 07:02:13)
Copyright (C) 1995-2004 ATMEL Corporation
Creating   'C:\Projekte\ASM\start2\start2.eep'
Creating   'C:\Projekte\ASM\start2\start2.hex'
Creating   'C:\Projekte\ASM\start2\start2.obj'
Creating   'C:\Projekte\ASM\start2\start2.map'
Assembling 'C:\Projekte\ASM\start2\start2.asm'
Including  'C:\Programme\Atmel\AVR
Tools\AvrAssembler\Appnotes\m32def.inc'
C:\Projekte\ASM\start2\start2.asm(383) : error : Illegal argument
type or count
Assembly complete with 1 error
Deleting   'C:\Projekte\ASM\start2\start2.eep'
Deleting   'C:\Projekte\ASM\start2\start2.obj'
Deleting   'C:\Projekte\ASM\start2\start2.hex'
Deleting   'C:\Projekte\ASM\start2\start2.map'

irgendwie meckert das studio wegen Zeile 383 und da steht:

OR ADCSRA,r17

was hab ich hier falsch gemacht ?
hab schon im forum geguckt aber nix passendes gefunden

danke für eure Hilfe
Gast #172455
Lesenswert?
• ▲
▼
OR kann nur auf Register angewendet werden. deshalb funktioniert das mit
dem ADCSRA nicht. Das müsstest du erstmal in ein Register laden, also in
etwa so:

in r17,ADCSRA
ori r17,0b10000110
out ADCSRA,r17

Oder du setzt gleich die Bits mit den entsprechenden Befehlen einzeln.
Gast #172456
Lesenswert?
• ▲
▼
lies mal das instruction set manual

ADCSRA ist kein "internes" Register
logische operationen sind nur mit den registern R0-R31 möglich

also wenn dann z.b. so

IN  R16,ADCSRA
OR  R16,R17
out ADCSRA,R16

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren