Home Forum MICROCONTROLLORI effetti sonori

Questo argomento contiene 0 risposte, ha 1 partecipante, ed è stato aggiornato da  OPGUIDO 2 anni, 9 mesi fa.

Stai vedendo rticolo (di 1 totali)
  • Autore
    Articoli
  • #58675

    OPGUIDO
    Membro

    Ciao è possibile solo modificando il codice creare degli effetti sulle frequenze?
    Se si come?
    Grazie

    # include

    # include # include
    #include

    #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 RB
    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 RB

    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 RB
    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 RB

    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 RB
    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 RB

    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 RB
    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 RB

    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
    }
    }

    }

Stai vedendo rticolo (di 1 totali)

Devi aver eseguito l’accesso per poter rispondere a questa discussione.