Página 1 de 1

AD e CCP1 TESTE

MensagemEnviado: 07 Fev 2010 07:48
por antonio
Pessoal tudo bem!!

Estou fazendo uns testes com o AD do PIc 16F877A e o CCP1:
Eh assim, mudificando a posição do POT em A0 deveria variar o brilho no LED , e isso nao acontece, fazendo o teste no proteus o LED acende normal não variando seu brilho!

O que estou fazendo errado no codigo abaixo???
Desde jà agradeço
Código: Selecionar todos
#include <16F877A.h>
#device adc=8
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay(clock=4000000)

void main()
{
int8 value;
   
setup_ccp1(CCP_PWM);

setup_timer_2(T2_DIV_BY_4, 127, 1);

setup_port_a(ALL_ANALOG);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0);
 
while(1)
  {
   value = read_adc();
   
   set_pwm1_duty(value);
  }

}


Imagem

MensagemEnviado: 07 Fev 2010 09:30
por fabim
antonio.
Os leds no proteus são apenas indicativos luminosos de nivel.
Eles não foram projetados para variar o brilho. No máximo se me lembro bem ele fica quando aceso em 2 niveis, nesse azul é fraquinho e depois nessa tonalidade aí.

Pra você testar direitinho se esta funcionando.
Ligue a saida do CCP no osciloscopio virtual...

MensagemEnviado: 07 Fev 2010 10:20
por antonio
Grato pelo apoio Fabim!

Tentei fazendo como vc falou mas não mostrou nada,?

Olha aqui!

Imagem

MensagemEnviado: 07 Fev 2010 12:22
por proex
Ehehehhe esse é o legitimo Proteus que eu conheço e parei de usar.

Conseguia simular 4 processadores rodando simultâneamente, se comunicando via Serial e SPI , com direito a display e teclas.

Mas não consegui simular um simples led piscando, ligado num pino do PIC.

Esse software é sinistro. !!!

.

MensagemEnviado: 07 Fev 2010 12:55
por ddspereira
esse codigo funciona perfeitamente com o PIC18F452
Código: Selecionar todos
void main() {

unsigned long value;
 trisc = 0;
adcon0=0b10000010; //define pinos RA0 a RA5 como entrada
trisa=0xff;
for(;;){
value=adc_read(0);
delay_ms(40);
value=value/4;

Pwm1_init(5000); //Inicializa módulo 0 - PWM, canal CCP1, com 2Khz
Pwm1_set_duty(value); //Inicializa duty com 0
Pwm1_start(); //inicializa PWM

}
}

Imagem

MensagemEnviado: 07 Fev 2010 13:25
por jorgeluiz
sempre tem que ter alguma carga na saida, senao o Proteus nao consegue determinar o formato de onda. So' o osciloscopio ligado, nao ha carga.

MensagemEnviado: 07 Fev 2010 14:39
por antonio
Com o 16f877A não roda não ?

Agora com um delay mostra alguma coisa ,mais depois volta a não mostrar nada !
Dah uma olhada !
Código: Selecionar todos
while(1)
  {
   value = read_adc();
    delay_ms(50);
   set_pwm1_duty(value);
  }

}

Imagem

MensagemEnviado: 07 Fev 2010 15:00
por ddspereira
Antonio vc usa o compilador CCS?
aquele codigo que postei é para MIKROC PRO

MensagemEnviado: 07 Fev 2010 15:09
por antonio
ddspereira escreveu:Antonio vc usa o compilador CCS?
aquele codigo que postei é para MIKROC PRO


Sim,sim eu estou usando o CCS!