- Messaggi: 583
- Ringraziamenti ricevuti 1
effetti sonori
12 Anni 9 Mesi fa #1
da Guido
effetti sonori è stato creato da Guido
Ciao aggiungendo oppure modificando il codice si possono mettere effetti sonori?
Se si come?
Grazie
# include <p18f4550.h>
# include <pwm.h>
# include <timers.h>
#include <portb.h>
#pragma config FOSC = HS
#pragma config WDT = OFF
#pragma config LVP = OFF
#pragma config PBADEN = OFF
#pragma config CCP2MX = ON
//OSC = HS Impostato per lavorare ad alta frequenza
//WDT = OFF Disabilitato il Watchdog Timer
//LVT = OFF Disabilitato programmazione LVT
//PBADEN = OFF Disabilitato gli ingrassi analogici
//CCP2MX = ON il modulo CCP è posto su RC1
void main (void) {
int i; //Variabile usata per creare un conteggio fittizio di pausa
unsigned char period; //Periodo del segnale pwm
int duty_cycle = 0; //Duty Cycle
//Imposto PORTA tutti ingrrssi
LATA = 0x00;
TRISA = 0xFF;
//Imposto PORTB tutti ingrrssi
LATB = 0x00;
TRISB = 0xFF;
//Imposto PORTC tutti ingressi ad RC1 come uscita
LATC = 0x00;
TRISC = 0b11111101;
//Imposto PORTD tutte uscite
LATD = 0x00;
TRISD = 0x00;
//Imposto PORTE tutti ingrrssi
LATE = 0x00;
TRISE = 0xFF;
EnablePullups (); //Abilito resistori di pullups
OpenTimer2 (TIMER_INT_OFF & T2_PS_1_16 & T2_POST_1_16 ); //Apro il timer2 per il pwm
while (1) { //Ciclo infinito
if (PORTBbits.RB0 == 0) { //Controllo la pressione di RB0
for (i=0; i<10000; i++) { //Pausa filtraggio spike
}
//OpenTimer2 (TIMER_INT_OFF & T2_PS_1_16 & T2_POST_1_16 ); //Apro il timer2 per il pwm
period = 237; // (232) Imposto una frequenza di 262Hz DO centrale
if (PORTBbits.RB0 == 0) { //Controllo la pressione di RB4
OpenPWM2(period) ; //Apro il modulo pwm
LATCbits.LATC1 = 0x01 ; //Accendo il Led 1
}
else {
LATCbits.LATC1 = 0x00 ;
ClosePWM2 () ; // Chiudo il modulo pwm
}
SetDCPWM2 (500); //Aggiorno il duty cycle
}
if (PORTBbits.RB1 == 0) { //Controllo la pressione di RB1
for (i=0; i<10000; i++) { //Pausa filtraggio spike
}
period = 224; // (222) Imposto una frequenza di 277Hz DO #
if (PORTBbits.RB1 == 0) { //Controllo la pressione di RB1
OpenPWM2(period) ; //Apro il modulo pwm
LATCbits.LATC1 = 0x01 ; //Accendo il Led 1
}
else {
LATCbits.LATC1 = 0x00 ;
ClosePWM2 () ; // Chiudo il modulo pwm
}
SetDCPWM2 (500); //Aggiorno il duty cycle
}
if (PORTBbits.RB2 == 0) { //Controllo la pressione di RB2
for (i=0; i<10000; i++) { //Pausa filtraggio spike
}
period = 212; // (219) Imposto una frequenza di 294Hz RE
if (PORTBbits.RB2 == 0) { //Controllo la pressione di RB2
OpenPWM2(period) ; //Apro il modulo pwm
LATCbits.LATC1 = 0x01 ; //Accendo il Led 1
}
else {
LATCbits.LATC1 = 0x00 ;
ClosePWM2 () ; // Chiudo il modulo pwm
}
SetDCPWM2 (500); //Aggiorno il duty cycle
}
if (PORTBbits.RB3 == 0) { //Controllo la pressione di RB3
for (i=0; i<10000; i++) { //Pausa filtraggio spike
}
period = 210; // (215) Imposto una frequenza di 311Hz RE #
if (PORTBbits.RB3 == 0) { //Controllo la pressione di RB3
OpenPWM2(period) ; //Apro il modulo pwm
LATCbits.LATC1 = 0x01 ; //Accendo il Led 1
}
else {
LATCbits.LATC1 = 0x00 ;
ClosePWM2 () ; // Chiudo il modulo pwm
}
SetDCPWM2 (500); //Aggiorno il duty cycle
}
}
}
Se si come?
Grazie
# include <p18f4550.h>
# include <pwm.h>
# include <timers.h>
#include <portb.h>
#pragma config FOSC = HS
#pragma config WDT = OFF
#pragma config LVP = OFF
#pragma config PBADEN = OFF
#pragma config CCP2MX = ON
//OSC = HS Impostato per lavorare ad alta frequenza
//WDT = OFF Disabilitato il Watchdog Timer
//LVT = OFF Disabilitato programmazione LVT
//PBADEN = OFF Disabilitato gli ingrassi analogici
//CCP2MX = ON il modulo CCP è posto su RC1
void main (void) {
int i; //Variabile usata per creare un conteggio fittizio di pausa
unsigned char period; //Periodo del segnale pwm
int duty_cycle = 0; //Duty Cycle
//Imposto PORTA tutti ingrrssi
LATA = 0x00;
TRISA = 0xFF;
//Imposto PORTB tutti ingrrssi
LATB = 0x00;
TRISB = 0xFF;
//Imposto PORTC tutti ingressi ad RC1 come uscita
LATC = 0x00;
TRISC = 0b11111101;
//Imposto PORTD tutte uscite
LATD = 0x00;
TRISD = 0x00;
//Imposto PORTE tutti ingrrssi
LATE = 0x00;
TRISE = 0xFF;
EnablePullups (); //Abilito resistori di pullups
OpenTimer2 (TIMER_INT_OFF & T2_PS_1_16 & T2_POST_1_16 ); //Apro il timer2 per il pwm
while (1) { //Ciclo infinito
if (PORTBbits.RB0 == 0) { //Controllo la pressione di RB0
for (i=0; i<10000; i++) { //Pausa filtraggio spike
}
//OpenTimer2 (TIMER_INT_OFF & T2_PS_1_16 & T2_POST_1_16 ); //Apro il timer2 per il pwm
period = 237; // (232) Imposto una frequenza di 262Hz DO centrale
if (PORTBbits.RB0 == 0) { //Controllo la pressione di RB4
OpenPWM2(period) ; //Apro il modulo pwm
LATCbits.LATC1 = 0x01 ; //Accendo il Led 1
}
else {
LATCbits.LATC1 = 0x00 ;
ClosePWM2 () ; // Chiudo il modulo pwm
}
SetDCPWM2 (500); //Aggiorno il duty cycle
}
if (PORTBbits.RB1 == 0) { //Controllo la pressione di RB1
for (i=0; i<10000; i++) { //Pausa filtraggio spike
}
period = 224; // (222) Imposto una frequenza di 277Hz DO #
if (PORTBbits.RB1 == 0) { //Controllo la pressione di RB1
OpenPWM2(period) ; //Apro il modulo pwm
LATCbits.LATC1 = 0x01 ; //Accendo il Led 1
}
else {
LATCbits.LATC1 = 0x00 ;
ClosePWM2 () ; // Chiudo il modulo pwm
}
SetDCPWM2 (500); //Aggiorno il duty cycle
}
if (PORTBbits.RB2 == 0) { //Controllo la pressione di RB2
for (i=0; i<10000; i++) { //Pausa filtraggio spike
}
period = 212; // (219) Imposto una frequenza di 294Hz RE
if (PORTBbits.RB2 == 0) { //Controllo la pressione di RB2
OpenPWM2(period) ; //Apro il modulo pwm
LATCbits.LATC1 = 0x01 ; //Accendo il Led 1
}
else {
LATCbits.LATC1 = 0x00 ;
ClosePWM2 () ; // Chiudo il modulo pwm
}
SetDCPWM2 (500); //Aggiorno il duty cycle
}
if (PORTBbits.RB3 == 0) { //Controllo la pressione di RB3
for (i=0; i<10000; i++) { //Pausa filtraggio spike
}
period = 210; // (215) Imposto una frequenza di 311Hz RE #
if (PORTBbits.RB3 == 0) { //Controllo la pressione di RB3
OpenPWM2(period) ; //Apro il modulo pwm
LATCbits.LATC1 = 0x01 ; //Accendo il Led 1
}
else {
LATCbits.LATC1 = 0x00 ;
ClosePWM2 () ; // Chiudo il modulo pwm
}
SetDCPWM2 (500); //Aggiorno il duty cycle
}
}
}
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Guido
- Autore della discussione
- Platinum Member
Riduci
Di più
12 Anni 8 Mesi fa #2
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: effetti sonori
Ciao,
non rispondo a questo topic perche' stiamo portando avanti la discussione in questo Topic .
Saluti,
Mauro
non rispondo a questo topic perche' stiamo portando avanti la discussione in questo Topic .
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
12 Anni 8 Mesi fa #3
da Guido
Risposta da Guido al topic Re: effetti sonori
Hai ragione, grazie.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Guido
- Autore della discussione
- Platinum Member
Riduci
Di più
- Messaggi: 583
- Ringraziamenti ricevuti 1
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.