Autor Tema: Modulos SPI e AUSART funcionando a la par ?  (Leído 4886 veces)

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

Desconectado nahueldiaz1992

  • PIC12
  • **
  • Mensajes: 75
Modulos SPI e AUSART funcionando a la par ?
« en: 16 de Enero de 2014, 12:03:02 »
Hola gente queria saber si se puede tener ambos modulos funcionando a la par ya que necesito crear una comunicacion entre dos pics y con uno de los dos comunicar a la pc lo que ocurre desde alguno de los dos pics , mi preocupacion es que comparten lineas de datos ... hay alguna manera de hacer que funcione ?

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: Modulos SPI e AUSART funcionando a la par ?
« Respuesta #1 en: 16 de Enero de 2014, 12:07:07 »
claro que pueden funcionar ambos al mismo tiempo, que modelo estas usando? en caso de que compartan pines, siempre podrias usar rs232 o spi por software para tener ambos al mismo tiempo
"Nada es imposible, no si puedes imaginarlo"

Desconectado nahueldiaz1992

  • PIC12
  • **
  • Mensajes: 75
Re: Modulos SPI e AUSART funcionando a la par ?
« Respuesta #2 en: 16 de Enero de 2014, 12:16:08 »
ESTOY UTILIZANDO UN PIC 16F88

Y ALGO ASI ESTOY PENSANDO EN HACER:


Desconectado nahueldiaz1992

  • PIC12
  • **
  • Mensajes: 75
Re: Modulos SPI e AUSART funcionando a la par ?
« Respuesta #3 en: 16 de Enero de 2014, 12:19:05 »
La parte de utilizar el rs232 es si o si ya que tengo que comunicarme con la pc , sino los niveles de tension para la comunicacion entre el pic y la pc no daria ,  .. pero como decis que se puede hacer ?

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: Modulos SPI e AUSART funcionando a la par ?
« Respuesta #4 en: 16 de Enero de 2014, 12:27:20 »
La parte de utilizar el rs232 es si o si ya que tengo que comunicarme con la pc , sino los niveles de tension para la comunicacion entre el pic y la pc no daria ,  .. pero como decis que se puede hacer ?


en que estas programando?

tal vez podrías usar rs232 e I2c esos no comparten pines
"Nada es imposible, no si puedes imaginarlo"

Desconectado nahueldiaz1992

  • PIC12
  • **
  • Mensajes: 75
Re: Modulos SPI e AUSART funcionando a la par ?
« Respuesta #5 en: 16 de Enero de 2014, 12:32:22 »
mmmm ... estoy programando en assembler .. igual me genera conflicto ya que estoy trabajando con un modulo inalambrico que esta preparado para usarse con spi ... es un nrlf24l01 si no me equivoco

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: Modulos SPI e AUSART funcionando a la par ?
« Respuesta #6 en: 16 de Enero de 2014, 12:45:12 »
si, por lo que veo tu módulo solo trabaja con spi, podrias realizar la comunicacion por spi o por rs232 por software, aunque no se que tan conveniente sea que hagas eso o mejor cambies el modelo de tu pic  :?.
"Nada es imposible, no si puedes imaginarlo"

Desconectado nahueldiaz1992

  • PIC12
  • **
  • Mensajes: 75
Re: Modulos SPI e AUSART funcionando a la par ?
« Respuesta #7 en: 16 de Enero de 2014, 13:13:17 »
Si capas que es mas facil cambiando el pic .. muchas gracias por la ayuda ! igualmente .. algun ejemplo que tengas por ahi de comunicacion forzada por soft ? si no es mucha molesti .. solo para ver .. ya que habia escuchado pero nunca vi un ejemplo o como se deberia de hacer ..


Gracias !

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: Modulos SPI e AUSART funcionando a la par ?
« Respuesta #8 en: 16 de Enero de 2014, 13:19:14 »
no he realizado la comunicación por soft usando ensamblador, (la ventaje que el ccs lo hace solo), sin embargo para realizarla tienes que verificar los tiempos de los pulsos necesarios y crear una libreria que interprete cada dato y genere los pulsos con el tiempo necesario para que la pc pueda entenderlos.

La desventaja que se tiene al realizar la comunicacion por soft es que no tienes una interrupcion asociada a la recepción de datos, tendrias que estar verificando continuamente si se recibe algún dato.

Busca dentro del foro, tal vez alguién haya realizado el código y te ayudaría bastante
"Nada es imposible, no si puedes imaginarlo"

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Modulos SPI e AUSART funcionando a la par ?
« Respuesta #9 en: 16 de Enero de 2014, 15:14:24 »

La desventaja que se tiene al realizar la comunicacion por soft es que no tienes una interrupcion asociada a la recepción de datos, tendrias que estar verificando continuamente si se recibe algún dato.

Busca dentro del foro, tal vez alguién haya realizado el código y te ayudaría bastante

  Se podría utilizar un pin de interrupción externa y detectar el cambio de 1 a 0 y eso indicaría que la pc quiere enviar datos al PIC. Una vez detectado ese cambio se procede a ejecutar la función de lectura de UART por soft.

  Definitivamente, hacer las rutinas de UART y/o I2C y/o SPI por soft es mucho más fácil en C.  :D
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: Modulos SPI e AUSART funcionando a la par ?
« Respuesta #10 en: 16 de Enero de 2014, 15:28:56 »

  Se podría utilizar un pin de interrupción externa y detectar el cambio de 1 a 0 y eso indicaría que la pc quiere enviar datos al PIC. Una vez detectado ese cambio se procede a ejecutar la función de lectura de UART por soft.

  Definitivamente, hacer las rutinas de UART y/o I2C y/o SPI por soft es mucho más fácil en C.  :D

Muy buen punto!, no pensé en eso, esa sería una buena solución. ((:-))

Creo que falta que nahueldiaz valore que es mas factible, yo voto por cambiar de modelo de pic  :mrgreen:
"Nada es imposible, no si puedes imaginarlo"

Desconectado RALF2

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2062
Re: Modulos SPI e AUSART funcionando a la par ?
« Respuesta #11 en: 16 de Enero de 2014, 17:13:50 »
Citar
Se podría utilizar un pin de interrupción externa y detectar el cambio de 1 a 0 y eso indicaría que la pc quiere enviar datos al PIC. Una vez detectado ese cambio se procede a ejecutar la función de lectura de UART por soft.


Eso daria problemas porque estarias perdiendo el bit de start, eso si llegaras a utilizar alguna de las rutinas por software empleadas por el ccs, pero si se haces la rutina por asembler seria muy factible.

Saludos
« Última modificación: 16 de Enero de 2014, 17:18:52 por RALF2 »

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Modulos SPI e AUSART funcionando a la par ?
« Respuesta #12 en: 16 de Enero de 2014, 19:01:37 »
Citar
Se podría utilizar un pin de interrupción externa y detectar el cambio de 1 a 0 y eso indicaría que la pc quiere enviar datos al PIC. Una vez detectado ese cambio se procede a ejecutar la función de lectura de UART por soft.


Eso daria problemas porque estarias perdiendo el bit de start, eso si llegaras a utilizar alguna de las rutinas por software empleadas por el ccs, pero si se haces la rutina por asembler seria muy factible.

Saludos

  Supongo que dependerá un poco de la velocidad de transmisión. Digo, si se recibe a 9600 y dentro de la propia rutina de interrupción se hace la lectura de la UART (y el pic está trabajando a, supongamos 20MHz) no se demoraría tanto en llegar el punto de lectura.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado nahueldiaz1992

  • PIC12
  • **
  • Mensajes: 75
Re: Modulos SPI e AUSART funcionando a la par ?
« Respuesta #13 en: 17 de Enero de 2014, 22:42:33 »
Muchas gracias a todos por las ideas ! de hecho por el momento estoy viendo de cambiar de pic a alguno en el que pueda utilizar los dos modulos sin inconvenientes , tambien seria la primera vez que me salgo del 16f88 asi que estoy viendo como puedo encontrar otro pic .. si resultara de no poder hacerse cambiando el pic veria de hacerlo por soft .. mm otra cosa me han comentado de que en  ccc se pueden crear sentencias en asm , para no perder lo que hice se podria agregar a el programa en c ?  y de paso les mando algo mas detallado de lo que estoy haciendo si les interesa ..

Desconectado nahueldiaz1992

  • PIC12
  • **
  • Mensajes: 75
Re: Modulos SPI e AUSART funcionando a la par ?
« Respuesta #14 en: 17 de Enero de 2014, 23:06:16 »
La idea que tenia era de hacer " mover " este interruptor=





con el esclavo y su modulo registro si las luces de los estados  del interruptor se encienden u apagan y a su vez mando pulsos high o low para las botoneras o el arranque del cargador de disparos

Placa del esclavo con su microcontrolador , los cables del spi irian directamente al modulo nrlf24l01



Modulo de recepcion de datoy y disparos





Para recibir el estado de las luces uso los modulos comparadores ... ya que cuando las luces encienden u apagan generan dos estados de tension distintos . La tension recibida por las luces estaria en donde dice 220 v  en la imagen de arriba del lado izquierdo y su salida , la que leo con el comparador es la denominada "señal"

Programa para U2:

;******************************************************************************
;   This file is a basic code template for code generation                    *
;   on the  PIC16F88. This file contains the basic code building              *
;   blocks to build upon.                                                     *
;                                                                             *
;   Refer to the MPASM User's Guide for additional information on             *
;   features of the assembler.                                                *
;                                                                             *
;   Refer to the respective data sheet for additional                         *
;   information on the instruction set.                                       *
;                                                                             *
;******************************************************************************
;                                                                             *
;    Filename:         xxx.asm                                                *
;    Date:                                                                    *
;    File Version:                                                            *
;                                                                             *
;    Author:                                                                  *
;    Company:                                                                 *
;                                                                             *
;******************************************************************************
;                                                                             *
;    Files Required: P16F88.INC                                               *
;                                                                             *
;******************************************************************************
;                                                                             *
;    Features of the 16F88:                                                   *
;                                                                             *
;    1 10-bit PWM                                                             *
;    8 MHz Internal Oscillator                                                *
;    ICD support                                                              *
;    256 bytes of EEPROM data memory                                          *
;    Capture/Compare Module                                                   *
;                                                                             *
;******************************************************************************
;                                                                             *
;    Notes:                                                                   *
;                                                                             *
;                                                                             *
;******************************************************************************
;                                                                             *
;    Revision History:      15/1/14                                                  *
;                                                                             *
;******************************************************************************

;------------------------------------------------------------------------------
; PROCESSOR DECLARATION
;------------------------------------------------------------------------------

     LIST      p=16F88              ; list directive to define processor
     #INCLUDE <P16F88.INC>          ; processor specific variable definitions

;------------------------------------------------------------------------------
;
; CONFIGURATION WORD SETUP
;
; The 'CONFIG' directive is used to embed the configuration word within the
; .asm file. The lables following the directive are located in the respective
; .inc file.  See the data sheet for additional information on configuration
; word settings.
;
;------------------------------------------------------------------------------

__CONFIG    _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF &_CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_OFF & _PWRTE_OFF & _WDT_OFF& _XT_OSC & _FOSC_XT
__CONFIG    _CONFIG2, _IESO_OFF & _FCMEN_OFF


;------------------------------------------------------------------------------
;
; VARIABLE DEFINITIONS
;
; Available Data Memory divided into Bank 0 through Bank 3.  Each Bank contains
; Special Function Registers and General Purpose Registers at the locations
; below: 
;
;           SFR           GPR               SHARED GPR's
; Bank 0    0x00-0x1F     0x20-0x6F         0x70-0x7F   
; Bank 1    0x80-0x9F     0xA0-0xEF         0xF0-0xFF 
; Bank 2    0x100-0x10F   0x110-0x16F       0x170-0x17F
; Bank 3    0x180-0x18F   0x190-0x1EF       0x1F0-0x1FF
;
;------------------------------------------------------------------------------

    CBLOCK 0x20 ; Sample GPR variable registers allocated contiguously
        MYVAR1  ; User variable
        MYVAR2  ; User variable
        MYVAR3  ; User variable
        DY1
        DY2
        DY3
    ENDC

W_TEMP         EQU        0x7D  ; w register for context saving (ACCESS)
STATUS_TEMP    EQU        0x7E  ; status used for context saving (ACCESS)
PCLATH_TEMP    EQU        0x7F  ; variable used for context saving

;------------------------------------------------------------------------------
; EEPROM INITIALIZATION
;
; The 16F88 has 256 bytes of non-volatile EEPROM, starting at address 0x2100
;
;------------------------------------------------------------------------------

DATAEE    ORG  0x2100
    DE    "MCHP"  ; Place 'M' 'C' 'H' 'P' at address 0,1,2,3

;------------------------------------------------------------------------------
; RESET VECTOR
;------------------------------------------------------------------------------

RESET     ORG     0x0000            ; processor reset vector
          PAGESEL START
          GOTO    START             ; go to beginning of program

;------------------------------------------------------------------------------
; INTERRUPT SERVICE ROUTINE
;------------------------------------------------------------------------------

ISR       ORG     0x0004            ; interrupt vector location

;         Context saving for ISR
          MOVWF   W_TEMP            ; save off current W register contents
          MOVF    STATUS,W          ; move status register into W register
          MOVWF   STATUS_TEMP       ; save off contents of STATUS register
          MOVF    PCLATH,W          ; move pclath register into W register
          MOVWF   PCLATH_TEMP       ; save off contents of PCLATH register

;------------------------------------------------------------------------------
           BANKSEL  CMCON
           BTFSS    CMCON,C2OUT
           GOTO     UNO
           BSF      SSPBUF,7
RET1
           BTFSS    CMCON,C1OUT
           GOTO     DOS
           BSF      SSPBUF,0
RET2
           BANKSEL   PIR2
           BCF       PIR2,CMIF
           BANKSEL   PIR1
           BCF       PIR1,3
;------------------------------------------------------------------------------

;         Restore context before returning from interrupt
          MOVF    PCLATH_TEMP,W     ; retrieve copy of PCLATH register
          MOVWF   PCLATH            ; restore pre-isr PCLATH register contents
          MOVF    STATUS_TEMP,W     ; retrieve copy of STATUS register
          MOVWF   STATUS            ; restore pre-isr STATUS register contents
          SWAPF   W_TEMP,F
          SWAPF   W_TEMP,W          ; restore pre-isr W register contents
          RETFIE                    ; return from interrupt

;------------------------------------------------------------------------------
; MAIN PROGRAM
;------------------------------------------------------------------------------

START

;INICIALIZACION DE PUERTOS
                BANKSEL TRISA
                MOVLW   0X01
                MOVWF   TRISA
                MOVLW   0XF2
               
;CONFIGURACION ADICIONAL

                BANKSEL     ADCON0
                MOVLW       0XC0
                MOVWF       ADCON0
               
;INICIALIZACION DE COMPARADOR ANALOGO

                BANKSEL     CMCON
                MOVLW       0XB2
                MOVWF       CMCON
                BCF         CMCON,7
                BANKSEL     CVRCON
                MOVLW       0X8F
                MOVWF       CVRCON 
                               
;INICIALIZACION DE MODULO SPI

                BANKSEL     SSPSTAT
                MOVLW       0X40
                MOVWF       SSPSTAT
                BANKSEL     SSPCON
                MOVLW       0X34
                MOVWF       SSPCON

;INTERRUPCIONES

                BANKSEL     INTCON
                BSF         INTCON,GIE
                BSF         INTCON,PEIE
                BANKSEL     OPTION_REG
                BSF         OPTION_REG,INTEDG
                BANKSEL     PIE2
                BSF         PIE2,CMIE
             

;PROGRAMA PRINNCIPAL

BUSQUEDA

                BANKSEL     SSPSTAT

                BTFSS       SSPSTAT,BF
                GOTO        BUSQUEDA



RECIBED
                BANKSEL     SSPBUF
                MOVF        SSPBUF,W
                MOVWF       MYVAR2
                BANKSEL     PORTA

                BTFSS       MYVAR2,3
                GOTO        TRES
                BSF         PORTA,4
               
RET3            BTFSS       MYVAR2,4
                GOTO        CUATRO
                BSF         PORTB,0
               
RET4
                BTFSS       MYVAR2,5
                GOTO        CINCO
                BSF         PORTB,3
               
RET5            NOP

                CALL        DELAY
                CALL        DELAY
                CALL        DELAY


SEND
                CLRF        SSPBUF
                BANKSEL     PORTB

                BTFSS       PORTB,6
                GOTO        SEIS
                BSF         SSPBUF,1

RET6            BTFSS       PORTB,7
                GOTO        SIETE
                BSF         SSPBUF,2

RET7            GOTO        BUSQUEDA

;SUBRUTINAS
               
UNO
                BANKSEL     SSPBUF
                BCF         SSPBUF,7
                GOTO        RET1

DOS
                BANKSEL     SSPBUF
                BCF         SSPBUF,0
                GOTO        RET2

TRES
                BCF         PORTA,4
                GOTO        RET3

CUATRO
                BCF         PORTB,0
                GOTO        RET4

CINCO
                BCF         PORTB,3
                GOTO        RET5

SEIS
                BANKSEL     SSPBUF
                BCF         SSPBUF,1
                GOTO        RET6

SIETE
                BANKSEL     SSPBUF
                BCF         SSPBUF,2
                GOTO        RET7


DELAY      CLRF   DY1
         CLRF   DY2
         clrf   DY3
ITER      DECFSZ   DY1
         GOTO   ITER
         DECFSZ   DY2
         GOTO   ITER
         DECFSZ   DY3
         GOTO   ITER
         RETURN

            GOTO    $

END


;EN ESTE PROGRAMA SE REALIZA LA COMUNICACION SPI Y ADEMAS verificar el estado de
;un comparador y dos puertos para definir el estado de las luces ,


; la comunicacion se realiza a 250 khz cada 4 microseg






Programa para U3:

;******************************************************************************
;   This file is a basic code template for code generation                    *
;   on the  PIC16F88. This file contains the basic code building              *
;   blocks to build upon.                                                     *
;                                                                             *
;   Refer to the MPASM User's Guide for additional information on             *
;   features of the assembler.                                                *
;                                                                             *
;   Refer to the respective data sheet for additional                         *
;   information on the instruction set.                                       *
;                                                                             *
;******************************************************************************
;                                                                             *
;    Filename:         xxx.asm                                                *
;    Date:                                                                    *
;    File Version:                                                            *
;                                                                             *
;    Author:                                                                  *
;    Company:                                                                 *
;                                                                             *
;******************************************************************************
;                                                                             *
;    Files Required: P16F88.INC                                               *
;                                                                             *
;******************************************************************************
;                                                                             *
;    Features of the 16F88:                                                   *
;                                                                             *
;    1 10-bit PWM                                                             *
;    8 MHz Internal Oscillator                                                *
;    ICD support                                                              *
;    256 bytes of EEPROM data memory                                          *
;    Capture/Compare Module                                                   *
;                                                                             *
;******************************************************************************
;                                                                             *
;    Notes:                                                                   *
;                                                                             *
;                                                                             *
;******************************************************************************
;                                                                             *
;    Revision History:                                                        *
;                                                                             *
;******************************************************************************

;------------------------------------------------------------------------------
; PROCESSOR DECLARATION
;------------------------------------------------------------------------------

     LIST      p=16F88              ; list directive to define processor
     #INCLUDE <P16F88.INC>          ; processor specific variable definitions

;------------------------------------------------------------------------------
;
; CONFIGURATION WORD SETUP
;
; The 'CONFIG' directive is used to embed the configuration word within the
; .asm file. The lables following the directive are located in the respective
; .inc file.  See the data sheet for additional information on configuration
; word settings.
;
;------------------------------------------------------------------------------

     __CONFIG    _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_ON & _PWRTE_ON & _WDT_OFF & _INTRC_IO
     __CONFIG    _CONFIG2, _IESO_OFF & _FCMEN_OFF

;------------------------------------------------------------------------------
;
; VARIABLE DEFINITIONS
;
; Available Data Memory divided into Bank 0 through Bank 3.  Each Bank contains
; Special Function Registers and General Purpose Registers at the locations
; below:
;
;           SFR           GPR               SHARED GPR's
; Bank 0    0x00-0x1F     0x20-0x6F         0x70-0x7F
; Bank 1    0x80-0x9F     0xA0-0xEF         0xF0-0xFF
; Bank 2    0x100-0x10F   0x110-0x16F       0x170-0x17F
; Bank 3    0x180-0x18F   0x190-0x1EF       0x1F0-0x1FF
;
;------------------------------------------------------------------------------

    CBLOCK 0x20 ; Sample GPR variable registers allocated contiguously
        MYVAR1  ; User variable
        MYVAR2  ; User variable
        MYVAR3  ; User variable
    ENDC

W_TEMP         EQU        0x7D  ; w register for context saving (ACCESS)
STATUS_TEMP    EQU        0x7E  ; status used for context saving (ACCESS)
PCLATH_TEMP    EQU        0x7F  ; variable used for context saving

;------------------------------------------------------------------------------
; EEPROM INITIALIZATION
;
; The 16F88 has 256 bytes of non-volatile EEPROM, starting at address 0x2100
;
;------------------------------------------------------------------------------

DATAEE    ORG  0x2100
    DE    "MCHP"  ; Place 'M' 'C' 'H' 'P' at address 0,1,2,3

;------------------------------------------------------------------------------
; RESET VECTOR
;------------------------------------------------------------------------------

RESET     ORG     0x0000            ; processor reset vector
          PAGESEL START
          GOTO    START             ; go to beginning of program

;------------------------------------------------------------------------------
; INTERRUPT SERVICE ROUTINE
;------------------------------------------------------------------------------

ISR       ORG     0x0004            ; interrupt vector location

;         Context saving for ISR
          MOVWF   W_TEMP            ; save off current W register contents
          MOVF    STATUS,W          ; move status register into W register
          MOVWF   STATUS_TEMP       ; save off contents of STATUS register
          MOVF    PCLATH,W          ; move pclath register into W register
          MOVWF   PCLATH_TEMP       ; save off contents of PCLATH register

;------------------------------------------------------------------------------
  BANKSEL  CMCON
           BTFSS    CMCON,C2OUT
           GOTO     UNO
           BSF      PORTB,3
RET1
           BTFSS    CMCON,C1OUT
           GOTO     DOS
           BSF      PORTB,4
RET2
           BANKSEL   PIR2
           BCF       PIR2,CMIF
           BANKSEL   PIR1
           BCF       PIR1,3
;------------------------------------------------------------------------------

;         Restore context before returning from interrupt
          MOVF    PCLATH_TEMP,W     ; retrieve copy of PCLATH register
          MOVWF   PCLATH            ; restore pre-isr PCLATH register contents
          MOVF    STATUS_TEMP,W     ; retrieve copy of STATUS register
          MOVWF   STATUS            ; restore pre-isr STATUS register contents
          SWAPF   W_TEMP,F
          SWAPF   W_TEMP,W          ; restore pre-isr W register contents
          RETFIE                    ; return from interrupt

;------------------------------------------------------------------------------
; MAIN PROGRAM
;------------------------------------------------------------------------------

START

;INICIALIZACION DE PUERTOS



;CONFIGURACION ADICIONAL

                BANKSEL     ADCON0
                MOVLW       0XC0
                MOVWF       ADCON0

;INICIALIZACION DE COMPARADOR ANALOGO

                BANKSEL     CMCON
                MOVLW       0XB2
                MOVWF       CMCON
                BCF         CMCON,7
                BANKSEL     CVRCON
                MOVLW       0X8F
                MOVWF       CVRCON

;INTERRUPCIONES

                BANKSEL     INTCON
                BSF         INTCON,GIE
                BSF         INTCON,PEIE
                BANKSEL     OPTION_REG
                BSF         OPTION_REG,INTEDG
                BANKSEL     PIE2
                BSF         PIE2,CMIE

;SUBRUTINAS

UNO
                BANKSEL     PORTA
                BCF         PORTB,3
                GOTO        RET1

DOS
                BANKSEL     SSPBUF
                BCF         PORTB,4
                GOTO        RET2

;------------------------------------------------------------------------------
; PLACE USER PROGRAM HERE
;------------------------------------------------------------------------------

          GOTO $

          END










Circuito que iria a la pc :




Por ahora esta completamente analogo .. pero necesitaria hacer que comunique con la pc asi que estoy buscando un pic en el que los modulos SPI y AUSART no interfieran entre si .





 

anything