Ir ao conteúdo
  • Cadastre-se

r0n4ld0l1n5

Membro Pleno
  • Posts

    52
  • Cadastrado em

  • Última visita

Reputação

8
  1. E aí, thiagoxmec... conseguiu resolver o seu problema?
  2. Cara eu acho q se você fizer com isso com interrupção vai obter melhor precisão... segue código... teste e veja se os tempos estão certos... void interrupt(void) { if(INTCON.TMR0IF) { PORTB.RB4 = ~PORTB.RB4; PORTB.RB3 = ~PORTB.RB3; INTCON.TMR0IF = 0; TMR0 = 99; } } void main() { TRISB = 0X00; //CONFIGURA PORTB COMO SAIDA //*******CONFIGURA PRESCALER PARA TMR0 COM 1:32 E INCREMENTO COM CLOCK INTERNO******************// OPTION_REG.PSA = 0; OPTION_REG.PS2 = 1; OPTION_REG.PS1 = 0; OPTION_REG.PS0 = 0; OPTION_REG.T0CS = 0; //*******************************FIM configuração TMR0*******************************************// // OPTION_REG &= 0b11110100; //prescaler 1:32 tmr0 TMR0 = 99; //CARREGA TMR0 COM 99 PARA QUE A INTERRUPCAO SEJA A CADA 5ms INTCON.TMR0IE = 1;//HABILITA INTERRUPCAO PARA TMR0 INTCON.PEIE = 1; //HABILITA INTERRUPÇÃO DE PERIFERICOS INTCON.GIE = 1; //HABILITA CHAVE GERAL DE INTERRUPCAO INTCON.TMR0IF = 0; //LIMPA FLAG DO TMR0 // CCP1CON = 0X00; PORTB.RB4 = 1; PORTB.RB3 = 0; while(1){ } }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...