Non so ancora però se si può vedere dal debugger software..
Moderatore:
Paolino
... esatto!emacar ha scritto:Ueee risolto il pin era RB4 funziona (era ovviamente scritto nel datasheet)
... non mi è chiara come affermazione; se tu eventualmente ti volessi spiegare diversamente ...emacar ha scritto:l'uscita non è in termini di bit 0 e 1 ma è in termini di frazioni crescenti a step di 1024.


... sei fuori strada ovvero il 1023, in tal caso (PWM ottenuto tramite modulo CCPx), è solo un parametro che concorre a determinare la durata nel tempo del dutycycle; a tale proposito ti suggerirei la lettura del datasheet del micro a pag.257 e pag.266-267 dato che tratta del PWM.emacar ha scritto:Per quanto riguarda il 1023 io ho capito che il PWM ha una risoluzione di 10 bit x cui posso contare da 0 che corrisponde a uscita 0 a 1023 che corrisponde a uscita 3.3 V
... il livello della tensione delle uscite può corrispondere anche ad altro valore, dipende dal tipo e dalla tecnologia con la quale è stata realizzata l'elettronica che si utilizza.emacar ha scritto:mentre le uscite digitali hanno come uscita 0 o 1 ovvero 0 V o 3.3 V.
: no.emacar ha scritto:Il PWM ha un'uscita che va da 0 a 3.3 in maniera "analogica"


WALTERmwp ha scritto:Da quello che avevi scritto nel Post [10] mi era sembrato, a meno ch'io equivocassi, ci fosse un pochino di confusione; questo è il motivo della mia richiesta nel precedente.
Allora, aggiungo qualche precisazione/correzione (tali dal mio punto di vista) a quello che hai appena scritto.
Per questo ...... sei fuori strada ovvero il 1023, in tal caso (PWM ottenuto tramite modulo CCPx), è solo un parametro che concorre a determinare la durata nel tempo del dutycycle; a tale proposito ti suggerirei la lettura del datasheet del micro a pag.257 e pag.266-267 dato che tratta del PWM.emacar ha scritto:Per quanto riguarda il 1023 io ho capito che il PWM ha una risoluzione di 10 bit x cui posso contare da 0 che corrisponde a uscita 0 a 1023 che corrisponde a uscita 3.3 V
WALTERmwp ha scritto:... il livello della tensione delle uscite può corrispondere anche ad altro valore, dipende dal tipo e dalla tecnologia con la quale è stata realizzata l'elettronica che si utilizza.emacar ha scritto:mentre le uscite digitali hanno come uscita 0 o 1 ovvero 0 V o 3.3 V.
WALTERmwp ha scritto:Per questo ...: no.emacar ha scritto:Il PWM ha un'uscita che va da 0 a 3.3 in maniera "analogica"
Il PWM utilizza (nel tuo caso) una uscita digitale (nel senso che non è un valore analogico variabile e o modulabile) per dare tensione (stato logico 1) o non dare tensione (stato logico 0); la variazione di luminosità (nel caso di un dispositivo a LED) o, per esempio, la variazione di velocità di un motore, è in funzione di "quanto tempo" il segnale posto all'uscita digitale rimane a 1, per poi tornare a 0, nell'arco della durata del periodo (vedi pag.266)
} // Fine main} // Fine main


... infatti se l'incremento avviene sul registro CCPR4L credo che gli altri due bits di CCP4CON se sono a zero rimangono a zero (a meno che non vengano traslati a destra, questo particolare però lo vorrei verificare); così dovesse essere, avendo inizializzato CCPR4L a zero, al primo incremento di uno andresti ad assegnare 1 al primo bit meno significativo di CCPR4L ma, dato che si tratta di CCPR4L:CCP4CON<5:4>, il suo valore complessivo corrisponderebbe a quattro per cui ...emacar ha scritto:Nel mio main io scrivo solo su CCPR4L lasciando CCP4CON<5:4> a 00
.emacar ha scritto:ovvero 4-8-12-16 ecc. quindi sto contando a 4 a 4 e non ad 1 ad 1
... è una osservazione coerente ma, per quanto sopra, rimanderei ad una risposta certa a seguito di una verifica o ... ad una risposta da parte di chi lo sa.emacar ha scritto:Se avessi bisogno di contare ad 1 ad 1 dovrei aggiungere praticamente un altro ciclo for per far aumentare anche i due bit meno significativi giusto?


All'interno del nostro ciclo è anche presente il seguente controllo:
- Codice: Seleziona tutto
// Controllo che non sia maggiore di 2^10
if (duty_cycle > 1023) {
duty_cycle =0;
}
Tale controllo è necessario dal momento che il modulo PWM del PIC ha un risoluzione a
10 bit. Raggiunto il valore massimo, il duty cycle viene posto nuovamente a 0 per iniziare un
nuovo conteggio. Da un punto di vista visivo si ha che il LED di retroilluminazione viene
spento.
... prego.emacar ha scritto:Ad ogni modo grazie sia a te che a TardoFreak per l'aiuto.


Torna a Firmware e programmazione
Visitano il forum: Nessuno e 2 ospiti