GuilhermeArp Posted May 11, 2021 at 01:31 AM Share Posted May 11, 2021 at 01:31 AM //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. Quote Link to comment Share on other sites More sharing options...
fredericopissarra Posted May 11, 2021 at 01:37 PM Share Posted May 11, 2021 at 01:37 PM 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 Quote Link to comment Share on other sites More sharing options...
GuilhermeArp Posted May 17, 2021 at 02:11 AM Author Share Posted May 17, 2021 at 02:11 AM 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. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.