Ir ao conteúdo
  • Cadastre-se

Gabriel El

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Tudo que Gabriel El postou

  1. pode me ajudar? preciso fazer acender o led quando estiver com 90% da tensão de referência que no caso seria 2,5V // --- Mapeamento de Hardware --- #define led_g RB0_bit //Conecta o LED Verde à porta RB0 #define led_y RB1_bit //Conecta o LED Amarelo à porta RB1 #define led_r RB2_bit //Conecta o LED Vermelho à porta RB2 // --- Rotina de Interrupção --- void interrupt() { if(CMIF_bit) //Houve mudança na saída de um dos comparadores? { //Sim... CMIF_bit = 0x00; //Limpa a flag if(C1OUT_bit) //Tensão acima de 2,5V? { led_g = 0x01; led_r = 0x00; led_y = 0x00; //Inverte o estado dos LED's } else if (!C1OUT_bit) { led_g = 0x00; led_r = 0x01; led_y = 0x00; } } //end CMIF } //end interrupt // --- Função Principal --- void main() { CMCON = 0x02; //Configura comparadores com tensão de referência interna VRCON = 0xAC; //Tensão de referência interna igual a 2,5V OPTION_REG = 0x80; //Desabilita pull-ups , prescaler 1:2 associado ao Timer0 GIE_bit = 0x01; //Habilita interrupção global PEIE_bit = 0x01; //Habilita interrupção por periféricos CMIE_bit = 0x01; //Habilita interrupção dos comparadores TRISA.RB0 = 0xFF; //Todo PORTA será entrada TRISB.RB0 = 0x00; //Configura RB0 como saída TRISB.RB1 = 0x00; //Configura RB1 como saída TRISB.RB2 = 0x00; //Configura RB2 como saída led_g = 0x00; //Saída inicia desligada led_y = 0x00; //Saída inicia desligada led_r = 0x00; //Saída inicia desligada while(1) //Loop infinito { //Aguarda interrupção... } } //end main
  2. Podem me ajudar? preciso fazer acender o led quando estiver com 90% da tensão de referência que no caso seria 2,5V // --- Mapeamento de Hardware --- #define led_g RB0_bit //Conecta o LED Verde à porta RB0 #define led_y RB1_bit //Conecta o LED Amarelo à porta RB1 #define led_r RB2_bit //Conecta o LED Vermelho à porta RB2 // --- Rotina de Interrupção --- void interrupt() { if(CMIF_bit) //Houve mudança na saída de um dos comparadores? { //Sim... CMIF_bit = 0x00; //Limpa a flag if(C1OUT_bit) //Tensão acima de 2,5V? { led_g = 0x01; led_r = 0x00; led_y = 0x00; //Inverte o estado dos LED's } else if (!C1OUT_bit) { led_g = 0x00; led_r = 0x01; led_y = 0x00; } } //end CMIF } //end interrupt // --- Função Principal --- void main() { CMCON = 0x02; //Configura comparadores com tensão de referência interna VRCON = 0xAC; //Tensão de referência interna igual a 2,5V OPTION_REG = 0x80; //Desabilita pull-ups , prescaler 1:2 associado ao Timer0 GIE_bit = 0x01; //Habilita interrupção global PEIE_bit = 0x01; //Habilita interrupção por periféricos CMIE_bit = 0x01; //Habilita interrupção dos comparadores TRISA.RB0 = 0xFF; //Todo PORTA será entrada TRISB.RB0 = 0x00; //Configura RB0 como saída TRISB.RB1 = 0x00; //Configura RB1 como saída TRISB.RB2 = 0x00; //Configura RB2 como saída led_g = 0x00; //Saída inicia desligada led_y = 0x00; //Saída inicia desligada led_r = 0x00; //Saída inicia desligada while(1) //Loop infinito { //Aguarda interrupção... } } //end main

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!