Bem , eu sei que aqui em sua maioria é focada mais no arduino , mas sei que podemos discutir sobre microcontroladores , eu estou com uma dúvida . Quero relacionar uma entrada analógica à um delay no programa em C utilizando o compilador CCS , Quero alguma sugestão , se for possível.

Exibições: 547

Responder esta

Respostas a este tópico

Colega, nao entendi completamente sua pergunta, explique melhor. adiantando : uma entrada analogica deve adicionar um delay entre suas leituras.!

Quero associar o delay a uma variável . Variável essa que depende da leitura analógica.

Posta oque você já tem feito, ai podemos ajudar..

Aqui pessoal o meu código , baseia em um controle de velocidade para motor de passo unipolar através de um potenciômetro , estou montando um braço mecânico e preciso regular a velocidade da área da base do braço , esse é só um dos programas que virão , somente para voçês me ajudarem  , o PIC é o 16F877A com cristal de 20 Mhz. Peço a ajuda para relacionar a analógica com o delay que é o tempo de variação dos pulsos do motor de passo .


int time ;
int aux ;

void main()
{

   setup_adc_ports(AN0);
   setup_adc(ADC_CLOCK_DIV_2);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);

  

while(true){            // rotina

set_adc_channel (0);
aux = read_adc();
time =  (aux*  0.0048875855327468) + 10 ;

output_b (0b0000001);
delay_ms(time);
output_b (0b0000010);
delay_ms(time);
output_b (0b0000100);
delay_ms(time);
output_b (0b0001000);
delay_ms(time);

}
}

troque 

time =  (aux*  0.0048875855327468) + 10 ;

por 

time = (float) aux*  0.0049;

time += 10 ;

o delay_ms irá variar?

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço