- Messaggi: 293
- Ringraziamenti ricevuti 29
PWM
12 Anni 1 Mese fa #1
da Tecnica
PWM è stato creato da Tecnica
Buongiorno finalmente sono arrivato al mio primo approccio con il PWM, giusto per cominciare bene non funziona almeno penso.
Ieri ero tutto contento che con ADC funzionava tutto, oggi invece....
allora io vorrei vedere accendere un led piano piano ma vedo solo un piccolissimo bagliore e poi basta..
Dove sbaglio??
Riporto codice:
#include <p18f2550.h>
#include <delays.h>
#include <portb.h>
#include <pwm.h>
#include <timers.h>
#pragma config FOSC = HS
#pragma config IESO= ON
#pragma config WDT = OFF
#pragma config LVP = OFF
#pragma config PBADEN = OFF
#pragma config CCP2MX= ON
//OSC = HSPLL_HS Impostato per lavorare ad alta frequenza CON PLL ATTIVATO
//PLL = attivato la divisione
//WDT = OFF Disabilito il watchdog timer
//LVP = OFF Disabilito programmazione LVP
//PBADEN = OFF Disabilito gli ingressi analogici
void main (void){
// Variabile usata per un conteggio fittizio
int i;
// Periodo del segnale PWM
unsigned char period;
//Duty cycle
int duty_cycle=0;
// Impostazione PortA
TRISA= 0b00000000;
//Impostazione PortB
TRISB= 0b11111111;
//Impostazione PortC con RC1 Uscita
TRISC= 0b11111101;
//Apro il Timer2 per il PWM
OpenTimer2 (TIMER_INT_OFF & T2_PS_1_16 & T2_POST_1_1);
// Imposto una frequenza di 20KHz
period=249;
// Apro il modulo PWM
OpenPWM2(period);
// Ciclo Infinito
while(1){
// Aggiorno il dutycycle
duty_cycle++;
// Controllo che non sia maggiore di 2 alla decima
if(duty_cycle> 1023){
duty_cycle=0;
}
// Pausa
for(i=0;i<10000;i++){
}
}
}
Che poi è uguale a quello di Mauro sul suo tutorial.
Altra domanda ogni volta che vado per scrivere sul pic il codice mi appare questo messaggio:
Warning: some configuration words not in hex file.
ensure default above right are acceptable.
Tradotto:
Attenzione: non alcune parole di configurazione nel file hex.
garantire in alto a destra di default sono accettabili
Naturalmente vado dove mi dice clicco su quello che mi segnala e dò ok e tutto và a posto...
Ma me l'ho fà sempre..... come mai? io uso Kit Pic 2
Grazie
Ieri ero tutto contento che con ADC funzionava tutto, oggi invece....
allora io vorrei vedere accendere un led piano piano ma vedo solo un piccolissimo bagliore e poi basta..
Dove sbaglio??
Riporto codice:
#include <p18f2550.h>
#include <delays.h>
#include <portb.h>
#include <pwm.h>
#include <timers.h>
#pragma config FOSC = HS
#pragma config IESO= ON
#pragma config WDT = OFF
#pragma config LVP = OFF
#pragma config PBADEN = OFF
#pragma config CCP2MX= ON
//OSC = HSPLL_HS Impostato per lavorare ad alta frequenza CON PLL ATTIVATO
//PLL = attivato la divisione
//WDT = OFF Disabilito il watchdog timer
//LVP = OFF Disabilito programmazione LVP
//PBADEN = OFF Disabilito gli ingressi analogici
void main (void){
// Variabile usata per un conteggio fittizio
int i;
// Periodo del segnale PWM
unsigned char period;
//Duty cycle
int duty_cycle=0;
// Impostazione PortA
TRISA= 0b00000000;
//Impostazione PortB
TRISB= 0b11111111;
//Impostazione PortC con RC1 Uscita
TRISC= 0b11111101;
//Apro il Timer2 per il PWM
OpenTimer2 (TIMER_INT_OFF & T2_PS_1_16 & T2_POST_1_1);
// Imposto una frequenza di 20KHz
period=249;
// Apro il modulo PWM
OpenPWM2(period);
// Ciclo Infinito
while(1){
// Aggiorno il dutycycle
duty_cycle++;
// Controllo che non sia maggiore di 2 alla decima
if(duty_cycle> 1023){
duty_cycle=0;
}
// Pausa
for(i=0;i<10000;i++){
}
}
}
Che poi è uguale a quello di Mauro sul suo tutorial.
Altra domanda ogni volta che vado per scrivere sul pic il codice mi appare questo messaggio:
Warning: some configuration words not in hex file.
ensure default above right are acceptable.
Tradotto:
Attenzione: non alcune parole di configurazione nel file hex.
garantire in alto a destra di default sono accettabili
Naturalmente vado dove mi dice clicco su quello che mi segnala e dò ok e tutto và a posto...
Ma me l'ho fà sempre..... come mai? io uso Kit Pic 2
Grazie
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Tecnica
- Autore della discussione
- Visitatori
12 Anni 1 Mese fa #2
da shinshi
Risposta da shinshi al topic Re: PWM
Mi sa che qualcosa ti è rimasto sulla tastiera :
// Aggiorno il dutycycle
SetDCPWM2 (duty_cycle);
subito dopo il while
// Aggiorno il dutycycle
SetDCPWM2 (duty_cycle);
subito dopo il while
Ringraziano per il messaggio: Tecnica
Si prega Accedi o Crea un account a partecipare alla conversazione.
- shinshi
- Elite Member
Riduci
Di più
12 Anni 1 Mese fa #3
da Tecnica
Risposta da Tecnica al topic Re: PWM
ops hai ragione..... dopo lo provo e vedo se va'....
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Tecnica
- Autore della discussione
- Visitatori
Moderatori: Mauro Laurenti, Pinna, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.