GuilhermeArp Posted May 11, 2021 Posted May 11, 2021 //INICIO #include <xc.h> // CONFIG #pragma config FOSC = HS #pragma config WDTE = OFF #pragma config PWRTE = OFF #pragma config BOREN = OFF #pragma config LVP = OFF #pragma config CPD = OFF #pragma config WRT = OFF #pragma config CP = OFF #define _XTAL_FREQ 4000000 int display(int numero); int C1 = 0, C2 = 0; void __interrupt() tratamento_interrupcao(void) { static int contador = 0; static int led = 1, sel_display = 1; if (INTCONbits.TMR0IF == 1) { // Reset flag after overflow INTCONbits.TMR0IF = 0; TMR0 = 131; contador++; if (contador == 125) { contador = 0; led = !led; PORTDbits.RD0 = led; } //Atualização dos Displays sel_display = !sel_display; if (sel_display == 1) { PORTDbits.RD1 = 1; PORTDbits.RD2 = 0; PORTC = display(C2); } else { PORTDbits.RD1 = 0; PORTDbits.RD2 = 1; PORTC = display(C1); } } if (INTCONbits.INTF == 1) { INTCONbits.INTF = 0; C1++; if (C1 == 10) { C1 = 0; C2++; } if (C2 == 10) { C1 = 0; C2 = 0; } __delay_ms(50); } } void main(void) { //Inicialização e configuração TRISC = 0x00; //Saídas TRISD = 0X00; //Saídas TRISBbits.TRISB0 = 1; //Entrada TRISBbits.TRISB1 = 1; //Entrada // Configuração do Timer0 // Select timer mode OPTION_REGbits.T0CS = 0; OPTION_REGbits.PSA = 0; // Set Prescaler to 64 OPTION_REGbits.PS = 0b101; // Configura o valor inicial TMR0 = 131; // Habilita Timer0 interrupt INTCONbits.TMR0IE = 1; // Habilita External interrupt INTCONbits.INTF = 1; INTCONbits.INTF = 0; // Habilita global interrupt INTCONbits.GIE = 1; while(1){ } } int display(int numero) { switch (numero) { case 0: return 0x3F; break; case 1: return 0x06; break; case 2: return 0x5B; break; case 3: return 0x4F; break; case 4: return 0x66; break; case 5: return 0x6D; break; case 6: return 0x7D; break; case 7: return 0x07; break; case 8: return 0x7F; break; case 9: return 0x6F; break; defaut: return 0x00; break; } } Se alguém souber como ajudar a implementar o decrescimo, agradeço.
fredericopissarra Posted May 11, 2021 Posted May 11, 2021 Qual é exatamente o problema? Ainda, qual compilador? Para qual PIC (assumo que seja PIC)? Uma melhoria pequenininha no seu código, em anexo porque esse forum não mantém o formato de códigos fonte com fontes monoespaçadas! Note que, embora tenha extensões, alguns detalhes que não seguem a spec ISO 9899 eu mudei. cfp.c
GuilhermeArp Posted May 17, 2021 Author Posted May 17, 2021 Em 11/05/2021 em 10:37, fredericopissarra disse: Qual é exatamente o problema? Ainda, qual compilador? Para qual PIC (assumo que seja PIC)? Uma melhoria pequenininha no seu código, em anexo porque esse forum não mantém o formato de códigos fonte com fontes monoespaçadas! Note que, embora tenha extensões, alguns detalhes que não seguem a spec ISO 9899 eu mudei. É um contador de fluxo de pessoas. um sensor numa porta de entrada e outro sensor na porta de saída. compilador XC8 PIC16877A. Preciso colocar no código o sensor da porta da saída( TRISBbits.TRISB1) para fazer a contagem e diminuir o valor no display.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.