Eletrônica Silveira
Olá, Seja Bem-Vindo ao Fórum Eletrônica Silveira!!!!
Para você poder ver os mais variados Projetos do nosso Fórum, você precisa fazer o cadastro!

Depois de se Cadastrar, não se esqueça de ler as regras do fórum!

http://eletronicasilveira.forumeiros.com/t3-regras-do-forum#3


Administrador do Fórum,
Rafael Silveira
HOMENAGEM

Na vida tudo passa tudo acontece mas alguém igual a você a gente jamais esquece




★ 22 de novembro de 1991

† 12 de março de 2016

Nosso eterno amigo, administrador e fundador deste fórum
Quem está conectado
26 usuários online :: 6 usuários cadastrados, Nenhum Invisível e 20 Visitantes :: 2 Motores de busca

borao, D.F., djdanieldorneles, jolf, naldo santos, rlcardo

[ Ver toda a lista ]


O recorde de usuários online foi de 264 em Seg 18 Mar 2013 - 11:54
Eletrônica Perez
CM Eletrônica
Top dos mais postadores
Rafael Silveira (7816)
 
Caca Silva (5949)
 
renatoscp (3839)
 
CMeletronica (3151)
 
michel chagas (2791)
 
Railson (2118)
 
alexsandro rodrigues de a (1778)
 
naldo santos (1599)
 
ablacon64 (1222)
 
gilvantexas (1061)
 

Medidor de Velocidade

Publicidade

ajuda pic16f676

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

ajuda pic16f676

Mensagem por Valdisergio em Ter 19 Fev 2013 - 20:22

bam dia, sou novo aqui no forum estou comecando agora com microcontroladores pic ja fiz alguns projetos com o 18f1320
para automatizar um gerador ficou muito bom , estou com um probleminha com o pic16f676 pois nao estou conseguindo fazer funcionar com o oscilador interno, utilizo o mickroc se alguem puder me ajudar fico grato.
avatar
Valdisergio
Nível 1
Nível 1

Mensagens : 4
Data de inscrição : 19/02/2013
Idade : 41
Localização : sorocaba

Voltar ao Topo Ir em baixo

Re: ajuda pic16f676

Mensagem por naldo santos em Qua 20 Fev 2013 - 10:12

Valdisergio escreveu:bam dia, sou novo aqui no forum estou comecando agora com microcontroladores pic ja fiz alguns projetos com o 18f1320
para automatizar um gerador ficou muito bom , estou com um probleminha com o pic16f676 pois nao estou conseguindo fazer funcionar com o oscilador interno, utilizo o mickroc se alguem puder me ajudar fico grato.

Caro amigo!
a primeira pergunta é: o programa que você criou funciona com o clock externo?
se não testou teste então e me diga..se já fez este teste e funcionou então posta o codigo fonte e os fuses para ver o que esta acontecendo ai!! Positivo

Naldo Santos



avatar
naldo santos
MODERADOR
MODERADOR

Mensagens : 1599
Data de inscrição : 30/08/2012
Idade : 44
Localização : salvador-ba

Voltar ao Topo Ir em baixo

Re: ajuda pic16f676

Mensagem por Valdisergio em Qua 20 Fev 2013 - 21:20

amigo obrigado pela atencao, fiz o circuito no simulador proteus e o engracado e que funciona mas na motagem real no protoboard a grande decepcao o mesmo nao funciona.
aqui esta o codigo fonte:


/**********************************************************************************************************************
* antes da funcao principal e carregado e definidas as bibliotecas que serao utilizadas *
* durante o funcionamento do microcontrolador e do algoritimo do programa. *
* nao estao escritas aqui pois foram definidas na configuracao dos fusiveis no copilhador. foi utilizado o mikroc pro *
*********************************************************************************************************************/

void main()
{
int a = 0; // aqui colocamos as variaveis que serao utilizadas durante o programa
ansel = 0x00; // portas como i/o e analogicas e digitais
adcon1 = 0b00001000; // configurando as portas como digitais e analogicas
osccal = 0b111111; // configurando o oscilador interno com o maximo de clocks
trisa = 0b00001000; // aqui e definido as portas de entradas e saidas do port_a
trisc = 0x00; // aqui e definido o port_c como saidas digitais
porta = 0x00; // definicao do port_a como 0 inicial
portc = 0x00; // aqui define o port_c como inicio de 0
//delay_ms(2);
// portc = 32;
// delay_ms(2);
portc = 32; // aqui aciona o led verde de pronto.

while (1) // Apatir daqui inicia o nosso programa nesta funcao while(1) temos um laco eterno.
{
inicio:
if (porta.ra3 == 0) // esta funcao comeca quando apertamos o botao de acionamento
{
porta.ra2 = 1; // aqui mantem o led amarelo monitor aceso continuo
delay_ms(30);
porta.ra1 = 1; // aqui o rele contator e acionado
delay_ms(30);
portc = 31;
delay_ms(5000);
portc = 30;
delay_ms(5000);
portc = 28;
delay_ms(5000);
portc = 24;
delay_ms(5000);
portc = 16;
delay_ms(2000);
for(a=30; a>=0; a--) // aqui comeca a contar o tempo de termino do tempo
{
portc.rc4 = ~portc.rc4; // aqui e invertido a condicao do led_1 pisca pisca.
delay_ms(500);
porta.ra5 = ~porta.ra5;
}
porta.ra5 = 0;
delay_ms(100);
portc = 0x00;
delay_ms(3);
porta.ra1 = 0; // aqui o rele contator e desligado
for(a = 10; a >=0 ; a --) // tempo de espera para o proximo acionamento
{
delay_ms(1000);
}
portc = 32;
delay_ms(1);
goto inicio;
}
a = a+1;
delay_ms(100);
if (a == 4) // led amarelo monitor:
{ // piscando = sistema em aguardado pressionar o botao
a=0; // aceso continuo = sistema em contagem
delay_ms(30);
porta.ra2 = ~porta.ra2;
delay_ms(30);
}


} // fim da funcao while(1)
} // fim do programa


gente ate agora estou quebrando a cabeca porque nao funciona com o oscilador interno.
Agradeco desde ja o auxilio aqui dos colegas.
avatar
Valdisergio
Nível 1
Nível 1

Mensagens : 4
Data de inscrição : 19/02/2013
Idade : 41
Localização : sorocaba

Voltar ao Topo Ir em baixo

Re: ajuda pic16f676

Mensagem por naldo santos em Qui 21 Fev 2013 - 11:06

Valdisergio escreveu:amigo obrigado pela atencao, fiz o circuito no simulador proteus e o engracado e que funciona mas na motagem real no protoboard a grande decepcao o mesmo nao funciona.
aqui esta o codigo fonte:


/**********************************************************************************************************************
* antes da funcao principal e carregado e definidas as bibliotecas que serao utilizadas *
* durante o funcionamento do microcontrolador e do algoritimo do programa. *
* nao estao escritas aqui pois foram definidas na configuracao dos fusiveis no copilhador. foi utilizado o mikroc pro *
*********************************************************************************************************************/

void main()
{
int a = 0; // aqui colocamos as variaveis que serao utilizadas durante o programa
ansel = 0x00; // portas como i/o e analogicas e digitais
adcon1 = 0b00001000; // configurando as portas como digitais e analogicas
osccal = 0b111111; // configurando o oscilador interno com o maximo de clocks
trisa = 0b00001000; // aqui e definido as portas de entradas e saidas do port_a
trisc = 0x00; // aqui e definido o port_c como saidas digitais
porta = 0x00; // definicao do port_a como 0 inicial
portc = 0x00; // aqui define o port_c como inicio de 0
//delay_ms(2);
// portc = 32;
// delay_ms(2);
portc = 32; // aqui aciona o led verde de pronto.

while (1) // Apatir daqui inicia o nosso programa nesta funcao while(1) temos um laco eterno.
{
inicio:
if (porta.ra3 == 0) // esta funcao comeca quando apertamos o botao de acionamento
{
porta.ra2 = 1; // aqui mantem o led amarelo monitor aceso continuo
delay_ms(30);
porta.ra1 = 1; // aqui o rele contator e acionado
delay_ms(30);
portc = 31;
delay_ms(5000);
portc = 30;
delay_ms(5000);
portc = 28;
delay_ms(5000);
portc = 24;
delay_ms(5000);
portc = 16;
delay_ms(2000);
for(a=30; a>=0; a--) // aqui comeca a contar o tempo de termino do tempo
{
portc.rc4 = ~portc.rc4; // aqui e invertido a condicao do led_1 pisca pisca.
delay_ms(500);
porta.ra5 = ~porta.ra5;
}
porta.ra5 = 0;
delay_ms(100);
portc = 0x00;
delay_ms(3);
porta.ra1 = 0; // aqui o rele contator e desligado
for(a = 10; a >=0 ; a --) // tempo de espera para o proximo acionamento
{
delay_ms(1000);
}
portc = 32;
delay_ms(1);
goto inicio;
}
a = a+1;
delay_ms(100);
if (a == 4) // led amarelo monitor:
{ // piscando = sistema em aguardado pressionar o botao
a=0; // aceso continuo = sistema em contagem
delay_ms(30);
porta.ra2 = ~porta.ra2;
delay_ms(30);
}


} // fim da funcao while(1)
} // fim do programa


gente ate agora estou quebrando a cabeca porque nao funciona com o oscilador interno.
Agradeco desde ja o auxilio aqui dos colegas.

Caro amigo esta linha aqui: osccal = 0b111111; // configurando o oscilador interno com o maximo de clocks
não tenho certeza mas acho que ela não pode ser usada quando esta utilizando o oscilador interno neste pic ,seria bom se pudesse colocar os fuses para dar uma olhada pois o programa esta aparentemente correto qual o programa que esta usando para gravar o pic? pois pode ser na hora de definir os fuses no programa do gravador tipo definições de clock :

• LP Low Power Crystal
• XT Crystal/Resonator
• HS High Speed Crystal/Resonator
• RC External Resistor/Capacitor (2 modes)
INTOSC Internal Oscillator (2 modes) esta seria sua opção
• EC External Clock In
Mas tem 02 modos um com saida de clock e outro sem, o seu caso seria (no clockout)
e outra coisinha qual o clock que esta usando??
pois para utilizar o clock interno só é possivel até 4mhz acima disso tem que usar o clock externo com cristal oscilador! Positivo
avatar
naldo santos
MODERADOR
MODERADOR

Mensagens : 1599
Data de inscrição : 30/08/2012
Idade : 44
Localização : salvador-ba

Voltar ao Topo Ir em baixo

Re: ajuda pic16f676

Mensagem por Valdisergio em Qui 21 Fev 2013 - 21:25

vou verificar os fusiveis e fazer testes, acho que vou verificar tambem se adcionei o adc.
apos os teste posto aqui.
ah o meu gravador de pic e o o pic burner adquiri no mercadolivre.
avatar
Valdisergio
Nível 1
Nível 1

Mensagens : 4
Data de inscrição : 19/02/2013
Idade : 41
Localização : sorocaba

Voltar ao Topo Ir em baixo

Re: ajuda pic16f676

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum