PIC16F628A - zmena hodnoty v registroch

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

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
procesor
Příspěvky: 5284
Registrován: 02 říj 2009, 02:00
Bydliště: PO

#16 Příspěvek od procesor »

Prvé movwf TRISB ide do POTRB lebo je bank0
Přílohy
BANK_MIS_MAS.JPG
(97.02 KiB) Staženo 68 x

Uživatelský avatar
procesor
Příspěvky: 5284
Registrován: 02 říj 2009, 02:00
Bydliště: PO

#17 Příspěvek od procesor »

Trochu uprabené
Přílohy
bodovacka_led_ver.1_136x.asm
(14.88 KiB) Staženo 62 x

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

#18 Příspěvek od MiloPS3 »

v ktery bance si poznas dole na liste (viz priloha) , musis si to pohlidat , banky si staci prepinat pomoci BANKSEL a nazev prislusneho registru ..
Přílohy
BANKA.JPG
(11.71 KiB) Staženo 52 x

Uživatelský avatar
dudo02
Příspěvky: 981
Registrován: 27 úno 2007, 01:00

#19 Příspěvek od dudo02 »

Uz tomu zacinam lepsie rozumiet.

Cize pri pouziti CBLOCK sa premenne automaticky ukladaju na volne miesta do GENERAL PURPOSE REGISTER od adresy 20h smerom dohora po adresu 6Fh?

Kód: Vybrat vše

CBLOCK 0X20
    d1
    d2
    d3
    LEDTIME
    X1
    X2
    X3
    P1
    P2
    P3
    ENDC
Takto som to spravil, ale moj problem to nevyriesilo - stale sa mi asi nieco prepisuje.

Kod som troska upratal, je v prilohe.

Procesor - tak nakoniec som robil blbost - zapisoval som hodnotu do TRISB ,hoci som potreboval zapisovat do PORTB.Cize do BANK1 sa nepotrebujem prepinat.

Len neviem prist na to kde je problem - pomohlo by ak by som v simulatore vedel zobrazit GENERAL PURPOSE REGISTER...
Přílohy
Bodovacka v1.2.asm
(13.13 KiB) Staženo 76 x

Uživatelský avatar
procesor
Příspěvky: 5284
Registrován: 02 říj 2009, 02:00
Bydliště: PO

#20 Příspěvek od procesor »

GPR je tu, vlastne aj s SFR spolu:
klepni na View/File Register

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

#21 Příspěvek od Atlan »

Ked to ukladas od 20tky. Tak to mas pristupne len v banke 0 pozor na to.

Uživatelský avatar
procesor
Příspěvky: 5284
Registrován: 02 říj 2009, 02:00
Bydliště: PO

#22 Příspěvek od procesor »

Môž-byť máš problém s Hardware Stack-om.
V STEST je dosť komplikovaný podprorogram. Keďže mi uniká logika neviem to celé odkrokovať. Veľa-krát sa tam vracia cez GOTO z rôznych miest. Ak sa postupne ten pointer HW-stacku neposúva je to O.K. Ak áno je to K.O.
Sleduj Hardware stack, nesmie sa preplniť, ani podtiecť a mal by sa vracať do základnej polohy.
Pri volaní CALL sa tam ukladá návratová adresa a posunie sa pointer.
RETURN si vyberie adresu zníži pointer.
Niektoré-odladené časti (čakačky) preskakuj pomocou Break-pointov.

Akú verziu MPLAB-u používaš?
Přílohy
BODOVačka.JPG
(277.4 KiB) Staženo 53 x

Uživatelský avatar
dudo02
Příspěvky: 981
Registrován: 27 úno 2007, 01:00

#23 Příspěvek od dudo02 »

Tak vam vsetkym dakujem velmi pekne za ochotu a pomoc.

Pouzivam MPLABX.
Ked sa mi podarilo zobrazit GPRegistre, tak som problem odhalil.Samozrejme som robil blbost - Upravoval som premennu programom a zaroven podprogramom. Pre podoprogram som si spravil dalsie premenne a tie potom kopirujem do P1, P2, P3.

Procesor - tebe este raz vdaka za trpezlivost.
STEST len testuje tlacidla a blika desatinou bodkou na displeji.
Tu je video - program je urcenu na zvaracku https://www.youtube.com/watch?feature=y ... pp=desktop
Da sa nastavovat cas predzvaru(rychle blikanie bodky) a aj samotny cas zvaru(hlavna smycka).

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

#24 Příspěvek od Atlan »

Tak neviem ale to je tvoj program? Preco su tie cisla zarovnane v lavo? Normalne su jednotky v pravo a nie v lavo. A hlavne sa nepremiestnuju :)

Uživatelský avatar
dudo02
Příspěvky: 981
Registrován: 27 úno 2007, 01:00

#25 Příspěvek od dudo02 »

Atlan píše:Tak neviem ale to je tvoj program? Preco su tie cisla zarovnane v lavo? Normalne su jednotky v pravo a nie v lavo. A hlavne sa nepremiestnuju :)
Ake jednotky vlavo,?Nechapem ...
Ano, program je moj, napisal som ho od prvej do poslednej bodky ja.
Zacal som so zobrazenim cisla na LED displayi, potom multiplex a potom sa to nabalovalo.
Este si vyskusam ukladanie do eeprom a budem spokojny.
Verim tomu ,ze program by sa dal spravit jednoduchsie a mal som aj ja uz teraz ku koncu nejake napady, ale to by som ho musel prekopat cely.
Ak by som to robil, tal by som vyrobil novy hardware a skusil to s LCD displayom - tam by som mal vela moznosti sa naucit nove veci.Taktiez by som volil asi iny typ procesora...

Uživatelský avatar
Chenzee
Příspěvky: 464
Registrován: 26 čer 2007, 02:00
Bydliště: Vysočina

#26 Příspěvek od Chenzee »

Je myšleno toto. Jinak je jasný, že jak budeš postupovat v programováni, tak budeš zpětně i vidět, jak jsi to předtím dělal zbytečně složitě, a mnohdy nevhodně. Tomu se říká vývoj. Jen s těmi komentáři opravdu nešetři, teď jsou zbytečný, ale za dva měsíce poté, co ten program opustíš a k tomu vyprodukuješ nějaký jiný, se to začne z hlavy ztrácet a pak budeš vždy tápat, proč že jsi to takto napsal apod. ...
Přílohy
jedn.png
Totok
(53.66 KiB) Staženo 42 x
Žádnej učenej z nebe nespadl ...

Uživatelský avatar
dudo02
Příspěvky: 981
Registrován: 27 úno 2007, 01:00

#27 Příspěvek od dudo02 »

Aha, jasne - je to pravda, prerobim to.
Tie komentare - tak ja neviem ani co by som tam viac komentoval.Vsetko co ma svoju osobitu ulohu je okomentovane.
Inac s tym tapanim mas uplnu pravdu - staci ak si za to sadnem o dva tyzdne a uz mam niekde problem. Skusim to tam teda okomentovat rozsiahlejsie.

Uživatelský avatar
dudo02
Příspěvky: 981
Registrován: 27 úno 2007, 01:00

#28 Příspěvek od dudo02 »

Tak spominane problemy odstranene.

No dalej by som sa rad opytal ako sa riesi nieco taketo, len neviem ci sa mi to podari vysvetlit:

Mam hlavny program A.
V nom podoprogram B, ktory ma dalsie 3 podprogramy -C, D, E.

Skocim z programu A do podprogramu B.
V nom skocim do C.
Vyskocim z C priamo do A.
Co by som chcel, je dosiahnut aby som pri najblizsom skoku do B skocil na miesto z ktoreho som naposledy vysiel ,teda do C.

Cize nieco ako ulozit do registra info , ze z ktore ho podprogramu som vyskocil a pri najblizsom navrate tuto hodnotu nacitat a skoci na navestie.

Uživatelský avatar
dudo02
Příspěvky: 981
Registrován: 27 úno 2007, 01:00

#29 Příspěvek od dudo02 »

Ale mne vsetko funguje, ja len potrebujem spravit vec ktoru som opisal, len sa to tazko vysvetluje...

Aky je problem v castom pouzivani GOTO?
Skusim nakreslit schemu...

Uživatelský avatar
dudo02
Příspěvky: 981
Registrován: 27 úno 2007, 01:00

#30 Příspěvek od dudo02 »

Tak som nakreslil schemu.
Cize A je hlavna cast, ktora je spolocna pre A1,A2 , Ax...
V A1, A2 ,Ax... mulltiplexuje displej, vklada pemenne do registrov pre cas zvaru a testuje tlacidla. Po stlaceni prislusneho tlacidla skoci vyssie,alebo nizsie popr.skoci na samotnu sekvenciu zvaru.

V B sa deje v podstate to iste akurat nie mozne vyvolat samotne zvaranie - netestuje sa tu tlacidlo "weld".

Medzi A a B prepinam simultanym stlacenim oboch tlacidiel "down ""up"

Cize teraz skocim z A do B ,nastavim cas predzvaru a vratim sa spet. Avsak teraz odkazujem na stale to iste miesto A1 ,alebo B1.

A chcel by som to spravit tak, ze skocim do B.
Tam skocim na B2.
Z B2 sa vratim do A.
A ak znova skocim do B, tak by som potreboval aby som skocil rovno na B2-na poziciu ktoru som naposledy opustil.
Přílohy
Bodovacka.png
(15.51 KiB) Staženo 65 x
Naposledy upravil(a) dudo02 dne 24 úno 2016, 05:44, celkem upraveno 1 x.

Odpovědět

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