sfinge Inserito: 22 ottobre 2005 Segnala Inserito: 22 ottobre 2005 Salve a tutti!Non riesco a capire dal datasheet di un Pic 16f876 come ottenere da un Pwm un risoluzione a 10Bit.Vorrei utilizzare un'ingresso analogico a 10 Bit per avere appunto un Pwm a 10Bit.Attualmente funziona a 8Bit, infatti sul Display vedo che il led collegato sull'uscita aumenta di luminosità finoal passo 255 dopodichè si spegne e riprende ad incrementare fino al pass0 510 e cosi via per altre 2 volte fino a 1024.(I passi sono quelli del convetritore A/D dove ho collegato un Pot.).Riporto una parte di codice:TRISC2=0; //Imposto come uscitaPR2=0xFF //Imposta periodo dell'onda PWMT2CON=0b00000101; //Abilita TIMER2 imposta prescaler a 4CCP1CON=0b00001100; //Attiva PWMfor(;{CCPR1L=ADRESL; //Sposto valore basso di A/D su byte basso PWMAppoggioAD=ADRESH & 0x3; //Ottengo solo Msb (bit 0 e 1) di A/DAppoggioAD<<=4; //Sposto i due bit sui bit 4 e 5CCP1CON=CCP1CON ^ AppoggioAD; //Xor per avere i bit 4 e 5 di A/D su Msb di PWM (Per risoluz. 10bit)}Qualcuno mi può aiutare?Ciao Grazie!!
sonoilmario Inserita: 31 ottobre 2005 Segnala Inserita: 31 ottobre 2005 purtroppo non conosco il pic, ma ho notato che nei commenti del codice imposti a 255 il periodo del PWM...non e' che tale valore viene utilizzato per stabilire anche la discretizzazione del PWM? il comportamento 4 volte ricorsivo sembra tipico di un comparatore che lavori con valori a 8 bit da una parte e 10 dall' altra
wnc Inserita: 31 ottobre 2005 Segnala Inserita: 31 ottobre 2005 Dovresti indicare che frequenza di clock utilizzi poichè esiste un limite superiore alla risoluzione ottenibile. Mi sembra di ricordare che la formaula sia:Risol. PWM in bit = log(Fosc/Fpwm)/log2
pcb-proto Inserita: 5 novembre 2005 Segnala Inserita: 5 novembre 2005 Ciao,penso che tu abbia confuso il significato del registro CCP1CON<5:4>; questi due bit infatti contengono gli LSB e non gli MSB del periodo PWM; quindi gli 8 bit piu' significativi vanno nel registro CCPR1L e i due meno significativi in CCP1CON<5:4>. Forse devi giustificare verso sinistra il risultato del tuo ADC e quindi potrai copiare direttamente il registro ADRESH in CCPR1L, mentre i ADRESL<7:6> lo puoi spostare in CCP1CON<5:4>.Ciao
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora