Página 1 de 1
Existe alguma coisa errada?

Enviado:
10 Mai 2007 21:15
por Bardelli
Olá All. Estou tentando usar o PIC12F509 configurado para OSCILADOR INTERNO. POrém o código abaixo não funciona apesar de compilar (simplesmente nada acontece). Alguém pode ver se eu cometi algum erro?. Abraços
#include <12F509.h>
#fuses INTRC,NOWDT,NOMCLR
#use delay (clock=4000000)
main(){
int i;
i=0;
while(i==0){
output_high(pin_b1);
delay_ms(1);
output_low(pin_b1);
delay_ms(1);
}
}

Enviado:
10 Mai 2007 21:30
por Flaviofrc
Eu faço um pouco diferente de vc , não sei se este é o erro mas......
#include <12F509.h>
#fuses INTRC,NOWDT,NOMCLR
#use delay (clock=4000000)
main(){
while(true){
output_high(pin_b1);
delay_ms(1);
output_low(pin_b1);
delay_ms(1);
}
}

Enviado:
10 Mai 2007 22:23
por Ledistor
O que está ligado no pino? Um LED? Se for aumente o delay, com 1ms você não vai ver nada.

Enviado:
11 Mai 2007 00:12
por Bardelli
Esta ligado um Osciloscopio!!!! :-)
Abraços

Enviado:
11 Mai 2007 07:23
por hemasc
olhe no 12F509.h se o oscilador interno está setado corretamente e não sei se é obrigatório mas não custa tentar setar o tris_b.
#include <12F509.h>
#fuses INTRC,NOWDT,NOMCLR
#use delay (clock=4000000)
main(){
set_tris_b(0x0);
int i;
i=0;
while(i==0){
output_high(pin_b1);
delay_ms(1);
output_low(pin_b1);
delay_ms(1);
}

Enviado:
11 Mai 2007 08:53
por painho
#include <12F509.h>
#FUSES NOWDT //No Watch Dog Timer
#FUSES INTRC //Internal RC Osc
#FUSES NOPROTECT //Code not protected from reading
#FUSES MCLR //Master Clear pin enabled
#use delay(clock=4000000)
void main()
{
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
while(true){
output_high(pin_b1);
delay_ms(500);
output_low(pin_b1);
delay_ms(500);
}
}

Enviado:
11 Mai 2007 09:35
por andre_luis
só como teste, pode colocar a diretiva :
#use_standard_io

Enviado:
11 Mai 2007 10:26
por painho
acho que "#use_standard_io" nao altera muita coisa no CCS ele configura automaticamente isso e mas uma repetição de comando,
so em alguns caso vale usar “#use fast_io(X)” sendo X a porta q vc quer melhorar a velocidade da porta

Enviado:
11 Mai 2007 10:56
por andre_luis
poisé...mas na verdade, como mencionei, isso seria apenas em carater de teste, pois certificaria que o Bardelli nao estivesse cometendo algum erro na configuracao do TRIS, já que essa diretiva automatiza essa definição em tempo de execução.
+++

Enviado:
11 Mai 2007 14:18
por zielpunkt
Amigo,
Esse osciloscópio que fala é real ou seria o do Proteus? Pq se estiver simulando no Proteus, tem que jogar algum valor no endereço onde ele busca o valor pro osccal (tipo '#rom 0x3ff = { 0xNNNN }', senão não funciona. Qquer forma, o código com variavel "i" e "while i==0" estão ali de enfeite, bastava "while(true)", mas isso também não afeta em nada. Fora isso, não parece ter nada errado com o seu código.
Abço.

Enviado:
12 Mai 2007 13:33
por Bardelli
Olá.
O osciloscópio é real.
Eu tentei todos os códigos que vcs passaram e não funcionou. Eu acredito que realmente seja algum Bug do CCS em relação a configuração do Oscilador Interno desse Componente. Eu tenho certeza que o problema não é com a placa, pois já utilizo o pic faz alguns anos. Vou tentar escrever um código com outro compilador e ver oque vai dar...
abraços

Enviado:
14 Mai 2007 13:57
por Bardelli
Olá All
Dito e feito. O problema éra realmente um bug do compilador
Compilador com Bug: CCS PICC V3.242
Compilador ok: CCS PICC V.4.013
Obs: O mesmo código foi usado para as duas versões.., porém o pic só funcionou para a Vers]ao 4.013
abraços e obrigado a todos pelas opiniões.