Forum » Programiranje » 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 ;-)
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...
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
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.
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
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
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 ;-)
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
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
AMD Phenom QUAD 9950 Black Edition, 8GB
Zgodovina sprememb…
- spremenil: Tutankhamun ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Digitalna tehnikaOddelek: Šola | 1164 (1009) | Tutankhamun |
» | Programiranje v zbirniku - potrebujem pomočOddelek: Programiranje | 1695 (1632) | St@jler |
» | MC6803 vodič(tutorial)Oddelek: Programiranje | 2146 (1980) | sverde21 |
» | [C++] Shift left (strani: 1 2 )Oddelek: Programiranje | 3527 (3030) | Thomas |
» | eno vprasanje na kratkoOddelek: Programiranje | 1525 (1295) | rc-car |