Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

PWM v PIC12F683 & Proteus - chybná funkce?

 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
masar



Založen: Dec 03, 2005
Příspěvky: 12442

PříspěvekZaslal: pá únor 22 2019, 19:08    Předmět: PWM v PIC12F683 & Proteus - chybná funkce? Citovat

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ěď. Wink
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

; Lineary mode
linear
   movwf   CCPR1L         ;set MSB bits PWM (duty-cycle = ADRESH)
V tomto okamžiku se nuluje nastavený výstup PWM
kód:

   movlw   00ch
   movwf   CCP1CON         ;clear LSB bits
   goto   testend
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
frpr666



Založen: Dec 28, 2009
Příspěvky: 1051

PříspěvekZaslal: pá únor 22 2019, 22:39    Předmět: Citovat

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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
masar



Založen: Dec 03, 2005
Příspěvky: 12442

PříspěvekZaslal: pá únor 22 2019, 22:53    Předmět: Citovat

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ě.
Wink
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
teufel



Založen: Feb 09, 2017
Příspěvky: 408
Bydliště: Na dohled od Spolany

PříspěvekZaslal: so únor 23 2019, 22:13    Předmět: Citovat

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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
masar



Založen: Dec 03, 2005
Příspěvky: 12442

PříspěvekZaslal: so únor 23 2019, 22:53    Předmět: Citovat

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.
Wink
Pro názornost přikládám animaci krokování:
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
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

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

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.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.15 sekund