Muchachos buenas noches, necesitaria si me puede ayudar con el siguiente problema:
quiere enviar la señal de un potenciometro por medio de una entrada el 18f4550.
este es el programa cometi el error de compilarlo grabarlo y dejar que tenga un tiempo de adquisicion de 2000 ms o sea 2 seg lo cual es muy alto . cuando quise bajar el tiempo me empezo a dar carateres extraños y no como estaba funcionaba antes .
Este es el codigo:
#include <18f4550.h>
#device adc=10
#FUSES INTHS,MCLR,PUT,BROWNOUT
#use delay(INTERNAL=8MHZ)
#use rs232 (BAUD=9600 , XMIT=PIN_C6 , RCV=PIN_C7)
float volt;
float voltaje (float volt)
{
long int q;
set_adc_channel(0);
delay_us(20);
q=read_adc();
volt=((4.98*q)/1023.0);
return volt;
}
void main()
{
setup_adc_ports(AN0|VSS_VDD);
setup_adc(ADC_CLOCK_INTERNAL);
while(true)
{
volt=voltaje(volt);
printf("%1.2fV \r\n",volt);
delay_ms(2000);
}
}
si lo compilo y lo pruebo en el proteus funciona bien peroooooooo este aqui el problema .
El hex que genere al principio funciona de diez tanto en proteus como en el hardware, pero toma muetras cada 2 seg, y el codigo que esta arriba si genero un nuevo hex, en proteus funciona bien pero en la prueba de hyperterminal aparece esto:
con el primer hex:
V
4.98V
4.98V
4.98V
4.97V
4.97V
con sel segundo:
€€€€ø€€€€€€€ø€€€ø€€€€ø€€€€ø€€€€ø€€ø€€ø€€€€€€€ø€€€€€€€ø€€€€€€€ø€€€€€€€ø
€€€ø€€€€ø€€€€€€€ø€€€ø€€€€ø€€€€€€€ø€€€€€€€ø€€ø€€€øø€€€€ø€€€€ø€€€€ø€€€€€€€ø€€€€ø€€
€€ø€€€€€€€ø€€€€ø€€€€ø€€€€€€€ø€€€€€€€ø€€€ø€€€€ø€€€€€€€ø€€€€ø€€€€ø€€€ø€€€€ø€€€ø€€€
€ø€€€€€€€ø€€€€ø€€€€ø€€€€€€€ø€€€€€€€ø€€€€ø€€€€ø€€ø€€€€ø€€€€ø€€€€€€€ø€€€€€€€ø€€€€€
€€ø€€€€€€€ø€€€€€€€ø€€€€ø€€€€ø€€€€€€€ø€€€€€€€ø€€ø€€€€ø€€€€ø€€€€ø€€€€ø€€€€€€€ø€€€€
€€€ø€€€ø€€€€ø€€€€€€€ø€€€€€€€ø€€€€€€€ø€€€€€ø€€€øø€€ø€€€ø€€€€€ø€€€ø€€€€ø€€€€€€€ø€€
€€€€€ø€€€€€€€ø€€€ø€€€€ø€€€€€€€ø€€€€€€€ø€€€€€€€ø€€€€€€€ø€€€ø€€€€ø€€€€€€€ø€€€€€€€ø
€€€€ø€€€€ø€€€€€€€ø€€€ø€€€€ø€€€øø€€€€ø€€€€€
alguien me podria ayudar con esto .
les adjunto : el hex que anda bien y el proteus.
Saludos.
quiere enviar la señal de un potenciometro por medio de una entrada el 18f4550.
este es el programa cometi el error de compilarlo grabarlo y dejar que tenga un tiempo de adquisicion de 2000 ms o sea 2 seg lo cual es muy alto . cuando quise bajar el tiempo me empezo a dar carateres extraños y no como estaba funcionaba antes .
Este es el codigo:
#include <18f4550.h>
#device adc=10
#FUSES INTHS,MCLR,PUT,BROWNOUT
#use delay(INTERNAL=8MHZ)
#use rs232 (BAUD=9600 , XMIT=PIN_C6 , RCV=PIN_C7)
float volt;
float voltaje (float volt)
{
long int q;
set_adc_channel(0);
delay_us(20);
q=read_adc();
volt=((4.98*q)/1023.0);
return volt;
}
void main()
{
setup_adc_ports(AN0|VSS_VDD);
setup_adc(ADC_CLOCK_INTERNAL);
while(true)
{
volt=voltaje(volt);
printf("%1.2fV \r\n",volt);
delay_ms(2000);
}
}
si lo compilo y lo pruebo en el proteus funciona bien peroooooooo este aqui el problema .
El hex que genere al principio funciona de diez tanto en proteus como en el hardware, pero toma muetras cada 2 seg, y el codigo que esta arriba si genero un nuevo hex, en proteus funciona bien pero en la prueba de hyperterminal aparece esto:
con el primer hex:
V
4.98V
4.98V
4.98V
4.97V
4.97V
con sel segundo:
€€€€ø€€€€€€€ø€€€ø€€€€ø€€€€ø€€€€ø€€ø€€ø€€€€€€€ø€€€€€€€ø€€€€€€€ø€€€€€€€ø
€€€ø€€€€ø€€€€€€€ø€€€ø€€€€ø€€€€€€€ø€€€€€€€ø€€ø€€€øø€€€€ø€€€€ø€€€€ø€€€€€€€ø€€€€ø€€
€€ø€€€€€€€ø€€€€ø€€€€ø€€€€€€€ø€€€€€€€ø€€€ø€€€€ø€€€€€€€ø€€€€ø€€€€ø€€€ø€€€€ø€€€ø€€€
€ø€€€€€€€ø€€€€ø€€€€ø€€€€€€€ø€€€€€€€ø€€€€ø€€€€ø€€ø€€€€ø€€€€ø€€€€€€€ø€€€€€€€ø€€€€€
€€ø€€€€€€€ø€€€€€€€ø€€€€ø€€€€ø€€€€€€€ø€€€€€€€ø€€ø€€€€ø€€€€ø€€€€ø€€€€ø€€€€€€€ø€€€€
€€€ø€€€ø€€€€ø€€€€€€€ø€€€€€€€ø€€€€€€€ø€€€€€ø€€€øø€€ø€€€ø€€€€€ø€€€ø€€€€ø€€€€€€€ø€€
€€€€€ø€€€€€€€ø€€€ø€€€€ø€€€€€€€ø€€€€€€€ø€€€€€€€ø€€€€€€€ø€€€ø€€€€ø€€€€€€€ø€€€€€€€ø
€€€€ø€€€€ø€€€€€€€ø€€€ø€€€€ø€€€øø€€€€ø€€€€€
alguien me podria ayudar con esto .
les adjunto : el hex que anda bien y el proteus.
Saludos.