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 :)

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 :)
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.