pettter´s noob faq...

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
Hill
Administrátor
Administrátor
Příspěvky: 18898
Registrován: 10 zář 2004, 02:00
Bydliště: Jičín, Český ráj

#16 Příspěvek od Hill »

Když mi nezbývá, než program hodit do RAMky a nemůžu zakázat zápis, tak můžu definici label DB # použít kdekoli v programu, ba můžu použít třeba ld label,A a přepsat obsahem akumulátoru tu původně nadefinovanou konstantu. Ostatně na Spectru takto se za chodu modifikujících programů existovaly spousty, většinou proto, aby se program vešel do paměti a ještě zbylo na grafiku a další data. Pochopitelně se nemodifikovaly jen konstanty, dokonce se měnily i instrukce v procedurách, takže celá procedura dělala něco jiného (i když se to používalo především kvůli grafice, která měla v RAMce pevné adresy a jednoznačnou organizaci danou hardware ULA).
Takže se omlouvám za nepřesnou terminologii někdejšího samouka, kterému to sice docela šlo, ale pak zjistil, že docházejí lidi na analog a hardware, tak by sice ještě leccos naprogramovat zvládl, ale nevidí důvod, proč by měl.
Těm, kdo si nevybírají odpovědi na soukromé zprávy, už příště neodpovím. Tak.

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#17 Příspěvek od ZdenekHQ »

Ano. Má být jasně napsáno, co je to za procesor. Něco jinýho je FLASH/ROM a něco jinýho RAM a ZX Spectrum.

P.S. Používám procesor, kde SW je nahraný v externí EEPROM a při zapnutí napájení se nabootuje do interní pseudo-ROM. Tam se taky dají dělat docela kouzla, protože jinak se ta EEPROM skutečně chová jako EEPROM.
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]

Uživatelský avatar
lesana87
Příspěvky: 3296
Registrován: 20 zář 2014, 02:00

#18 Příspěvek od lesana87 »

Nevím, proč se tu furt píše o koze (DB), když řeč byla o voze (EQU). EQU není DB, EQU nemá žádnou adresu, je to symbolická konstanta, DB definuje obsah paměťového místa (s nějakou adresou, je jedno ve které paměti). :roll:

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#19 Příspěvek od ZdenekHQ »

No protože většina vláken se rozvine trošku více do šířky. Až nás poctíš aktivní návštěvou častěji, než jednou za měsíc, tak si zvykneš.
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]

Uživatelský avatar
lesana87
Příspěvky: 3296
Registrován: 20 zář 2014, 02:00

#20 Příspěvek od lesana87 »

Klást DB na rovinu s EQU, jak to tu prezentuje Hill, není rozvinutí debaty do šířky, řekla bych spíše do hloubky, dosti temné.

Uživatelský avatar
pettter
Příspěvky: 83
Registrován: 07 říj 2013, 02:00

#21 Příspěvek od pettter »

Uff.. týýý jo!!!
Za prvé, všetkým Vám ďakujem!!!
Za druhé, čakal som tak dve tri odpovede, z toho jednu ktorá ma privedie k svetlu na konci tunela...
Nečakal som, že ten tunel ja taký ku_va dlhý, temný a kľukatý... a to som len pri EQU, no nazdar!!!

Asi ste si nevšimli v predmete témy slovo NOOB! Takže pre spresnenie, trávim mrazivé večery na PICkom 16f88 a cez MPLAB X IDE a jeho assembler sa ho snažím ovládnuť. Zatiaľ nehrozí... Väčšinou narazím na SW problém MPLAB X IDE, bo mi neIDE a neIDE, len sem tam.

Držím sa kurzu z PE ešte z rokov 2008-2013. Asi jediný česko/slovenský zrozumiteľný kurz o PICkách (my english so poor). Teda ja neviem o lepšom. On ten kurz vlastne beží dodnes, ale teraz je to o perifériách...

Je v tom kurze (31 lekcia PE 07/2010) o.i. kód kde je o.i. aj direktíva:
LEDMEM EQU 0x20
DEF_STEPS EQU 0x70
CBLOK 0x28
steps
ENDC
Ďalej ide direktíva:
MOVLW DEF_STEPS
MOVWF steps
vo watch okne vidím že sa do W a steps dostala hodnota rovná 0x70, takže je mi jasné, že DEF_STEPS = 70 hex = 0111 000 bin = 112 dec, čiže je to skrátka číselná hodnota, nie adresa...

Avšak ďalej v kóde je o.i. táto direktíva:
MOVLW LEDMEM
MOVWF FSR
Čiže prečítal som číslo 20 hex = 0010 0000 bin = 32 dec skryté za odkazom LEDMEM a strčil som ho do File Selct Registra, čím som mu povedal na akú adresu má ísť.

Aha ja som si práve odpovedal! EQU je číslo. Len číslo. Čo s ním urobím je moja vec. Ide len o to, že to číslo pomenujem napr. Jožo...
...sa tu plácam smiechom, že sa najprv musím spýtať sám saba aby som si sám sebe odpovedal a popri tom zapojím pol republiky do debaty... sorry dáma a páni..

Najlepšie mi pomohla poznámka od lesana87, ale aj ostatný... ešte raz Ď.

To mi pripomína vtip... "Cigán, koľko? A cigáň pohotovo odpovedá "20 pánko". "A čoho 20?" pýta sa pánko. "A čoho koľko?" pýta sa cigáň...

Uživatelský avatar
Celeron
Příspěvky: 16140
Registrován: 02 dub 2011, 02:00
Bydliště: Nový Bydžov

#22 Příspěvek od Celeron »

lesana87 píše:Klást DB na rovinu s EQU, jak to tu prezentuje Hill, není rozvinutí debaty do šířky, řekla bych spíše do hloubky, dosti temné.
Jo tak nějak. Tady je třeba vzor jak se používalo obojí u Z80, program začínal od adresy 100h:

Kód: Vybrat vše

BDOS	EQU	5
REIPL	EQU	0
FCB	EQU	5CH		; SYSTEM FCB
DMA	EQU	80H		;DMA BUFFER 128 BYTE

;****************************************
.Z80
	ASEG
	ORG	100H

	jp	START			;GO, PRINT ID

MSG_ID::
	DB	'*** PRIJEM SOUBORU Z PC ***',CR,LF
	DB	'   pres DSM-1 nebo DSP-1',CR,LF,LF,'$'

START::
	ld	de,MSG_ID	;VEM ID MESSAGE
	call	PRINT_MESSAGE
EQU se používalo na definování hodnot pouze pro překladač. Hodnoty v DB a DW se ukládaly přímo na adresy v paměti.
Jirka

Proč mi nemůže všechno chodit hned ?!!

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#23 Příspěvek od ZdenekHQ »

pettter píše:Asi ste si nevšimli v predmete témy slovo NOOB!
Ale všimli. Jen to přejmenování vlákna muselo chvíli počkat, kam se to posune... 8-)
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]

Uživatelský avatar
AB1
Příspěvky: 312
Registrován: 23 lis 2009, 01:00

#24 Příspěvek od AB1 »

Klást DB na rovinu s EQU, jak to tu prezentuje Hill, není rozvinutí debaty do šířky, řekla bych spíše do hloubky, dosti temné.
Myslím, že Hill měl na mysli to, jak se kdysi umisťovaly proměnné na pevnou adresu. Také jsem to používal před dvaceti lety.

.equ prom1 = 0x100 // proměnná prom1 bude na adrese 0x100
.equ prom2 = 0x101

ldi r16, 30
sts prom1, r16 // ulož hodnotu 30 do prom1

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#25 Příspěvek od ZdenekHQ »

Aha, já hlásím třetí případ podobného uvažování-programování (nikoliv mého), a od chlapa v podobném věku. Já na něj taky "koukal jak Lesana"... :lol:
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]

Uživatelský avatar
Hill
Administrátor
Administrátor
Příspěvky: 18898
Registrován: 10 zář 2004, 02:00
Bydliště: Jičín, Český ráj

#26 Příspěvek od Hill »

Zdeňku, je to uvažování z doby, kdy jen u nás existovalo nějakých 70 mikropočítačů, které se mezi sebou navzájem nedomluvily, a programy mezi nimi byly přenositelné jen omezeně a za cenu přepsání od zdrojového kódu, přestože běhaly jen na nějakých čtyřech různých procesorech. Vyžadovalo to znalost architektury a u některých bezprostředně i hardware, jinak ani to přepsání od zdrojáku k ničemu nebylo.
Literatura sice nějaká existovala, ale když se spectrista zeptal sharpisty nebo sorďáka, moc si nepomohl, ačkoli všechny běhaly na Zilogu Z80, a už vůbec ne, jestli se ptal péemdéčkáře, íqéčkáře (Intel 8080), o ataristech a commodorákách (Motorola 6502/6510/68000) nemluvě. Přesto u toho někteří vydrželi hodně dlouho a povedlo se jim napsat hodně dost dobrých programů.
Ve škole nám ukazovali jen sálový počítač EC1025 skrz skleněnou stěnu, ale dovnitř nás nepustili, abychom na něco nesáhli... Jenže od té doby se i programátorské názvosloví poněkud změnilo.
Těm, kdo si nevybírají odpovědi na soukromé zprávy, už příště neodpovím. Tak.

Uživatelský avatar
pettter
Příspěvky: 83
Registrován: 07 říj 2013, 02:00

#27 Příspěvek od pettter »

Tak ďalšia otázka!
MCU PIC16F88, SW MPLAB X IDE, Assembler

Trochu sa strácam vo vzťahu registrov INDF a FSR. Rozumiem tomu dobre ak predpokladám, že keď zapíšem číslo do INDF, tak zmením obsah bunky pamete, na ktorú je nastavený FSR register?
Napr:

Kód: Vybrat vše

petter   EQU   0x20
jozo   EQU   .30

movlw   petter
movwf   FSR
nastavil som FSR na adresu 20h

Kód: Vybrat vše

movlw   jozo
movwf   INDF
zmenil som obsah bunky 20h na hodnotu 30dec? Či?

Uživatelský avatar
Atlan
Příspěvky: 4499
Registrován: 10 kvě 2004, 02:00
Bydliště: Košice

#28 Příspěvek od Atlan »

Stiahni si cesky preklad pre pic 16f84. Zase taky rozdiel medzi nimi nieje.
Ako ovladat asm, fajn. Ale doporucujem preskocit rovno na Cko.

Preco pouzivat zbugovane labX nechapem ked existuje napr mplab8.84
Nic tak nepotesi ako ked sa po celodenom trapeni zisti chyba prekladaca alebo Mplabu.

Uživatelský avatar
MiloPS3
Příspěvky: 259
Registrován: 07 srp 2010, 02:00

#29 Příspěvek od MiloPS3 »

pettter : viz priloha (jedna se o neprime adresovani)

co te nuti pouzivat MPLAB X ? prejdi na starsi verzi ,je jednodussi a simulator funguje paradne
Přílohy
fsr_indf.JPG
(22.44 KiB) Staženo 87 x

Uživatelský avatar
pettter
Příspěvky: 83
Registrován: 07 říj 2013, 02:00

#30 Příspěvek od pettter »

Ďakujem Vám.

MPLAB X IDE som stiahol z Microchip webu ako doporučený. Tak som myslel, že keď je doporučený, tak je OK. Ale nebyť toho SW, tak som isto oveľa ďalej. Lebo ak ma čosi nasiera tak je to mohutnosť a z toho plynúca komplikovanosť tohoto nástroja, pre mňa a moje začiatočnícke serepetičky tak zbytočná.
Už len úvedné nastavenia je niekedy vec na týždenné bádanie, kým vydolujem zo všemožných fór info, prečo mi čosi neIDE...
No na druhej strane už o ňom aspoň čosi máličko viem. Zase sa učiť nanovo... a MPLAB 8.x už nemá podporu, či?

Preto sa babrem s X
MiloPS3 píše:pettter : viz priloha (jedna se o neprime adresovani)...
Takže je to jasné, EQU je blbé číslo, nič viac. Ak hodnotu toho čísla použijem ako adresu, bude adresou. Ak ho použijem ako obsah peňaženky, bude tým...
A aj s tým INDF a FSR som už v obraze, som si robil pár pokusov...

ešte raz ďakujem.

Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“