home | area personale         schemi | tutorial | robotica | pic micro | recensioni         forum | chat irc         faq | contatti         store | Ordina PCB
username
password
cerca

 
FORUM: Pic Micro
Tutto quanto riguarda questi microprocessori... progetti, suggerimenti, aiuti, discussioni...ecc


PWM 16F876 MikroBasic
     
Autore Messaggio opzioni
piero55




una ogni 10 livelli


postato il:
06.08.2019, alle ore 10:08
PWM 16F876 MikroBasic 

Buongiorno....
Dovrei generare un segnale PWM a frequenza molto bassa, attorno a 30-60Hz.
La libreria di MBPro non permette di scendere sotto 1KHz, generarlo manualmete utilizzando i registri del modulo PWM del pic è facile ma con un quarzo da 4MHz, non riesco a scendere sotto ai 266Hz quindi dovrei ridurre la frequenza del quarzo sotto ad 1MHz..... Ci sono altre soluzioni possibili?
picmicro675




una ogni 10 livelli


postato il:
06.08.2019, alle ore 15:55
Scrivere il programma che cambia stato all'uscita interessata.
Puoi interessare un timer con il suo interrupt e quindi determinare una soglia che cambia lo stato di uscita.
Tenuto conto una frequenza di 50 Hz. un periodo è di 20 millisecondi. Puoi impostare che il timer scatti ad ogni 200 microsecondi, che sarebbe l' 1%. Quindi puoi avere una risoluzione in percentuale.

Poi si verifica se il contatore che si incrementa ad ogni interrupt ha raggiunto il valore di soglia e quindi cambia di stato. Poi arrivato a 100 cambia ancora.

Non mi sembra complicato. Sono pochissime righe.
Nel ciclo principale avrai solo di preoccuparti di cambiare il valore di regolazione.



Anno nuovo, forum nuovo.
Mi sa che lascio.
piero55




una ogni 10 livelli


postato il:
06.08.2019, alle ore 16:37
ok.... quindi mettere a riposo la periferica PWM del pic. Devo vedere se riesco a gestire l'interrupt visto che già è utilizzato. Non si devono interferire....
Alternativa un quarzo o simile da 1MHz o poco meno. ci studio su.
picmicro675




una ogni 10 livelli


postato il:
07.08.2019, alle ore 13:28
Io non mi preoccuperei per i timer, ce ne sono tre (se non vado errato). Addirittura aumenterei il clock al massimo, così riesci a servire bene tutti gli interrupt senza rischi di ritardi. Tanto il timer lo metti al massimo possibile, per quello magari il timer1 che riesci a dividere per 524288, incluso il prescaler. Magari aggiungi un altro contatore e sei a posto.

Ma a conti fatti, con il timer1 (16 bit) per avere un interrupt a 200 microsecondi con il clock a 20 MHz, dovresti dividere per 25`000, quindi basta il suo contatore senza prescaler.



Anno nuovo, forum nuovo.
Mi sa che lascio.
MB54




una ogni 100 livelli


postato il:
07.08.2019, alle ore 14:11
https://www.instructables.com/id/Generating-50Hz-PWM-Using-P…
picmicro675




una ogni 10 livelli


postato il:
07.08.2019, alle ore 14:33
Ecco, c'hai la pappa pronta


Anno nuovo, forum nuovo.
Mi sa che lascio.
piero55




una ogni 10 livelli


postato il:
08.08.2019, alle ore 09:48
Grazie, molto gentili.... ci sto studiando...
piero55




una ogni 10 livelli


postato il:
10.08.2019, alle ore 18:10
Ho iniziato i primi esperimenti, compatibilmente con un lavoro di manutenzione casa che sto portando avanti.........
Prima prova: dal link ho preso il SW in C ed ho cercato di convertirlo in basic.... non va ...... Picmicro, penso sia meglio seguire passo passo quello che mi hai suggerito all'inizio....
picmicro675




una ogni 10 livelli


postato il:
12.08.2019, alle ore 14:41
Sono fuori casa e senza gli attrezzi.
Appena rientrato provo a fare qualcosa.



Anno nuovo, forum nuovo.
Mi sa che lascio.
piero55




una ogni 10 livelli


postato il:
12.08.2019, alle ore 15:03
Grazie..... anch'io sono indaffarato in altre cose, senza fretta....
segui questo thread con grixFC, per questa funzione devi aver installato il software grixFC

torna su
     

Come utente anonimo puoi leggere il contenuto di questo forum ma per aprire una discussione
o per partecipare ad una discussione esistente devi essere registrato ed accedere al sito




 







 
 
indietro | homepage | torna su copyright © 2004/2024 GRIX.IT - La community dell'elettronica Amatoriale