Stránka 2 z 2

Napsal: 03 říj 2007, 21:00
od Programovač
V předchozím odstavci mám chyby a nevim jak to editovat.Má tam být: **test jestli se inkrementoval TMR0 trvá** a **ukazuje na bit přesně**.

Napsal: 03 říj 2007, 21:15
od jankop
Jestli tracing nevyřadí nějakou periferii? Nejspíš ne. Jeho úloha je prostá, zapisuje každou provedenou instrukci na jeden řádek souboru. Můžeš si v tom krokovat. Je to neocenitelné na ladění časových smyček apod.
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.

Napsal: 03 říj 2007, 21:52
od Programovač
To by bylo svělí sem zvědavej.

Napsal: 03 říj 2007, 21:58
od Programovač
Teď se snažim zobrazit to trace a nějak to nemůžu najít.

Napsal: 04 říj 2007, 06:35
od jankop
1. Debugger/Settings/ OSC TRACE - povolit a nastavit delku
2. View/Simulator trace - zobrazit

Napsal: 04 říj 2007, 10:40
od jankop
>(doufám že zablokování na 2 cykly se předděličky netýká - ale i to by snad šlo kompenzovat jestli to trvá pokaždý stejnou dobu).<
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

Napsal: 04 říj 2007, 17:51
od jankop
Tak jsem otestoval svůj nápad. Vyšel jsem z blokového schématu TMR0, které jsem si zjednodušil, ale tobě to bude určitě stačit.

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.

Napsal: 04 říj 2007, 21:14
od Programovač
No tak vidim že ti to fakt pálí.Já se koukal jenom na blokáč TMR a na zapojení RA2 sem uplně zapoměl.Hradlovat ANSELEM a inkrementovat tim vstupem na změnu hrany je asi ideální řešení pro to co sem chtěl.Ty odkazy taky super i když to tvoje řešení je lepší.Aspoň tam potvrzujou těch 40MHz,takže ta předdělička má smysl.Dík moc za trpělivost a za tu práci s odskoušením.

Napsal: 04 říj 2007, 21:36
od Programovač
Ještě k tomu trace : v nastavení debg. mám trace zaškrtnutý a délku 32k a okno trace otevřený ale je prázdný(po spuštění debuggeru).Je potřeba ještě něco?Jinak trochu sem brouzdal na fóru microchip a našel sem téma který se zabývá rychlostí simulace v závislosti na velikosti bufferu trace a bylo tam že od 65k se výrazně zpomalí(samozdřejmě to byl můj případ) a
zdůvodnění bylo to že do 64 je to v RAM,vejš na HDD.To jenom pro zajímavost.

Napsal: 05 říj 2007, 08:30
od jankop
Netuším, čím by to mohlo být. Nijak zvlášť jsem nic nenastavoval. Nemáš nějakou chybu v založení projektu? Neplatný adresář, nebo něco podobného? Při animaci se do Trace zapisuje průbežně, při malé délce přetéká, ale pořád tam je.

Napsal: 05 říj 2007, 09:54
od Programovač
Tak tohle už nechápu,já tam měl jenom prázdný okno bez těch sloupců.V nastavení sem měl 20MHz a 32k a zaškrtlí trace.Teď sem to nastavil podle obrázku,spustil okno trace a najednou bylo rozdělený na dvě části dole je to prázdný okno a nahoře je okno s těma záložkama a po spuštění debuggeru to funguje.Si čaroděj nebo co?