Bueno, ante todo un saludo. Mi duda es si hay alguna forma de eliminar el ruido producido en un TTL.
Tengo el GPS MT3339 y el detalle es que traté de conectarlo al RX del PIC18F2550 pero en un principio no pasaba nada, luego me di cuenta de que el GPS trabajaba como máximo con 2.8, por lo que tuve que tratar de amplificar el voltaje, para lo cual utilicé el 74HC08N y bueno, me funcionó pero a medias.
Esto es lo que en sí, debería obtener:
Ahora cuando lo proceso con el PIC, usando el 74HC08N:
El código está hecho en C de CCS
Tengo el GPS MT3339 y el detalle es que traté de conectarlo al RX del PIC18F2550 pero en un principio no pasaba nada, luego me di cuenta de que el GPS trabajaba como máximo con 2.8, por lo que tuve que tratar de amplificar el voltaje, para lo cual utilicé el 74HC08N y bueno, me funcionó pero a medias.
Esto es lo que en sí, debería obtener:
Código:
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,000103.799,,,,,0,0,,,M,,M,,*4D
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000103.799,V,,,,,0.00,0.00,060180,,,N*47
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,000104.799,,,,,0,0,,,M,,M,,*4A
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000104.799,V,,,,,0.00,0.00,060180,,,N*40
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
Código:
contenido de buffer: $GPGGA,000107.799,,,,,0,0,,,M,,M,,*49
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,00*79
$GPRMC,000107.799,V,,,,,0.00,0.00,060180,,,N*43
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
~X@VI–iF3Ô€¡â
contenido de buffer: $GPGGA,000107.799,,,,,0,0,,,M,,M,,*49
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,00*79
$GPRMC,000107.799,V,,,,,0.00,0.00,060180,,,N*43
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
~X@VI–iF3Ô€¡â
PHP:
#include <18f2550.h>
#fuses hs,cpudiv1,nomclr
#use delay(clock=20000000)
#use rs232(baud=9600, parity=N, bits=8, xmit=PIN_C6, rcv=PIN_C7, stream=conexiongps)
#use rs232(baud=9600, parity=N, bits=8, xmit=PIN_A0, rcv=PIN_A1, stream=debug_gps)
char buffergps[400]="esto es una prueba \0";
int posicionbuffergps=0;
#int_rda
void rd_isr(void)//función de interrupción por recepción de datos USART
{
buffergps[posicionbuffergps] = fgetc(conexiongps);
posicionbuffergps++;
}
void main()
{
setup_adc_ports(NO_ANALOGS);
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);
enable_interrupts(int_rda);
enable_interrupts(GLOBAL);
output_high(PIN_B7);
fprintf(debug_gps,"contenido de buffer:");
// TODO: USER CODE!!
while(1)
{
if(posicionbuffergps>0)
{
buffergps[posicionbuffergps]='\0';
fprintf(debug_gps,"contenido de buffer: %s\r\n",bufferGPS);
posicionbuffergps=0;
}
}
}
Última edición por un moderador: