-
Posts
36 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por RaquelSF
-
-
17 horas atrás, Thiago Felipe Soares Gonçalves disse:
TMR1L = 0x0B;
TMR1H = 0xDC;Amigo, estes valores estão trocados. Inverta-os e veja se funciona!
-
Olá amigo!
Já aconteceu comigo de leds só funcionarem quando tocava com os dedos em determinadas partes do circuito e resolvi distribuindo mais fios de Terra e Vcc pelo protoboard. Existem muitos problemas de mau contato em protoboards. Quanto ao programa veja se assim resolve:
#include <16f628a.h>
#fuses HS, etc...
#use delay(clock=20000000)
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
programação de PIC 16F628A
em Microcontroladores
Postado
Caro colega,
Primeiramente faltou você colocar algumas informações, tipo: valor do cristal, temporização desejada, etc., mas, já posso adiantar que você cometeu alguns erros no seu código. Tentei dar uma arrumada. Veja se dá certo e poste mais informações sobre o que quer fazer.
//declaração de variáveis
unsigned int timerStart = 1; //flag de inicio de tempo
unsigned int count = 0; //flag de contagem
//protótipo de função
void configura_timer();
//interrupção
void interrupt ()
{
if(T0IF_bit) // flag de estouro de 256 contagens
{
count++; //variavel de controle de contagem
if (count == 500) // quando a contagem chegar em 500
{
T0IF_bit = 0; //terminando a contagem, limpa flag de estouro
count = 0; // inicia contador em 0 para nova contagem
RA0_bit = ~RA0_bit; // inverte estado do pino
}
}
}
void main() {
TRISA = 0x00; // configura o pot A como output
PORTA = 0x00; // inicia todos os pinos em low
configura_timer();
while (1) {}
}
//função
void configura_timer()
{
OPTION_REG = 0x87; // conigura prescaler:1/256
INTCON.GIE = 0x01; // habilita interrupções globais
INTCON.PEIE = 0x01; // habilita interrupções de periféricos
INTCON.T0IE = 0x01; // habilita interrupção por timer
}