TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: sebaspla2008 en 19 de Febrero de 2009, 12:56:29
-
Ante todo, saludos a toda la comunidad del foro, la verdad que son geniales!!
Bueno, les comento mi problema, a ver si me pueden dar una mano.
Resulta que quiero hacer una simple conexion entre un pic 16f84a y el puerto serie de la pc. El pic lo programo en PIC BASIC PRO y hago un sencillito programita en C# para ver los datos que envia y recibe la pc.
El problema, es que simplemente no hace nada, ni siquiera veo que reciba basura en el buffer del puerto de la pc, simplemente se queda en blanco. Tampoco logro mandar ningun dato al pic, porque no se me encienden los leds
Al principio pensaba que era problema de la conexion, pero logre hacer el mismo programa en CCS C y anduvo perfecto.
Yo por lo que se, el 16F84 no posee UART, pero creia que con las sentencias SERIN y SEROUT se lo podia comunicar igualmente al puerto serie.
En cuanto a la conexion, utilizo un MAX232.
Tambien me fije si leia bien y mandaba bien los datos el puerto, y lo comprobe puenteando los cables directamente del TX al RX y anduvo bien, asi que deduzco que el problema es definitivamente del software del pic
Pongo el codigo:
include "modedefs.bas"
define conf_word 0x3ff9
define osc 4
trisb.0=0
trisb.2=0
low portb.2
variable var byte
variable=" "
loop:
serin portb.1,T2400,variable
serout portb.0,T2400,[$FF,$FF,variable]
if variable<>" " then
high portb.2
endif
goto loop
end
Ah y si me podrian explicar un poquito acerca de la USART se los agradeceria
Muchas gracias
-
Hola:
Si lo que pretendes hacer es enviar un valor desde el pc al micro y deviolverla a la PC como veo que intentas hacer, no te sirve serin, puedes usar serin2 para ese fin.
Primero intenta solamente con serout a enviar cualquier caracter y míralo en la máquina. Recuerda que T2400 es Driven True y que N2400 es Driven Inverted.
-
Mira, intentare hacerlo, pero recuerdo que antes de hacer este programa, habia hecho otro que simplemente enviaba un caracter, y tampoco recibia nada.
Tambien habia probado que reciba y no consegui nada.
me podrias explicar que diferencia tiene el serin2 del serin y su sintaxis??
Muchas gracias
-
Hola:
Usa N2400, tu estás usando un Max, para la sintaxis y su estructura, dale F1 en el MCS y te aparece la ayuda, ahí incluso verás ejemplos de aplicación, está muy entendible, más claro de lo que yo te pueda explicar.