Dobry den,
jiz delsi dobu sleduji toto forum a musim uznat, ze nekteri clenove opravdu vnaseji svetlo do spousty problemu, proto bych se chtel zeptat zda nekdo z Vas zasvedcenych uz pracoval s PIC16F1939/1937/1827… ? Narazil jsem na malinky problem (mozna vestsi): Je mozne, ze kdyz pouziji u tehto obvodu vnitrni oscilator taktovany na 32MHz tak se deji podivne veci?
Napr. prestane fungovat :
pouzivat registr LAT me napadlo ale nebyl jsem si jisty, prislo me to takove krkolomne, ale budu na to zrejme muset pristoupit. Takze pokud rozumim spravne tak je to v podstate omezeni rychlosti IO portu??? napr.: zapis do LAT a po urcitem casovem intervalu se nastavi i pin??? pro me je to celkem dulezite hodne casto emuluji SPI atd.
nejake osciloscopy tu mam ale ne vzdy resi problem vysejiciho portu (vyzkousim)
Problém není, že by regist PORTx byl pomalý, problém je při zpravovávání instrukcí BSF a BCF na registrech PORTx. Přitom probíhá taková krkolomnější změna obsahu výstupních D klopáků.
Navážu na kolegu přede mnou. Ten problém je popsán ve výše uvedeném pdf velmi přesně a v anglické literatuře se označuje jako data dependency - datová závislost. Celý problém lze poměrně snadno ošetřit vložením instrukce NOP (prázdná instrukce), pokud aplikace není kritická k vloženému zpoždění 1 cyklu navíc. Vadit to může v rozsáhlých smyčkách. Ve svém příspěvku posílám RAW.pdf, kde je problém popsán i obrázkem a vzorkem příkladu. Je to z nové publikace - slabikář PIC18, na kterém teď dělám. Enjoy it. RAW.pdf (122 KB)
Dekuji mnohokrat… pri normalni praci me to nejak neomezuje ale u emulace napr: SPI - je to male spozdeni, ktere jsem resil poci zminovane NOP instrukce ale pro “minimalni zefektivneni” jsem se rozhodl mezi instrukcemi nulovat WDT sice to mnoho nepomuze ale aspon neco ( po vetsinu casu resim casove narocne operace ) 1x PIC a k nemu 4x SPI v ruznych ryclostech na mnoho periferii tzv.: Cesky prumysl = vsechno zadarmo