04-11-2018, 06:54 PM
Zapeo sam sa ovim kodom koji mi nije bas jasan...dakle u:
.DSEG
MAX6675: .Byte 4
je definirana MAX6675 promjenjiva varijabla velicine 4 byta (2 byte za MSB i 2 byta za LSB) i to se cuva u SRAM-u.
nemogu da skopiram vrijednost ocitanog SPDR registra u tu promjenjivu varijablu MAX6675...jer ldi normalno trazi kopiranje iz SPDR registra u jedan od registra R16-R31, jedino ako bih isao upisom u SRAM i onda u glavnoj petlji citao iz SRAM-a i ucitanu vrijednost upisao u registar R16...ali je problem sto mi registar R16 neda matematicke operacije pomocu kojih radim extracting 1 2 i 3 znamenke...inace alu u asm je jakoo mocan...nisam ocekivao da se u jednoj naredbi mogu staviti vise matematickih operacija...
npr kako extractati prvi broj:
ldi R16, HIGH(MAX6675%1000/100)
dakle % je modulos operator a / dijeli sa 100 kako bi se dobio decimalni broj..posto u registar ide samo cijeli broj sve iza zareza se ignorira i u registar ide samo prije zareza npr rezultat je 2.16 u registru R16 ce da bude vrijednost 2. I to radi odlicno.
Problem je sto sa ovim kodom nemogu da pohranih MSB i LSB u gore definiranu promjenjivu varijablu MAX6675:
ldi MAX6675, HIGH(SPDR)
ldi MAX6675, LOW(SPDR)
taj kod koji sadrzaj serijskog data registra koji je procitan preko SPI protokola sa MAX6675 neda mi da ga kopiram u MAX6675....jer bih ga htio da ga kopiram u tu promjenjivu varijablu da bi ga kod dekodiranja segmentne brojke samo pozvao kao u gore navedenoj formuli i prikazao..i tako u loop...inace kupio sam odlican AVR SImulator IDE...ima assembler i basic....assembleru tu radim ali mi se jakoo svidja simulator..moze da se vide svi registri vrijednosti step by step instrukcije...i kosta samo 29€ sto nije puno a dobi se jakoo mocan alat.Uz njega je programiranje puno lakse.
Evo ako moze malo pomoci oko ovog gore..da to sa kodom sibam u SRAM pa da citam iz SRAMA kod dekodiranja segmentnih brojki ili kako da to pohranim a da mogu raditi ALU sa time dakle mislim na promjenjivu MAX6675 definiranu u .DSEG
.DSEG
MAX6675: .Byte 4
je definirana MAX6675 promjenjiva varijabla velicine 4 byta (2 byte za MSB i 2 byta za LSB) i to se cuva u SRAM-u.
nemogu da skopiram vrijednost ocitanog SPDR registra u tu promjenjivu varijablu MAX6675...jer ldi normalno trazi kopiranje iz SPDR registra u jedan od registra R16-R31, jedino ako bih isao upisom u SRAM i onda u glavnoj petlji citao iz SRAM-a i ucitanu vrijednost upisao u registar R16...ali je problem sto mi registar R16 neda matematicke operacije pomocu kojih radim extracting 1 2 i 3 znamenke...inace alu u asm je jakoo mocan...nisam ocekivao da se u jednoj naredbi mogu staviti vise matematickih operacija...
npr kako extractati prvi broj:
ldi R16, HIGH(MAX6675%1000/100)
dakle % je modulos operator a / dijeli sa 100 kako bi se dobio decimalni broj..posto u registar ide samo cijeli broj sve iza zareza se ignorira i u registar ide samo prije zareza npr rezultat je 2.16 u registru R16 ce da bude vrijednost 2. I to radi odlicno.
Problem je sto sa ovim kodom nemogu da pohranih MSB i LSB u gore definiranu promjenjivu varijablu MAX6675:
ldi MAX6675, HIGH(SPDR)
ldi MAX6675, LOW(SPDR)
taj kod koji sadrzaj serijskog data registra koji je procitan preko SPI protokola sa MAX6675 neda mi da ga kopiram u MAX6675....jer bih ga htio da ga kopiram u tu promjenjivu varijablu da bi ga kod dekodiranja segmentne brojke samo pozvao kao u gore navedenoj formuli i prikazao..i tako u loop...inace kupio sam odlican AVR SImulator IDE...ima assembler i basic....assembleru tu radim ali mi se jakoo svidja simulator..moze da se vide svi registri vrijednosti step by step instrukcije...i kosta samo 29€ sto nije puno a dobi se jakoo mocan alat.Uz njega je programiranje puno lakse.
Evo ako moze malo pomoci oko ovog gore..da to sa kodom sibam u SRAM pa da citam iz SRAMA kod dekodiranja segmentnih brojki ili kako da to pohranim a da mogu raditi ALU sa time dakle mislim na promjenjivu MAX6675 definiranu u .DSEG