TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: masnancia en 03 de Junio de 2003, 16:57:00
-
Hola a todos:
Tengo una consulta sobre como armar un buffer con datos recibidos desde la PC via RS232, la comunicacion la pude establecer pero no logro realizar una rutina que me tome de 3 a 5 bytes y los coloque en memoria.
Acepto cualquier ayuda, desde ya muchas gracias.
-
Con esto manejas 3 bytes, pero puedes darle continuidad al tamaño que necesites, espero te sirva.
ini movf RCREG,0 ;muev el byte recibido al buffer
movwf buffer
incf conta,F ;incrementa contador de byte"s
b1 movf conta,0
xorlw 01h ;contador de byte"s = 1
btfsc STATUS,Z
goto byte1 ;SI
b2 movf conta,0 ;NO
xorlw 02h ;contador de byte"s = 2
btfsc STATUS,Z
goto byte2 ;si
b3 movf conta,0 ;no
xorlw 03h ;contador de Byte"s = 3
btfsc STATUS,Z
goto byte3 ;si
goto inicio ;no
byte1 movf buffer,W ;mueva el contenido de buffer a rx1
movwf rx1
addwf CHK,1 ;sumelo al chksum
goto leepto ;vuelva a leer el puerto
byte2 movf buffer,W ;mueva el contenido de buffer a rx2
movwf rx2
addwf CHK,1 ;sumelo al chksum
goto leepto ;vuelva a leer el puerto
byte3 movf buffer,W ;mueva el contenido de buffer a rx3
movwf rx3
movf rx3,0 ;mueva rx3 a w
xorwf CHK,0 ;rx3 = a chksum
btfss STATUS,Z
goto ci ;NO es igual
goto dato1 ;SI es igual