|
Autore |
Messaggio |
opzioni |
piero55
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
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
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
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
postato il: 07.08.2019, alle ore 14:11 |
https://www.instructables.com/id/Generating-50Hz-PWM-Using-P…
|
|
picmicro675
postato il: 07.08.2019, alle ore 14:33 |
Ecco, c'hai la pappa pronta
Anno nuovo, forum nuovo.
Mi sa che lascio. |
|
piero55
postato il: 08.08.2019, alle ore 09:48 |
Grazie, molto gentili.... ci sto studiando... |
|
piero55
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
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
postato il: 12.08.2019, alle ore 15:03 |
Grazie..... anch'io sono indaffarato in altre cose, senza fretta.... |
|
|