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...
Založen: Oct 02, 2009 Příspěvky: 5286 Bydliště: PO
Zaslal: po únor 22 2016, 7:40 Předmět:
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.
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=youtu.be&v=KEIPjKcr7p0&app=desktop
Da sa nastavovat cas predzvaru(rychle blikanie bodky) a aj samotny cas zvaru(hlavna smycka).
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...
Založen: Jun 26, 2007 Příspěvky: 464 Bydliště: Vysočina
Zaslal: út únor 23 2016, 6:05 Předmět:
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. ...
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.
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.
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.
Časy uváděny v GMT + 1 hodina Jdi na stránku Předchozí1, 2, 3, 4Další
Strana 2 z 4
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.