Se sei già registrato           oppure    

Orario: 19/03/2024 10:43:07  

 

Energia Alternativa ed Energia Fai Da Te > PPTEA


problema settaggio pwm
FinePagina

ecologix1971

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:4165

Stato:



Inviato il: 26/03/2017 22:06:36

ciao a tutti,
ho qualche problema nel settare il duty cycle dei pwm 2 e 3.
ho seguito alla lettera la guida, ma forse qualche cosa mi sfugge.
comunque, quello che volevo fare era spostare i bit dei pwm che di default sono il 15,14,13 ai bit 0,1,2 e variare in modo differente il loro duty cycle.
da come ho capito prima di tutto i bit devono essere settati come output e quindi con il SETIO li ho messi tutti a zero.
dopodiche' con il comando PWMIO1=bit sono riuscito a cambiare il bit del primo pwm che di default e' il bit15.
una volta cambiato il bit del primo pwm, con PWMDC1 riesco a modificare il duty cycle.
fino a questo punto tutto ok.
se faccio la stessa cosa con gli altri due,usando quindi PWMIO2 oppure PWMIO3 e quindi PWMDC2 e PWMDC3 anche cambiando il duty, il pwm rimane al 100%
avete qualche idea per risolvere il problema?
grazie a tutti
ecologix

 

BellaEli

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:3286

Stato:



Inviato il: 27/03/2017 01:16:42

Ciao Eco, non conosco il PPTEA ma un po' di Arduino e nella CPU di arduino non tutti i pin possono funzionare come PWM.

I Pin abilitati al PWM sono collegati al/ai contatore/i interno/i e non è detto che tutti i pin lo siano.

Se scarichi il datasheet della CPU del PPTEA dovresti trovare indicazioni in merito, altrimenti sentiamo qualche Bolla cosa dice...



---------------
C'è un limite al fai da te ???
Si, ma lo stabiliamo noi !!!

 

ecologix1971

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:4165

Stato:



Inviato il: 27/03/2017 10:03:37

ciao BellaEli, grazie per il suggerimento, un'occhiata al datasheet l'ho data, ma piu' di tanto non ci ho capito.

riporto comunque quello scritto sul manuale del pptea:

PWMDC1=EXPR
Modifica il Duty Cycle del PWM 1. Exp va da 0 a 100 e rappresenta la percentuale del Duty Cycle.
Il bit15 (pin 28) è l’uscita di default del PWM1. Il PWM1 parte quando viene eseguita questa istruzione. Un
Duty Cycle =0 blocca il PWM (ed azzera il valore del TIMER) mentre un Duty Cycle=100 mette a positivo i
bit associati al PWM.
Esempio:
50 PWMDC1=50
60 goto 60
Il pin 28( bit15) inizia a fare un polling alto/basso con con un duty cycle del 50% ( ponendo un led ed
una resistenza sul pin 28 (bit 15) lo vedremo lampeggiare nonostante il codice sia bloccato sulla linea
60).
• PWMDC2=EXPR
Modifica il Duty Cycle del PWM 2. Exp va da 0 a 100 e rappresenta la percentuale del Duty Cycle.
Il bit14 è l’uscita di default del PWM2. Il PWM2 parte quando viene eseguita questa istruzione. Un Duty
Cycle =0 blocca il PWM2 mentre un Duty Cycle=100 mette a positivo i bit associati al PWM2.
• PWMDC3=EXPR
Modifica il Duty Cycle del PWM 3. Exp va da 0 a 100 e rappresenta la percentuale del Duty Cycle.
Il bit13 è l’uscita di default del PWM3. Il PWM3 parte quando viene eseguita questa istruzione. Un Duty
Cycle =0 blocca il PWM3 mentre un Duty Cycle=100 mette a positivo i bit associati al PWM3.
• PWMFQ1=VAL_PERIOD
Modifica il periodo del PWM. VAL_PERIOD può assumere valori da 0 ( bassa frequenza ) a
7( alta frequenza ). Per default il valore è posto uguale ad 0. Solo nel primo PWM è possibile modificare la
frequenza di oscillazione. Questa è la corrispondenza dei valori:
VAL_PERIOD = 0 T= 1.67 s
VAL_PERIOD = 1 T= 0.83 s
VAL_PERIOD = 2 T= 0.83 s
VAL_PERIOD = 3 T= 419 ms
VAL_PERIOD = 4 T= 209 ms
VAL_PERIOD = 5 T= 104 ms
VAL_PERIOD = 6 T= 52 ms
VAL_PERIOD = 7 T= 26 ms
Esempio:
10 PWMDC=50
20 PWMFQ=3
30 GOTO 30
Il pin 28 (bit15) inizia a fare un polling alto/basso molto veloce.
• PWMIO1=BIT
Seleziona i bit del primo PWM. Il default è &H8000 relativo al bit 15.
Attenzione:occorre assicurarsi che i BIT associati al PWM siano impostati come output.
Esempio:
05 SETIO=&H00FE
60 PWMFQ=3
70 PWMIO=&H8001
80 PWMDC=50
90 GOTO 90
Il bit15 (pin 28) ed il bit0 (pin 2) vengono associati al PWM e lampeggiano insieme.
• PWMIO2=BIT
Seleziona i bit del secondo PWM. Il default è &H4000 relativo al bit 14.
Attenzione:occorre assicurarsi che i BIT associati al PWM siano impostati come output.
• PWMIO3=BIT
Seleziona i bit del terzo PWM. Il default è &H2000 relativo al bit 13.
Attenzione:occorre assicurarsi che i BIT associati al PWM siano impostati come output.

 

ecologix1971

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:4165

Stato:



Inviato il: 27/03/2017 20:49:26

seguito a fare prove e sono arrivato ad una conclusione...
il pwm1 lo posso spostare e ne posso modificare il duty e la frequenza.
il pwm2 lo posso spostare su di altro bit, riesco a modificare il duty, ma non la frequenza che comunque e' diversa dal pwm1
il pwm3 non lo riesco a spostare....
qualcuno puo' indicarmi qualche thread dove viene spiegato l'uso dei pwm del pptea...
grazie a tutti

 

Bolle

Avatar
GigaWatt


Gruppo:AMMINISTRATORE
Messaggi:9256

Stato:



Inviato il: 29/03/2017 08:50:48

Solo la frequenza del PWM1 si può cambiare, questo in modo da essere utilizzata per far lampeggiare dei led. Le altre frequenze non possono essere cambiate ...anche perchè generalmente nei PWM non ha
senso cambiare la frequenza...ed è elevata...come è giusto che sia.
Il terzo pwm è legato al counter...o funge l'uno o funge l'altro.
Tutti e tre i pwm dovrebbero spostarsi di pin!!!

Codice codice...che vediamo cosa combina il PPTEA!



---------------
Un risultato se non è ripetibile non esiste (by qqcreafis).

 

ecologix1971

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:4165

Stato:



Inviato il: 29/03/2017 14:06:12

ok, quindi che il pwm2 riesco a spostarlo e la frequenza e' la massima e' giusto, pensavo che prendesse quella del pwm1, comunque ora ho capito.
solo il pwm1 posso cambiare la frequenza ed il 2 e' massima indipendentemente da come setto la frq del primo..chiaro!
per il codice sono poche righe...

pragma advanced
setio=&b000000000000000000 'metto tutto out
pwmio3=&b000000000000000001 'setto il bit0 come pwm
pwmdc3=50
end

se faccio la stessa cosa con il pwm1 e 2 funziona, il 3 no.
ciao eco



Modificato da Bolle - 29/03/2017, 14:28:17
 

Bolle

Avatar
GigaWatt


Gruppo:AMMINISTRATORE
Messaggi:9256

Stato:



Inviato il: 29/03/2017 14:31:11

Ciao Eco,
non ho un pptea con cui provare...puoi verificare questi codici?

LINK



---------------
Un risultato se non è ripetibile non esiste (by qqcreafis).

 

ecologix1971

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:4165

Stato:



Inviato il: 29/03/2017 16:30:18

con la versione 4_2_7b, naturalmente.
ora sono in giro per lavoro, come torno a casa li provo.

 

ecologix1971

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:4165

Stato:



Inviato il: 30/03/2017 11:00:14

ho appena provato il primo codice del link.
funge, ossia un led lampeggia e gli altri due sono fissi.
quindi l'errore che facevo era questo?

pwmio3=&b000000000000000001 'setto il bit0 come pwm

ora ho preso spunto dal codice mettendo &H0001
e mi ha spostato il pwm 3 sul bit 0

...ma perche' in binario non me lo accetta, sbaglio io qualcosa?

 

Bolle

Avatar
GigaWatt


Gruppo:AMMINISTRATORE
Messaggi:9256

Stato:



Inviato il: 30/03/2017 12:53:54

Bene, se hai risolto.
Sul binaro....bobabu...controllo questa sera!



---------------
Un risultato se non è ripetibile non esiste (by qqcreafis).

 

ecologix1971

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:4165

Stato:



Inviato il: 30/03/2017 22:43:34

tutto apposto, funge...
grazie bolle

 

Bolle

Avatar
GigaWatt


Gruppo:AMMINISTRATORE
Messaggi:9256

Stato:



Inviato il: 31/03/2017 00:32:17

Bene bene....chissà cosa ti stai inventando...



---------------
Un risultato se non è ripetibile non esiste (by qqcreafis).

 

ecologix1971

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:4165

Stato:



Inviato il: 31/03/2017 20:14:27

CITAZIONE (Bolle, 31/03/2017 00:32:17 ) Discussione.php?214532&1#MSG11

Bene bene....chissà cosa ti stai inventando...


sei curioso ehhh?

 
 InizioPagina
 

Versione Mobile!

Home page       TOP100-SOLAR      Home page forum