www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik or und ori funktionieren nicht


Autor: Gizmo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Bri (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: mmerten (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Gizmo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke funzt

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.