Hola a todos, estoy tratando de armar un miniprograma "intercomunicacion entre PIC y mi PC".
La salida de mi PIC a PC va todo bien escribe todo lo que debe escribir ahora al enviar datos de mi PC a el PIC el pic me devuelve un valor totalmente distinto o vacio, aca les dejo todo lo que escribi. Tengan en cuenta que lo manejo desde linux debian.
Mi programa PIC en CCS:
este es mi servidor perl el cual recibe datos:
para enviar datos a mi PIC lo hago desde la shell (todo a 9600 baud) con esto:
echo "u" > /dev/ttyS0
hoy estuve todo el dia tratando de resolver porque el pic no interpreta bien la letra/s enviada/s ya me estoy volviendo loco.
si alguien me puede dar una mano agradecido.
Saludos.
La salida de mi PIC a PC va todo bien escribe todo lo que debe escribir ahora al enviar datos de mi PC a el PIC el pic me devuelve un valor totalmente distinto o vacio, aca les dejo todo lo que escribi. Tengan en cuenta que lo manejo desde linux debian.
Mi programa PIC en CCS:
Código:
#include <16F84A.h> //pic a utilizar
#fuses XT ,NOWDT ,NOPROTECT //ordenes para el programador
#use delay (clock=4000000) //Fosc=4Mhz
#use rs232(baud=9600,xmit=PIN_A1,rcv=PIN_A0,bits=8,ERRORS) //por A1 envia y por A0 recibe
//#include <string.h>
//#include <input.c>
char c;
void main() {
enable_interrupts(global);
enable_interrupts(INT_EXT);
do{
puts("starting..");
delay_ms(1000);
if (kbhit())
{
c = getc();
if (c=='u') {puts("Up_Received");}
if (c=='d') {puts("Down_Received");}
if (c=='s') {puts("Stop_Received");}
puts(c);
}
}while(true);
}
este es mi servidor perl el cual recibe datos:
Código:
#!/usr/bin/perl -w
use strict;
use Device::SerialPort;
my $port=Device::SerialPort->new("/dev/ttyS0");
my $STALL_DEFAULT=120; # how many seconds to wait for new input
my $timeout=$STALL_DEFAULT;
$port->baudrate(9600);
$port->databits(8);
$port->stopbits(1);
$port->parity("none");
$port->read_char_time(1); # don't wait for each character
# $port->read_const_time(1000); # 1 second per unfulfilled "read" call
my $chars=0;
my $buffer="";
while (1) {
my $string = $port->read(255);
print $string;
}
para enviar datos a mi PIC lo hago desde la shell (todo a 9600 baud) con esto:
echo "u" > /dev/ttyS0
hoy estuve todo el dia tratando de resolver porque el pic no interpreta bien la letra/s enviada/s ya me estoy volviendo loco.
si alguien me puede dar una mano agradecido.
Saludos.