Potřeboval bych vysvětlit problém, se kterým jsem se setkal při simulaci PWM s použitím CCP modulu v PIC12F683 nebo PIC12F615 v simulátoru Proteus.
Vlastností modulu CCP v režimu PWM by měl být tzv. double buffering, tzn. že zápis hodnoty duty cycle do registru CCPR1L může být proveden kdykoliv (alespoň jak jsem pochopil), jeho přepis do CCPR1H se provede až na konci periody cyklu PWM.
Ovšem v simulátoru Proteus se při zápisu do CCPR1L ihned nuluje stav výstupního pinu CCP1, pokud již byl nastaven.
Narazil jsem na to při testování programu od p. Belzy, který je jistě vyzkoušený a funkční.
Ale v Proteusu nefunguje s žádným z uvedených MCU.
Při simulaci podobného řízení s jinými MCU (např. PIC16F628) k uvedenému jevu nedochází a zápis do CCPR1L se provede bez vlivu na stav výstupního pinu.
Otázka je prostá: Je chyba ve mně nebo v Proteusu?
Díky za každou odpověď.
Ještě pro úplnost část kódu (ASM), kde je problém:
kód:
; AD převod
bsf ADCON0,GO ;start AD převodu - trvá 48 Tcy
btfsc ADCON0,GO ;done/hotovo?
goto $-1
clrwdt
movfw ADRESH ;
; Linear - Quadratic mode test
btfsc LINQ ;lin/q pin test
goto quadratic
Je otázka jak flexibilně reaguje výrobce softwarového simulátoru na to, že Microchip vydá nový PIC s novou periferií.
Dříve nebo později stejně dojde na to, že je třeba vytáhnout osciloskop a podívat se na realitu.
Nemyslím, že je to otázka flexibility. Jen tohle fórum zná PIC12F683 minimálně od r.2007.
Kromě toho, jaký by mělo smysl software, který nelze simulovat, testovat v reálu? Je možné, že pan Belza odsimuloval soft v jiném simulátoru, než Proteus. Nejde mi o funkčnost programu, ale o funkčnost simulátoru, pokud ovšem není chyba někde na mé straně.
Založen: Feb 09, 2017 Příspěvky: 410 Bydliště: Na dohled od Spolany
Zaslal: so únor 23 2019, 22:13 Předmět:
Napsal jsem to v asembleru v MPLab IDE (ještě v tom bez X), nahrál do mikrokontroléru, vyzkoušel, opravil program a znova nahrál... Už si nepamatuji, na kolik iterací se to povedlo. Moc jich nebylo, tak do desítky. Víc jsem se "vyblbnul" na digitální filtraci výstupu AD převodníku, kterou jsem do PWM regulátoru dodatečně dodělal - ta ale není součástí programu, co mám na webu.
Znamená to tedy, že je chyba v simulátoru? Nemůže být "zakopaný pes" v nějakém konfiguračním nastavení? MPLAB jsem nezkoušel, ale znovu říkám - nejde mi o funkčnost (odladění) programu, ale o odhalení, proč mi to v Proteusu nefunguje.
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.