Come faccio a utilizzare PWM con PIC18F45K20??

H

hussong1555

Guest
Qualcuno ha qualche esempio "Codice C" per configurare e utilizzare PWM con PIC18F45k20?

 
Ciao,
C significato?
mikroC?CCS?C18?Ci sono molti là fuori.Quale compilatore usi?
Tahmid.

 
Io sarò con CCS.

Grazie per qualsiasi aiuto è possibile offrire

 
Ciao,
Non so CCS, ma posso dirvi la procedura o darvi un esempio in mikroC da impostare e utilizzare PWM a qualche frequenza data.
Tahmid.Aggiunto dopo 14 minuti:Ecco un esempio in mikroC:
Codice:

/ / Output di 32kHz PWM 50% del ciclo di dovere a PORTC2

/ / Sviluppato da: Tahmid

/ / 1 ° febbraio 2010

/ / Orologio di sistema: 4MHz

/ / Orologio source: XT Crystalvoid main (void) (

TRISC = 0; / / output PORTC

PORTC = 0;

PR2 = 30; / / ~ 32kHz

CCPR1L = 15; / / Ciclo di lavoro 50%

CCP1CON = 0x0C; / / CCP1CON = 00.001.100, uscita singola, Attivo alto

T2CON = 4; / / TMR2 su, Prescale = 0

while (1);

)
 
Grazie per l'ingresso, per caso siete abbastanza familiare con C18 a spiegare come scrivere codice per PWM.in fondo ho solo bisogno di essere il PWM del 90% per un periodo di, diciamo, 3 secondi e poi torna a zero

 
Ciao,
Modificare il valore di CCPR1L.Per il 90%, dovrebbe essere (0,9 PR2 *) = 0.9 * 30 = 27
Scrivere:
Codice:

CCPR1L = 27; / / 90% duty cycle
 
Grazie Tamid, sei stato molto utile.E C18 ha la stessa funzione di ritardo (è grande)

Vedo che 30 è uguale a 32kHz, qual è la scala di merito, e se ho bisogno di un periodo di 20 ms come (credo che avrebbe funzionato come a 50Hz)?

 
Ciao,
La formula è la seguente:
Codice:

PR2 = [fosc / (Fpwm * 4 * N)] - 1
 
Mi chiedo se questo dispositivo può essere utilizzato per alimentazione switching a correre con topologia SEPIC?Ho bisogno di un 90% di efficienza o di più?Ogni suggerimento sarà apprezzato.

 
Tahmid,

Tutto quello che mi hai detto è stato estremamente utile e sto imparando molto da voi, dopo alcune ricerche (quello che sto cercando di fare è guidare un servo) Ho bisogno di un periodo di PWM 20msec (credo che sia 50Hz come accennato prima) e una larghezza di PWM 1msec e 2msec.così un ciclo di funzionamento del 5% e il 10%.Vi sembra giusto a voi?

Lei ha detto che "non sarà in grado di produrre in modo efficace 50Hz con il modulo CCP. Si deve usare il software per la generazione presente, o un IC." Così come fanno le persone interfaccia servi con le foto?Sembra piuttosto comune nel settore della robotica.

Se potete aiutarmi ad ottenere il periodo, posso avere il resto da lì.

Ancora una volta siete stati di grande aiuto e vi ringrazio per avermi fin qui.

 
Ciao,
Si può facilmente fare con software come PWM con Timer 1 o uno qualsiasi dei timer.Non è molto difficile.
Puoi farlo con CCP, ma questo significa ridurre la velocità di clock a basso stesso che provoca l'essere molto lento.Perché non usare PWM software?
Date un'occhiata a questo: http://www.ermicro.com/blog/?p=771
Spero che questo ha aiutato.
Tahmid.

 
Grazie Tahmid,

Tutto il vostro aiuto ha fatto il mio progetto al lavoro un successo

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Sorriso" border="0" />
 
Ciao

Qui è un altro link che spiega come controllare un servo interrupt-driven per un PIC 18F45xx famiglia.Penso che questo codice funziona anche sul vostro PIC 18F45K20.

 
Ciao Tadmid,
Cosa ti ha spiegato mi ha aiutato troppo.Grazie mille.

E se avete tempo, potreste dirmi circa la cattura modulo un po '.Voglio contrastare il numero di impulsi in arrivo a PIC 16F877.
Grazie

 

Welcome to EDABoard.com

Sponsor

Back
Top