Rychlost debuggeru v mplab
Moderátor: Moderátoři
-
Programovač
Napadla mě taková zajímavá myšlenka, jak jednoznačně přečíst prescaler. Chtěl bych si to ověřit, pak dám vědět.
Koukám, že počítáš se vším, ale při čtení myslím TMR0 prodlevu nedělá.
Můj nápad se mi zatím ověřit nepodařilo. Když jsem ale hledal na webu, tak jsem našel inspirativní odkazy. Jeden můžeš využít pro jednoduché řešení vstupního obvodu a druhý názorně ukazuje způsob čtení předděličky. Ale ještě věřím, že to jde lépe a jednodušeji. Ten poslední odkaz je o zajímavé chybě mazaní předděličky při čtení TMR0
http://www.g7ltt.com/njqrp/ik3oil-counter.pdf
http://ww1.microchip.com/downloads/en/A ... 00592d.pdf
http://www.mhprofessional.com/downloads ... imeend.htm
V případě, že v registru ANSEL nastavíš některý ze vstupů jako analogový, pak je z tohoto pinu čtena do registru PORTA vždy nula. Tímto způsobem je možné zastavit - hradlovat čítání vstupních pulzů na vstupu RA2/TOCKI.
Prostě provedeš:
1. BSF ANSEL, ANS2
2 Vynuluješ TMR0+Prescaler
3. BCF ANSEL, ANS2 spustíš měření
4. Měříš 1s
5. BSF ANSEL, ANS2 zastavíš měření
6. A teď pozor !!! Změnami bitu OPTION_REG<TOSE> dáváš hodiny dokud nenačteš celý prescaler, tedy do změny nejnižšího bitu TMR0. Co s tím dál určitě víš. Proč to funguje je snad patrné z obrázku. Když jsem to simuloval v MPLABU, tak to nefungovalo. Když jsem ale vzal reálnou 16F676 tak to pracuje podle předpokladu.
Existuje ještě druhá možnost. Ta ovšem vyžaduje rezistor stejně jako řešení od Microchipu. To co dělají se dvěma vstupy, jde udělat i s jedním. Když na RA2/AN2/TOCKI připojím rezistor 470R, tak stačí po načtení čítačů přepnout vstup TOCKI na výstup a vyrobit si potřebné hodiny programově pomocí RA2. Tohle jsem zkoušel také, funguje to, dokonce i na simulátoru.
Tak si můžeš vybrat. Pokud je ti něco nejasného, tak se zeptej.
- Přílohy
-
TMR001.GIF- (5.62 KiB) Staženo 135 x
-
Programovač
-
Programovač
zdůvodnění bylo to že do 64 je to v RAM,vejš na HDD.To jenom pro zajímavost.
- Přílohy
-
MPLAB_TRACE.GIF- (86.95 KiB) Staženo 124 x
-
Programovač