mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik asm ATmega32 codeoptimierung


Autor: Kai Scheddin (zeusosc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo hi leutz ich bekomme ein wert über usart,. vergleiche den springe zum 
label mache wat und reti wieder,..
das ganze isne lange tipperei und ich wette das geht auch schneller mitn 
makro, leider habe ich keine ahnung wie,... kann mir jemand das 
verkürzen
(learning by abguckn :D )

[asm]
int_RXD: in get,UDR
   cpi get,0
   breq end_int_rxd

        cpi get,1
  breq mode1

  cpi get,2
  breq mode2

  cpi get,3
  breq mode3

  cpi get,4
  breq mode4

        cpi ......



mode1:
push temp
ldi temp, 0b00000001
eor pob, temp ;bitwise xor
out PORTC,pob
pop temp
reti

mode2:
push temp
ldi temp, 0b00000010
eor pob, temp
out PORTC,pob
pop temp
reti

......

[/asm]

jo würde mich über hilfe freun
freu
mfg

Autor: zero_gravity (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hey kai!!
also enn du mit dem avr studio von atmel arbeitest, müssten die makros 
in etwa so aussehen (glaube ich zumindest...):

für die abfragen wäre das:

.MACRO abfrage
        cpi get, @0
        breq     @1
.ENDMACRO

und der "aufruf" sehe dann so aus:

abfrage(1,mode1)


oder bei den "modes" dann halt:

.MACRO mode
        push temp
        ldi temp, @0
        eor pob, temp
        out PORTC,pob
        pop temp
.ENDMACRO

-> mode(0b00000001)

man könnte die beiden jetzt auch noch kombinieren, ansatt sie nur 
einzeln zu benutzen... aber ob das auch funktioniert?! bin mir da nicht 
so 100%ig sicher...


lg zero_gravity

Autor: Kai Scheddin (zeusosc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zero_gravity wrote:

> .MACRO abfrage
>         cpi get, @0
>         breq     @1
> .ENDMACRO
>

hmmm mit dem komma bei
> cpi get, @0
hatta probs...
trozdem danke erstma :D
________________________________-
edit:
k, die abfrage muss lauten:

>abfrage 1,mode1

dann gehts , thx

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.