Ir ao conteúdo

Posts recomendados

Postado

Ola Pessoal!

Preciso de uma ajudinha para o meu programa que está usando um pic16f877a. preciso guardar e imprimir o tempo em segundo para depois usa-lo para calcular a energia

Acontece que eu pretendo mostrar num lcd o valor da energia que é Potencia*tempo. ja conseguí o valor da potencia mais o tempo é que está sendo o problema pensei então em usar o tmr0 deste pic para contar o segundo a cada estoiro do tmr mais na hora de imprimir no LCD este tempo (variavel segundo) nao aparece. o que aparece é o valor inicializado na variavel segundo. és parte do código a baixo.

to_send.txt

Postado

Olá,

Para tempos em segundos, melhor usar o timer1 que é de 16 bits. 

O programa abaixo alterna o estado da saída PIN_D0 a cada 1s por interrupção do timer1.

Com cristal de 4MHz e prescaler /8, o estouro do tmr1 ocorre a cada 500ms.

Você pode usar uma variável para armazenar os estouros e criar tempos maiores.

 

Só me desculpe ter feito no CCS...é o que tenho aqui para C, MikroC usei há muito tempo.

Mas acredito que a ideia é essa.

Segue código:

#include <16F877A.h>

#FUSES XT
#FUSES NOWDT                    //No Watch Dog Timer
#FUSES PUT                      //Power Up Timer
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O

#use delay(crystal=4000000)

//Variáveis Globais
int1 t; //inverter o estado da saída
int i; //conta overflow tmr1

#INT_TIMER1
void  TIMER1_isr(void){
   //overflow a cada 500ms para cristal @4MHz
   set_timer1(3036 + get_timer1());
   i++;
   
   if(i == 2){
      i = 0;
      t = ~t;
      output_bit(PIN_D0, t); 
   }

}

void main()
{
   setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);//524 ms overflow
   enable_interrupts(INT_TIMER1);
   enable_interrupts(GLOBAL);
   set_timer1(3036);// acerta tmr1 para estourar com 500ms

   while(TRUE){
      //TODO: User Code
   }

}

 

Att,

  • Curtir 1
Postado
Em 4/18/2017 às 04:38, Fervolt disse:

Valeu amigão!

foi uma ajuda e tanto, vou fazer a aplicação no xc8 que é o compilador que estou usando...

 

 

 

Visitante
Este tópico está impedido de receber novas respostas.

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!