Autor Tema: Señales serie entre dos PIC. con Pic Basic Pro  (Leído 4535 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado emula

  • PIC10
  • *
  • Mensajes: 6
Señales serie entre dos PIC. con Pic Basic Pro
« en: 23 de Diciembre de 2008, 18:18:12 »
Estoy montando un circuito de comunicación entre 2 PIC. pero tengo problema con la velocidad en que se transmite la señal de un PIC a otro. ese retardo q tengo me influye a la hora de hacer mapeo. (0001 es una funcion, 0101 es para otra funcion) :?. Estoy trabajando con MicroCode Studio Pic Basic Pro, necesito una ayudita para mejorar esa velocidad. :mrgreen:

« Última modificación: 24 de Diciembre de 2008, 00:20:32 por emula »

Desconectado electronando

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 427
Re: Señales serie entre dos PIC. con Pic Basic Pro
« Respuesta #1 en: 04 de Enero de 2009, 06:58:29 »
Te mando este ejemplo en el que se usa el usart de el pic , pues el problema de usar la recepcion seral por software , si bien es mas facil es menos contundente en cambio recepcion serial por hardware es la mejor.
Código: [Seleccionar]
'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2002 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 13/12/2002                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************


CMCON=7
TRISA=%00001111
TRISB=%00000010

RECEPTOR VAR PORTB.1
TRANSMISOR VAR PORTB.2

PULSADOR1 VAR PORTA.0
PULSADOR2 VAR PORTA.1
PULSADOR3 VAR PORTA.2
PULSADOR4 VAR PORTA.3

LED1 VAR PORTB.4
LED2 VAR PORTB.5
LED3 VAR PORTB.6
LED4 VAR PORTB.7
DATO_REC VAR BYTE

SPBRG = 25              ' Set baud rate to 2400
RCSTA = %10010000       ' Enable serial port and continuous receive
TXSTA = %00100000       ' Enable transmit and asynchronous mode

LED1=0
LED2=0
LED3=0
LED4=0


INICIO:
IF PULSADOR1=0 THEN
    PAUSE 30
    IF PULSADOR1=0 THEN
    WHILE PULSADOR1=0 :WEND
    HSerout ["1"]
    ENDIF
ENDIF
IF PULSADOR2=0 THEN
    PAUSE 30
    IF PULSADOR2=0 THEN
    WHILE PULSADOR2=0 :WEND
    HSerout ["2"]
    ENDIF
ENDIF
IF PULSADOR3=0 THEN
    PAUSE 30
    IF PULSADOR3=0 THEN
    WHILE PULSADOR3=0 :WEND
    HSerout ["3"]
    ENDIF
ENDIF
IF PULSADOR4=0 THEN
    PAUSE 30
    IF PULSADOR4=0 THEN
    WHILE PULSADOR4=0 :WEND
    HSerout ["4"]
    ENDIF
ENDIF

If PIR1.5 = 1 Then      ' If receive flag then...
    DATO_REC= RCREG      ' ...get received character to B1
    IF DATO_REC="1" THEN
        LED1=1
        PAUSE 1000
        LED1=0
        DATO_REC=0
        GOTO INICIO
    ENDIF
    IF DATO_REC="2" THEN
        LED2=1
        PAUSE 1000
        LED2=0
        DATO_REC=0
        GOTO INICIO
    ENDIF
    IF DATO_REC="3" THEN
        LED3=1
        PAUSE 1000
        LED3=0
        DATO_REC=0
        GOTO INICIO
    ENDIF
    IF DATO_REC="4" THEN
        LED4=1
        PAUSE 1000
        LED4=0
        DATO_REC=0
        GOTO INICIO
    ENDIF
ENDIF
GOTO INICIO



en la simulacion con el pic 16f628a para cualquier pic se usa el mismo programa , comunicacion a 2400bd
cuando se presiona cualquier pulsador se refleja pro un segundo en el pic vecino



si no entiendes te recomiendo leas el datasheet de el pic y las configuraciones que no entiendas las consultas