mikrocontroller.net

Forum: FPGA, VHDL & Co. Probleme bei Programm


Autor: brooklyn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Fange gerade an mit dem AVR Studio zu spielen und habe mir das Tutorial
schon angesehen, nun habe ich folgendes Programm, was ich gerne
programmieren würde, aber ich bekomms einfach nicht hin.

Programmiere im AVR Studio mit Assembler. Die Codierung der Taster
nehme ich binär vor!

Das Programm soll folgendes können! Jedes Programm einzeln hatte ich
schon am Laufen!

H0=S0 and S1
H1=S2 and not S3 and S4

Das Programm soll beides gleichzeitig können, also in einem programm
verpackt.

Hoffe ihr könnt mir dabei helfen!
Schön wäre nen Assembler-Code (vielleicht mit Kommenatren!?!) an dem
ich es mir dann selber erklären könnte!

Gruß und besten dank im Vorraus!

Autor: brooklyn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier mal mein bisheriger Assembler Code


.include "8515def.inc"


ldi r16, 0x01
Out ddrc, r16


loop1:
in r16, pina
andi r16, 0b00011100
cpi r16,  0b00001000
breq led_ein1
sbi portc, 0
rjmp loop1

led_ein1:
cbi portc, 0
rjmp loop1



loop2:
in r16, pina
cpi r16, 0b11111100
breq led_ein2
cbi portc, 0
rjmp loop2

led_ein2:
sbi portc, 0
rjmp loop2

Autor: Lars Lochmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
org 0x00
rjmp main


main:
rcall loop1
rcall loop2
rjmp main

loop1:
...
...
ret     ;statt rjmp loop1

...
ret     ;statt rjmp loop1


loop2:
...
...
ret     ;statt rjpm loop2

...
ret     ;statt rjmp loop2

Ich denke so könnte es gehen. Und nimm für dein primitives Projekt nen
ordentlichen MC z.B. Attiny2313 oder Mega8, Mega16....

Autor: brooklyn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so???


.include "8515def.inc"

ldi r16, 0x01
Out ddrc, r16

main:
rcall loop1
rcall loop2

rjmp main

loop1:

in r16, pina
andi r16, 0b00011100
cpi r16,  0b00001000
breq led_ein1
sbi portc, 0

ret     ;statt rjmp loop1

led_ein1:
cbi portc, 0
rjmp loop1
ret     ;statt rjmp loop1


loop2:
in r16, pina
cpi r16, 0b11111100
breq led_ein2
cbi portc, 0
ret     ;statt rjpm loop2

led_ein2:
sbi portc, 0
ret     ;statt rjmp loop2

Autor: Lars Lochmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja das sieht ganz gut aus. Hast du es mal durch den Compiler geschickt
und gebrannt plus getestet? Vorausgesetzt deine Programmstückeln haben
schon vorher funktioniert, müsste das eigentlich so laufen. Achso da
fällt mir nochawas auf bei deinem Quellcode, Ausgänge und Eingänge
müssen jeweils noch angepasst werden. Portc, 0 ist ja nur ein
Ausgang....

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]
  • [vhdl]VHDL-Code[/vhdl]
  • [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.