Simples Pisca com 12F629 , não funciona ..

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Simples Pisca com 12F629 , não funciona ..

Mensagempor geraldomelo » 02 Abr 2007 05:12

Pessoal , qq tem de errado com esse código hein ? num pisca de jeito nenhum ... o led fica aceso ..



#include <12F629.h>
#fuses INTRC,NOWDT,NOPROTECT, NOMCLR
#use fast _io (A)
#use delay(clock=4000000)
#include <regs_12F6xx.h>

main()
{
osccal=0x48;
trisio=0;
cmcon = 7 ;
gpio=0;


while (1)
{gpio=0;
delay_ms(500);
gpio=1;
}

}

Obrigado
Geraldo
geraldomelo
Byte
 
Mensagens: 267
Registrado em: 14 Out 2006 16:53
Localização: Ribeirão preto - SP

Mensagempor fabim » 02 Abr 2007 07:49

while (1)
{gpio=0;
delay_ms(500);
gpio=1;
}

mais qual GPIO :? .....

Use esta logica.

While true do
begin
SetBit(Gpio,0); // porta zero como pisca "GP0" em pascal.
delaymS(500);
clearBit(Gpio,0);
delaymS(500);
End;

Fabim
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor J.lius » 02 Abr 2007 11:07

#include <12F629.h>
Ou assim, no CCS

#use delay (clock=4000000)
#fuses INTRC_IO, NOWDT, PROTECT, NOBROWNOUT, MCLR, NOCPD, NOPUT

main ()
{
while (1)
{
output_high (PIN_A0);
delay_ms (500);
output_low (PIN_A0);
delay_ms (500);
}
}
Anderson MSN: j1lius(arroba)hotmail(ponto)com
"A humildade de quem sabe e a maior prova do saber" OBRIGADO.
J.lius
Nibble
 
Mensagens: 70
Registrado em: 12 Out 2006 17:58
Localização: Jaraguá do Sul - SC

Mensagempor Fábio Pereira » 02 Abr 2007 12:27

Geraldo,

Considerando que com GPIO=0 você estará apagando todas as saídas do chip e com GPIO=1 você estará setando o pino 0, ainda assim o seu programa contém um erro grave:

while (1)
{gpio=0;
delay_ms(500);
gpio=1;
}

Veja que após o comando GPIO=1 o programa retorna imediatamente para o início do while, fazendo novamente GPIO=0. Desta forma, o bit 0 permanecerá setado por apenas alguns ciclos de clock.

O correto seria fazer:

while (1)
{gpio=0;
delay_ms(500); // aguarda 500ms com as saídas apagadas
gpio=1;
delay_ms(500); // aguarda 500ms com a saída 0 ativada
}

Até +
Fábio Pereira
embeddedsystems.io
Avatar do usuário
Fábio Pereira
Word
 
Mensagens: 674
Registrado em: 16 Out 2006 09:07
Localização: Kitchener, ON

Mensagempor microeletronica » 02 Abr 2007 22:14

Exato,
;)

while (1)
{gpio=0;
delay_ms(500);
gpio=1;
delay_ms(500);
}
microeletronica
Byte
 
Mensagens: 158
Registrado em: 05 Dez 2006 18:22

Mensagempor geraldomelo » 02 Abr 2007 22:31

Ok pessoal , muito obrigado a todos , o problema era esse mesmo que o Fábio mensionou e o microeletronica . Agora tá tudo funcionando , mas tem uma coisa que ainda não , voltando ao novo programa abaixo :

#include <12F629.h>
#fuses INTRC,NOWDT,NOPROTECT, NOMCLR
#use fast _io (A)
#use delay(clock=4000000)
#include <regs_12F6xx.h>



main()
{
osccal=0x5B; // osccal .. valor que vem de fábrica , mas aqui
// no caso , eu fui atribuindo valores e medindo
// no frequencimetro para um valor melhor ..

trisio=0; // trisio zerado .. todos os gpios para saida
cmcon = 7 ; // todas as enradas como digitais
gpio=0; // iniciando o port gpio --> todo zerado


while (true) // enquando verdade , looping infinito
{
gpio=0; // clear byte gpio
gpio=0b00000001; // byte gpio.0 setado
gpio=0; // clear gpio
gpio=0b00000010; // gpio.1 setado
gpio=0; // clear
gpio=0b00000100; // gpio.2 setado
gpio=0; // clear
gpio=0b00010000; // gpio.4 setado
gpio=0; // clear
gpio=0b00100000; // gpio.5 setado

// obs: o gpio.3 é o master clear ,
// por isso não foi usado , pois é só entrada
}

}


, temos que todos os pinos funcionam com uma frequencia de 58,98 khz , com exceção do pino 3 que é só entrada , mas acontece uma coisa estranha no pinos 4 , ele me dá a saida de clock /4 , que tá em 1,002Mhz , ou seja , ele tá me dando o fosc/4 , que tá descrito no datasheet , que ele é também clkout , mas eu não configurei ele como clkout, e também não sei como "desconfiguro" isso , pois queria que ele se comportasse como os pinos restantes ...

abraços + 1 vez pessoal ..

Geraldo .
geraldomelo
Byte
 
Mensagens: 267
Registrado em: 14 Out 2006 16:53
Localização: Ribeirão preto - SP

Mensagempor microeletronica » 02 Abr 2007 22:38

no config, pagina 54 de
http://ww1.microchip.com/downloads/en/devicedoc/41190c.pdf

bit2-0

110 = RC oscillator: I/O function on GP4/OSC2/CLKOUT pin, RC on GP5/OSC1/CLKIN

Voce esta em 111, nos bits 0-2 como no power reset!!!!
Nao use INTRC em fuses, utilize o correspondente ao 110 :twisted:
microeletronica
Byte
 
Mensagens: 158
Registrado em: 05 Dez 2006 18:22

Mensagempor microeletronica » 02 Abr 2007 23:07

:evil: :evil:

#include <12F629.h>
#fuses INTRC_IO,NOWDT,NOPROTECT, NOMCLR

Tenta ai
microeletronica
Byte
 
Mensagens: 158
Registrado em: 05 Dez 2006 18:22

Mensagempor geraldomelo » 04 Abr 2007 21:28

Pessoal , muito obrigado novamente .. Tudo resolvido .. Microeletronica , bingo , foi oque vc falou mesmo .. só que na verdade eu estava em 101 no fosc2:fosc0 , e eu tinha que tá em 100 ...... Bom , ai , substituindo a sintaxe "INTRC" , pela que vc mandou "INTRC_IO" , ai deu tudo certo , e como vc mesmo disse , é o correspondente ao 100 , no caso : "100 = INTOSC oscillator : i/o function on gp4..... , i/o function on gp5 ..... " .

Exatamente como vc disse , mas agora é que vem ... heheheh onde vc viu que tem que ser essa sintaxe ???? "INTRC_IO" , pq eu não achei em lugar nenhum no sheet, e nem no Help do CCs ... Considerando que só tem essa forma de mexer no endereço 2007h que é além do espaço de memória , como bem diz a "nota" nessa mesma página em cima no canto direito , e diz também que o jeito para gravar nesse endereço , e só durante a programaçõa do chip ... ... então , onde tem essa informação ? mesmo porque , se amanhã eu quiser usar o 011 ? ...

e asim , o tópico também fica bem completo hehehhe ...

abraços novamente a todos ...

valeu microeletronica

Geraldo
geraldomelo
Byte
 
Mensagens: 267
Registrado em: 14 Out 2006 16:53
Localização: Ribeirão preto - SP

Mensagempor hemasc » 05 Abr 2007 09:04

ele viu no arquivo 12F629.h, abra ele e verá nos fuses

Fuses:LP,XT,HS,EC_IO,NOWDT,WDT,CPD,NOCPD,PROTECT,NOPROTECT,NOMCLR

Fuses:MCLR,PUT,NOPUT,INTRC_IO,INTRC,RC_IO,RC,BROWNOUT,NOBROWNOUT
hemasc
Nibble
 
Mensagens: 80
Registrado em: 26 Fev 2007 08:59
Localização: Campinas - SP


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x