jednoduší bude v tom programu spustit simulaci a v okamžiku zápisu na port b kouknout zda jeho registr trisb se správně přesetil , i v knihovnách se přeci dají nastavovat individuálně porty ! a propo jak ta knihovna si přeloží čtení portuB jenž část bude běžet trvale jako výstupní ? to ty výstupy prostě resne a zapne jako vstupní jen tak ? to se mi nezdá ? vám ano ?
PS: omluvte pravopis dík
procházím manuál a uplně standartně tam je funkce TrisB = xx
Tak ji přidej do zdrojáku a nastav si ten port jako výstupní !
Alebo aj nie.
Co vravi na ten kod simulator (v MPLAB-e)? Meni sa stav RB0 tak ako sa ma menit? A meni sa po takom case ako by sa dalo predpokladat (treba nastavit hodinovu frekvenciu v simulatore a pouzit Stopwatch)?
PIC16F74 bola kadysi moja srdcovka a samozrejme pri poriadnom pouzvani robi to, co ma.
Tomu já rád věřím. Je jasné, že mám někde botu. V simulátoru se portb mění bez problému. Používám microC PRO for PIC. Když máš takové zkušenosti, třeba mi řekneš, jestli je třeba něco speciálního pro tento procesor nastavit… Např. má interní hodiny? S těmi bych to totiž vyzkoušel mnohem radši.
Edit:
Sorry, mám debilní otázky, mrknu se do datasheetu
Pri vsetkej slusnosti sa k tomuto nebudem vyjadrovat
No, pravda je, ze toto sa da najst v datasheete.
Druha vec je, preco Vam ta 16F74-ka nefunguje.
Mam podozrenie na dve veci z oblasti HW:
1, nespravne fungujuci oscilator
2, zapnuty watchdog
K bodu 1 - ak by oscilator bezal prilis pomaly, tak to blikanie by bezalo velmi pomaly - a teda sa moze zdat, ze LED svieti stale. K bodu 2 - ak by bol zapntuy WDT, tak by po resete MCU hned nabehol na vytiahnutie pinu do vysokej urovne, kym pride na zhodenie pinu do nizkej urovne, WDT ho resetuje. V resete su piny v stave vysokej impedanicie, ale tento stav pominie po pat milisenundach kym vnutorny reset necha MCU bezat a kod v nom po par instrukciach vytiahne pin do vysokej urovne. Teda zda sa, ze je stale vo vysokej urovni.
Teda treba si skontrolovat v prislusnom napalovacom SW nastavenie konfiguracnych bitov.
Dalej podozrenie na dve veci z oblasti FW:
1, nespravne fungujuce kniznice na delay
2, nespravne fungujuce kniznice na ovladanie portov
K bodu 1 - ak by oneskorenie bolo prilis male, to by sa prejavilo tym, ze LED by velmi rychlo blikala. Pri blikani nad niekolko desiatok az sto Hz sa cloveku bude zdat svit LED ako neprerusovany, ale s nizsou intenzitou.Ak zmeriate napatie na takomto pine obycajnym multimetrom, zmeriate nieco okolo 2-3V, co je stredna uroven tohoto meniaceho sa napatia. K bodu 2 - jednoducho sa nenastavuje spravne kominacia TRIS a PORT.
Toto sa da vystopovat simulatorom. Treba si dat breakpoint pred nastavenie pinu do vysokej urovne, pred nastavenim do nizkej urovne a pri spravne nastavenej systemovej frekvencii sledovat udaj na stopwatch.
Edit:
Ak horeuvedene nepomoze, bolo by vhodne dat sem aj schemu, pripadne obrazok celeho zapojenia, kompletny zdrojak, vysledok kompilacie, informacie o pouzitom prigramatore atd…
No interne hodiny nema, pretoze je to pekne obstarozny kusok. Jednoducho patri do muzea.
Ak chcete interne hodiny a mnoho inychvychytavok oproti 16F74, tak si kupte 16F887 (nie 877 ani 877A, ale 887).
A zistite, ze je to aj podstatne lacnejsi MCU.
Samozrejme, vhodnych kandidatov je vela, napriklad aj z rady PIC18Fxxxx.
Silno o tom pochybujem, ak aj ano, tak pravdepodobne nie na LED na RB0. A co by to pomohlo?
Vas MCU je velmi pravdepodobne v poriadku, tak by ste ho tam napalil a fungovalo by to - a co teraz? Boli by sme na zaciatku.
Naozaj, skuste sem placnut cely kod, cely hex, co to generuje, schemu a obrazok zapojenia, inak sa daleko nedostaneme.
administrator: příspěvek byl upraven
Předchozí příspěvky se necitují.
Ale ved v tom kode menite PORTB, ale TRIS je nedotknuty, co vyzera na iny zdrojak ako ten na zaciatku. To samozrejme s LED-kou blikat nemoze.
Inak ten vysledok kompilacie vyzera celkom dobre.
Pokial chcete blikat LED-kou, TRIS musi byt nulovy pre ten konkretny bit.
Ja uz jsem z toho jelen. Vemte to se mnou od zacatku. Mám MPLAB. Jaký (ať už FREE nebo WA*EZ plugin) compiler si k němu mám stáhnout? CCS je placený, pokud vím…
mikroC je free jen do 2k tak to tady nikdo moc neužije ale již na počátku jsi byl dotazován zda ve staku vidíš zda trisB obsahuje nastavení že port je výstupní či ne ? A pak už jednou jsem tě upozornil že tato instrukce se i v manuálu k mikroC vyskytuje a dokonce je tam popis jak sní zacházet aby nebylo nutno ji volat pro případ že se mnění během chodu ten bit na vstupní a pak na výstupní . Závěr máš pořád a od počátku procesor v implicitním nastavení a portb je nastavení jako vstupní !A samotný zápis do portB nemá vliv na stav portu fizického .Jak tu bylo uvedeno mužeš použít již existující Cpompilátory pro mplab ty sice jako free-lite mají jistá omezení a efektivitu překladu ,ale v mplabu nedojde ke změně bitů v portuB při simulaci pokud je trisB pro daný bit nastaven jako vstupní !
A propo povipínej WDT a MCLR at ti to jede bez keců!