pettter´s noob faq...
Moderátor: Moderátoři
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.
- ZdenekHQ
- Významný člen
- Příspěvky: 25519
- Registrován: 21 črc 2006, 00:00
- Bydliště: skoro Brno
- Kontaktovat uživatele:
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.
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[?]
- ZdenekHQ
- Významný člen
- Příspěvky: 25519
- Registrován: 21 črc 2006, 00:00
- Bydliště: skoro Brno
- Kontaktovat uživatele:
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[?]
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áň...
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_MESSAGEEQU 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.
Proč mi nemůže všechno chodit hned ?!!
- ZdenekHQ
- Významný člen
- Příspěvky: 25519
- Registrován: 21 črc 2006, 00:00
- Bydliště: skoro Brno
- Kontaktovat uživatele:
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...
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[?]
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
- ZdenekHQ
- Významný člen
- Příspěvky: 25519
- Registrován: 21 črc 2006, 00:00
- Bydliště: skoro Brno
- Kontaktovat uživatele:
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[?]
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.
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 FSRnastavil som FSR na adresu 20h
Kód: Vybrat vše
movlw jozo
movwf INDFzmenil som obsah bunky 20h na hodnotu 30dec? Či?
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 140 x
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.