Stránka 2 z 4
Napsal: 21 úno 2016, 10:08
od procesor
Prvé movwf TRISB ide do POTRB lebo je bank0
Napsal: 21 úno 2016, 11:05
od procesor
Trochu uprabené
Napsal: 21 úno 2016, 11:05
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 ..
Napsal: 21 úno 2016, 21:32
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...
Napsal: 22 úno 2016, 00:06
od procesor
GPR je tu, vlastne aj s SFR spolu:
klepni na View/File Register
Napsal: 22 úno 2016, 05:52
od Atlan
Ked to ukladas od 20tky. Tak to mas pristupne len v banke 0 pozor na to.
Napsal: 22 úno 2016, 07:40
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š?
Napsal: 22 úno 2016, 09:45
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).
Napsal: 22 úno 2016, 18:10
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
![Smile :)](./images/smilies/icon_smile.gif)
Napsal: 22 úno 2016, 23:49
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
![Smile :)](./images/smilies/icon_smile.gif)
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...
Napsal: 23 úno 2016, 06:05
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. ...
Napsal: 23 úno 2016, 06:27
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.
Napsal: 23 úno 2016, 16:55
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.
Napsal: 23 úno 2016, 17:21
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...
Napsal: 23 úno 2016, 18:16
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.