» »

Programiranje mikrokontrolerja MC6803

Programiranje mikrokontrolerja MC6803

schtr4jh ::

napisat morm program, v katerem bojo lučke šle levo, desno, levo, desno brez prekinitve ... zataknalo se je pri premikanju lučke v desno, program se kr konča ...

koda:
lucke equ $0000
org $fffe
fdb zaceti
org $2000

zaceti ldaa #1

levo
staa lucke
rola
bcc levo

desno rora
staa lucke
bcc desno

end

vse kar je od "desno" ne izvede

bi mi lahk kdo prosim pomagu? =) hvala ;-)

Tutankhamun ::

A nimaš debugerja, da greš korak po korak pa vidš kaj se dogaja?
a je to prov, da imaš v isti vrstici (labelo pa ukaz?) "desno rora"
zakaj pa shranjuješ vrednost luck v memorijo? staa lucke
Tudi če bi ti ta koda delovala, v realnosti ti teh lučk sploh vidu nauš ko bojo tko hitr šibale...
AMD Phenom QUAD 9950 Black Edition, 8GB

schtr4jh ::

mem debugger - Simulator MC6803 ... ko so biti v lucke "01000000", je ccr "010000", ko pride do ukaza "bcc levo", se spremeni ccr v "011010", shrani lucke in ccr je na "011000", gre na ukaz "desno" in ccr je "010111" in potem gre sam do konca, brez loopanja

vrednost lucke shranim zato, da lahk pol vidim lučke na port1

vem, da nebi vidu v realnosti vsega skp, zato mamo v emulatorju naštimano, da se en ukaz izvaja 250 ms

Tutankhamun ::

v primeru, da greš v levo:
predpostavmo, da imaš stanje v registru A 1000 0000.
Potem izvedeš ukaz ROLA.
V registru A so sedaj vsi bit 0. CCR register pa ima vrednost xxxx xxx1 (x sem dal za ostale, ker te ne zanimajo, samo C bit je postavljen LSB bit).
Zdej pa pride na vrsto ukaz RORA. Ta ukaz bi moral C bit (LSB bit) v CCR registru pobrisat (xxxx xxx0), A register bi pa moral dobiti vrednost 1000 0000.

Tkole na uč če pogledam ne vidm napake. Povej od kje lahko potegnem simulator, da sprobam.
AMD Phenom QUAD 9950 Black Edition, 8GB

schtr4jh ::

Zgodovina sprememb…

  • spremenil: schtr4jh ()

Tutankhamun ::

js sm tak programček naredu
naložu sm v A register vrednost 1000 0000
pol sm pa par vrstic naklamfu
rora
clc
rora
clc
rora
...
clc je ukaz za brisanje Carry bita

Usak RORA ukaz je postavu Carry bit. To pa neki ne bo šlo! Če mene prašaš je BUG v simulatorju. Tvoj program bi mogu delat.

LP
AMD Phenom QUAD 9950 Black Edition, 8GB

schtr4jh ::

heh, bug v simulatorju ... jutr to povem profesorju v šoli, pa da vidmo, ka bo reku ...

sicer sm zdj napisu program, ki dela ... ampak še zmeri morm ob drugmu delo določit novo vrednost a (#128)

koda:
lucke equ $0000
luckee equ $0002

org $fffe
fdb zaceti
org $2000

zaceti
ldaa #1

levo
staa lucke
staa luckee
lsla
bcc levo

ldaa #128
desno
staa lucke
staa luckee
lsra
bcc desno

jmp zaceti

end

men je važno, da grejo lučke levo in desno, zdj morm pa še videt, ka bo reku profesor =)

nič, hvala ti, da si si uzeu cajt, drugega ti ne morm rečt ;-)

Tutankhamun ::

zacetek
ldaa #1
staa lucke
rol lucke
rol lucke
rol lucke
rol lucke
rol lucke
rol lucke
rol lucke
ror lucke
ror lucke
ror lucke
ror lucke
ror lucke
ror lucke
ror lucke
jmp zacetek

Evo program v 17 vrsticah :). Tvoj pa v 8ih :D. 2x več ampak who cares :D
AMD Phenom QUAD 9950 Black Edition, 8GB

Zgodovina sprememb…



Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Digitalna tehnika

Oddelek: Šola
81164 (1009) Tutankhamun
»

Programiranje v zbirniku - potrebujem pomoč

Oddelek: Programiranje
51695 (1632) St@jler
»

MC6803 vodič(tutorial)

Oddelek: Programiranje
102146 (1980) sverde21
»

[C++] Shift left (strani: 1 2 )

Oddelek: Programiranje
663527 (3030) Thomas
»

eno vprasanje na kratko

Oddelek: Programiranje
121525 (1295) rc-car

Več podobnih tem