PWM s PIC12F675
Moderátor: Moderátoři
PWM s PIC12F675
potřeboval bych poradit jak řešit program (píšu v Mikropascalu) PWM regulátor s frekvencí 200-400Hz ,možná ideálně 255 kvůli AD převodníku.
Schéma nějak takhle: Potenciometr připojený na jeden AD převodník,jeden výstup PWM ,víc není třeba,možá jeden vstup pro tlačítko(PWM by fungovalo po celou dobu stisku tlačítka).
Díky za každou radu,tip informaci k tématu.
jezevec> díky moc za tip.Tohle přesně potřebuju,ale s menší frekvencí.
Našel by se někdo ochotnej poradit jak ten zdroják upravit pro 12F675 a jak zmenšit frekvenci? (autor používá 500Hz,já bych potřeboval tak nějak nejlíp kolem 200Hz)
Zdroják je tady:http://www.belza.cz/control/pwm-soft.zip
Mám tady prográmek pro sw PWM pro 16F676, což je stejný procesor jak 12f675, jen má víc pinu. Ale je v asembleru a mám obavy, že se v něm budeš špatně orientovat. A ještě doplním, že program je pro tři kanály a jeho tři čtvrtiny tě nejspíš nebudou zajímat. Základem je inicializace procesoru a především přerušovací rutina, ze které budeš potřebovat jen třetinu.
- Přílohy
-
- DIMMER01.asm
- (10.7 KiB) Staženo 154 x
jankop>Díky za zdroják.Je to jak píšeš -ten assembler je na mě moc (něco vyčtu,ale ne všechno)
Obyčajne býva opačný problém s nízkou frekvenciou a problémom filtrácie nosnej.
Keď som pred časom robil subsonic presný 10bit generátor od 5...25 Hz sinus, na dobré potlačenie nosnej som musel použiť aktívne filtre 4.rádu.
PWM som si robil pomocou sw, ale za pomoci CCP. Čiste bez HW (CCP) by to nešlo.
Inak na 200 Hz PWM treba 3,276800 MHz oscilátor a to je za facku, kde berieš 1 MHz, ten by dal 61/244/976 Hz
To platí pre 8bitové PWM, pre 10bitove sú frekvencie ešte 4x nižšie.
A to 18F2550 je škoda ta takú srandu.
000 = 31.25 kHz
001 = 125 kHz
010 = 250 kHz
011 = 500 kHz
100 = 1 MHz
101 = 2 MHz
110 = 4 MHz
111 = 8 MHz
Potřeboval bych využít ten PIC využít ještě na spínání tří relátek,čtyři AD,1 IO vstup,1 PWM.Motor(24V) co s tím chci ovládat je asi dvakrát větší než motor na stěrače do žigulíka.Potřebuju aby měl dobrej tah už v 1/4 otáček.
Chtěl bych se zeptat - když je spuštěný PWM HW běží nezávisle na hlavním programu?
Ak treba zmeniť striedu vložíš novú hodnotu do CCP1L.
Motoru je jedno na akej fr. bude bežať PWM. Pri 20kHz by trochu plakal pomalý budič.
Hodiny treba zvoliť najmä podľa potrebného výpočtového a riadiaceho výkonu. 4 a 8 MHz je použiteľné.
Regulovať motor sa dá rôznymi spôsobmi. Niektoré vyžadujú aj nejakú spätnú väzbu, a slušný výpočtový výkon.
Pro PWM v Mikropascalu jsou pouze čtyři jednoduchý funkce:
PWM1_Init(200); //200Hz
PWM1_Set_Duty(20);
PWM1_Start;
PWM1_Stop;
Potřeboval bych poradit s nastavením projektu,následně s innicializací hardware.
Není mi jasný jak nastavit v projektu tohle(v závorkách jsou možnosti nastavení):
Internal External Switch Over Mode (Enabled,Disabled)
CPP1 (RB0,RB3) //Pin výstupu PWM ?
Oscillator (LP,XT,HS,EXT Port as IO,INTRC-OSC2 as Clock Out,INTRC-OSC2 as RA,EXTRC-OSC2 as Clock Out,EXTRC-OSC2 asRA)
RA5/MCLR Pin Function Select (MCLR,RA5)