Rychlost debuggeru v mplab

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
Programovač

#16 Příspěvek 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ě**.
Uživatelský avatar
jankop
Příspěvky: 679
Registrován: 04 dub 2007, 00:00
Kontaktovat uživatele:

#17 Příspěvek 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.
Programovač

#18 Příspěvek od Programovač »

To by bylo svělí sem zvědavej.
Programovač

#19 Příspěvek od Programovač »

Teď se snažim zobrazit to trace a nějak to nemůžu najít.
Uživatelský avatar
jankop
Příspěvky: 679
Registrován: 04 dub 2007, 00:00
Kontaktovat uživatele:

#20 Příspěvek od jankop »

1. Debugger/Settings/ OSC TRACE - povolit a nastavit delku
2. View/Simulator trace - zobrazit
Uživatelský avatar
jankop
Příspěvky: 679
Registrován: 04 dub 2007, 00:00
Kontaktovat uživatele:

#21 Příspěvek 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
Uživatelský avatar
jankop
Příspěvky: 679
Registrován: 04 dub 2007, 00:00
Kontaktovat uživatele:

#22 Příspěvek 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.
Přílohy
TMR001.GIF
(5.62 KiB) Staženo 134 x
Programovač

#23 Příspěvek 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.
Programovač

#24 Příspěvek 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.
Uživatelský avatar
jankop
Příspěvky: 679
Registrován: 04 dub 2007, 00:00
Kontaktovat uživatele:

#25 Příspěvek 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.
Přílohy
MPLAB_TRACE.GIF
(86.95 KiB) Staženo 124 x
Programovač

#26 Příspěvek 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?
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“