Bibliotecas Complementares

3
//////////////////////////////////////////////////////////////////////////// void inicializa_timer_0() { T0CONbits.TMR0ON=1;//1 liga timer0 T0CONbits.T08BIT=0;//1=8bits T0CONbits.T0CS=0;//0 clock interno 1/2 T0CONbits.T0SE=1;//1 BORDA DE DESCIDA T0CONbits.PSA=0;// 0=LIGA PRESCALER T0CONbits.T0PS2=1; T0CONbits.T0PS1=1; T0CONbits.T0PS0=1;//111=1:256 //1000 atualizações do timer=7 segundos } //////////////////////////////////////////////////////////////////////////// void inicializa_timer_1() { T1CONbits.RD16=0;//0=8bits T1CONbits.T1CKPS1=0; T1CONbits.T1CKPS0=0;//11=1:8 00=1:1 T1CONbits.T1OSCEN=0; T1CONbits.T1SYNC=1;//1 nao sincronizado T1CONbits.TMR1CS=0;//0 clock interno 1/4 //T1CONbits.TMR1ON=1;//1 liga timer1 } //////////////////////////////////////////////////////////////////////////// void inicializa_timer_2() { T2CONbits.TOUTPS3=1;//0110 T2CONbits.TOUTPS2=1; T2CONbits.TOUTPS1=1; T2CONbits.TOUTPS0=1;//0111 1:16 postscale T2CONbits.T2CKPS1=0;//01 T2CONbits.T2CKPS0=1;//11 prescale=1:16 //8*16*4*256=131072/20MHz=6,55ms T2CONbits.TMR2ON=1;//1 liga timer1 } //////////////////////////////////////////////////////////////////////////// void inicializa_entradas_analogicas() { ADCON0bits.ADCS1=1;//AD CONVERSION CLOCK ADCON0bits.ADCS0=0;//AD CONVERSION CLOCK ADCON0bits.CHS2=0;//ANALOG CHANNEL SELECT BITS ADCON0bits.CHS1=0;//ANALOG CHANNEL SELECT BITS ADCON0bits.CHS0=0;//ANALOG CHANNEL SELECT BITS //ADCON0bits.GO=1;//A/D CONVERSION STATUS BIT ADCON0bits.ADON=1;//A/D ON BIT ADCON1bits.ADFM=1;//A/D RESULT FORMAT SELECTION BIT ADCON1bits.ADCS2=1;//A/D CONVERSION CLOCK ADCON1bits.PCFG3=0;//A/D PORT CONFIGURATION CONTROL BITS ADCON1bits.PCFG2=0;//A/D PORT CONFIGURATION CONTROL BITS

Transcript of Bibliotecas Complementares

Page 1: Bibliotecas Complementares

//////////////////////////////////////////////////////////////////////////// void inicializa_timer_0() { T0CONbits.TMR0ON=1;//1 liga timer0 T0CONbits.T08BIT=0;//1=8bits T0CONbits.T0CS=0;//0 clock interno 1/2 T0CONbits.T0SE=1;//1 BORDA DE DESCIDA T0CONbits.PSA=0;// 0=LIGA PRESCALER T0CONbits.T0PS2=1; T0CONbits.T0PS1=1; T0CONbits.T0PS0=1;//111=1:256 //1000 atualizações do timer=7 segundos } //////////////////////////////////////////////////////////////////////////// void inicializa_timer_1() { T1CONbits.RD16=0;//0=8bits T1CONbits.T1CKPS1=0; T1CONbits.T1CKPS0=0;//11=1:8 00=1:1 T1CONbits.T1OSCEN=0; T1CONbits.T1SYNC=1;//1 nao sincronizado T1CONbits.TMR1CS=0;//0 clock interno 1/4 //T1CONbits.TMR1ON=1;//1 liga timer1 } //////////////////////////////////////////////////////////////////////////// void inicializa_timer_2() { T2CONbits.TOUTPS3=1;//0110 T2CONbits.TOUTPS2=1; T2CONbits.TOUTPS1=1; T2CONbits.TOUTPS0=1;//0111 1:16 postscale T2CONbits.T2CKPS1=0;//01 T2CONbits.T2CKPS0=1;//11 prescale=1:16 //8*16*4*256=131072/20MHz=6,55ms T2CONbits.TMR2ON=1;//1 liga timer1 } //////////////////////////////////////////////////////////////////////////// void inicializa_entradas_analogicas() { ADCON0bits.ADCS1=1;//AD CONVERSION CLOCK ADCON0bits.ADCS0=0;//AD CONVERSION CLOCK ADCON0bits.CHS2=0;//ANALOG CHANNEL SELECT BITS ADCON0bits.CHS1=0;//ANALOG CHANNEL SELECT BITS ADCON0bits.CHS0=0;//ANALOG CHANNEL SELECT BITS //ADCON0bits.GO=1;//A/D CONVERSION STATUS BIT ADCON0bits.ADON=1;//A/D ON BIT ADCON1bits.ADFM=1;//A/D RESULT FORMAT SELECTION BIT ADCON1bits.ADCS2=1;//A/D CONVERSION CLOCK ADCON1bits.PCFG3=0;//A/D PORT CONFIGURATION CONTROL BITS ADCON1bits.PCFG2=0;//A/D PORT CONFIGURATION CONTROL BITS

Page 2: Bibliotecas Complementares

ADCON1bits.PCFG1=1;//A/D PORT CONFIGURATION CONTROL BITS ADCON1bits.PCFG0=0;//A/D PORT CONFIGURATION CONTROL BITS } //////////////////////////////////////////////////////////////////////////// void inicializa_saidas() { lcd_rs_dir=0; lcd_en_dir=0; lcd_d4_dir=0; lcd_d5_dir=0; lcd_d6_dir=0; lcd_d7_dir=0; } //////////////////////////////////////////////////////////////////////////// void PWM1_Set_Duty(unsigned int potencia) { if(potencia>PR2)CCPR1=PR2-1; else if(potencia<=0)CCPR1=0; else CCPR1=potencia; } //////////////////////////////////////////////////////////////////////////// void inicializa_pwm_1() { inicializa_timer_2(); //set the PWM period by writing to the PR2 register PR2=255;//255=MAXIMO //set the pwm duty cycle by writing to the CCPR1L register and CCP1CON<5:4> bits //CCPR1=0; CCPR1=PR2+1; CCP1CONbits.DC1B1=0; CCP1CONbits.DC1B0=0; //make the CCP1 pin an output by clearing the TRISC<2> bit TRISCbits.TRISC2=0; //configure the CCP1 module for PWM operation CCP1CONbits.CCP1M3=1; CCP1CONbits.CCP1M2=1; CCP1CONbits.CCP1M1=1; CCP1CONbits.CCP1M0=1; } //////////////////////////////////////////////////////////////////////////// unsigned int ADC_Read(unsigned int canal) { if(canal==0) { ADCON0bits.CHS2=0; ADCON0bits.CHS1=0; ADCON0bits.CHS0=0; } if(canal==1) { ADCON0bits.CHS2=0; ADCON0bits.CHS1=0;

Page 3: Bibliotecas Complementares

ADCON0bits.CHS0=1; } if(canal==2) { ADCON0bits.CHS2=0; ADCON0bits.CHS1=1; ADCON0bits.CHS0=0; } if(canal==3) { ADCON0bits.CHS2=0; ADCON0bits.CHS1=1; ADCON0bits.CHS0=1; } delay_10us(1); ADCON0bits.GO=1; while(ADCON0bits.GO); valor=ADRESL+(256*ADRESH); return(valor); } Observação: Autoria Engenheiro Rodrigo Lacerda Taschetto.