Autor Tema: Errores al compilar en asm el PIC12F509A  (Leído 1043 veces)

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

Desconectado Forma

  • PIC10
  • *
  • Mensajes: 8
Errores al compilar en asm el PIC12F509A
« en: 18 de Febrero de 2023, 14:10:40 »
Buenas:

Me da errores al compilar este código.
make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf
make[1]: Entering directory 'D:/MPLAB/ChipSpain.X'
make  -f nbproject/Makefile-default.mk dist/default/production/ChipSpain.X.production.hex
make[2]: Entering directory 'D:/MPLAB/ChipSpain.X'
"C:\Program Files\Microchip\xc8\v2.40\pic-as\bin\pic-as.exe" -mcpu=PIC12C509A -c \
-o build/default/production/Chip12F508A.o \
Chip12F508A.asm \
  -mdfp="C:/Program Files/Microchip/MPLABX/v6.05/packs/Microchip/PIC12-16Cxxx_DFP/1.4.59/xc8"  -msummary=+mem,-psect,-class,-hex,-file,-sha1,-sha256,-xml,-xmlfull -fmax-errors=20 -mwarn=0 -xassembler-with-cpp
Chip12F508A.asm:60:: error: (2070) device specified by the PROCESSOR directive conflicts with that set by the -mcpu option
Chip12F508A.asm:61:: error: (140) can't open include file "p12f509A.inc": No such file or directory
Chip12F508A.asm:63:: error: (2070) device specified by the PROCESSOR directive conflicts with that set by the -mcpu option
Chip12F508A.asm:64:: error: (140) can't open include file "p12f508A.inc": No such file or directory
Chip12F508A.asm:70:: error: (876) syntax error
Chip12F508A.asm:81:: error: (876) syntax error
Chip12F508A.asm:121:: error: (875) bad character constant in expression
Chip12F508A.asm:129:: error: (876) syntax error
Chip12F508A.asm:130:: error: (876) syntax error
Chip12F508A.asm:143:: error: (876) syntax error
Chip12F508A.asm:148:: error: (876) syntax error
Chip12F508A.asm:167:: error: (876) syntax error
Chip12F508A.asm:182:: error: (876) syntax error
Chip12F508A.asm:183:: error: (876) syntax error
Chip12F508A.asm:192:: error: (876) syntax error
Chip12F508A.asm:202:: error: (876) syntax error
Chip12F508A.asm:210:: error: (876) syntax error
Chip12F508A.asm:217:: error: (876) syntax error
Chip12F508A.asm:219:: error: (876) syntax error
Chip12F508A.asm:229:: error: (876) syntax error
Chip12F508A.asm:235:: advisory: (1) too many errors (21)
(908) exit status = 1
nbproject/Makefile-default.mk:102: recipe for target 'build/default/production/Chip12F508A.o' failed
make[2]: Leaving directory 'D:/MPLAB/ChipSpain.X'
nbproject/Makefile-default.mk:85: recipe for target '.build-conf' failed
make[1]: Leaving directory 'D:/MPLAB/ChipSpain.X'
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed
make[2]: *** [build/default/production/Chip12F508A.o] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2

BUILD FAILED (exit value 2, total time: 1s)

Código asm:
Código: [Seleccionar]
;--------------------------------------------------------------------------

;                   +----------------------------------+
;                   ¦ ESQUEMA DE CONEXIONES PIC12C509A ¦
;                   +----------------------------------+
;
;                            +------+  +------+
;                            ¦      +--+      ¦
;                       +5V ¦¦1  PIC12C509A  8¦¦ MASA
;                            ¦                ¦
;                     SWAPX ¦¦2 GPIO5  GPIO0 7¦¦ DVDIN=0                     
;                            ¦                ¦
;                  DVDOUT=1 ¦¦3 GPIO4  GPIO1 6¦¦ TXSCEE   
;                            ¦                ¦
;                  /RESET=0 ¦¦4 GPIO3  GPIO2 5¦¦ SWAPY     
;                            ¦                ¦
;                            +----------------+
;           
; 1 - +5VCC  - SIN COMENTARIOS
; 2 - SWAPX  - SOLO LO USA LA OPCION 3 PARA LA APERTURA Y CIERRE DEL DVD
; 3 - DVDOUT - ES IGUAL A 1 CUANDO LA BANDEJA DEL DVD ESTA SALIENDO
; 4 - /RESET - ES IGUAL A 0 CUANDO PULSAMOS EL RESET DE LA PS2
; 5 - SWAPY  - SOLO LO USA LA OPCION 3 PARA LA APERTURA Y CIERRE DEL DVD
; 6 - TXSCEE - ES POR DONDE TRANSMITE VIA SERIE "SCEE"
; 7 - DVDIN  - ES IGUAL A 0 CUANDO LA BANDEJA DEL DVD ESTA ENTRANDO
; 8 - MASA   - SIN COMENTARIOS
;--------------------------------------------------------------------------

;+---------------------------------+
;¦ PROCESADOR A EMPLEAR PIC12C509A ¦
;+---------------------------------+
P509A EQU 1          ;0=PIC12C508A 1=PIC12C509A
 IF        P509A
 list      p=12F509A
 include   "p12f509A.inc"
 ELSE
 list      p=12F508A
 include   "p12f508A.inc"
 ENDIF

;+-----------------------------------+
;¦ FUSIBLES, WASDOG, OSCILADOR ETC.. ¦
;+-----------------------------------+
 __FUSES _MCLRE_OFF & _CP_OFF & _WDT_OFF & _IntRC_OSC

;+------------------+
;¦ NOTACION DECIMAL ¦
;+------------------+
 radix   dec
;--------------------------------------------------------------------------

;+--------------------------+
;¦ VARIABLES DE RAM INTERNA ¦
;+--------------------------+
 cblock 0x0B
        RAM_0B  ;CONTADOR PAUSA
        RAM_0C  ;CONTADOR CARGA DEL DVD
        RAM_0D  ;CONTADOR PAUSA
        RAM_0E  ;CANTIDAD DE BYTES A ENVIAR DE LA TABLA
        RAM_0F  ;CANTIDAD DE BITS A ENVIAR DEL BYTE
        RAM_10  ;NO UTILIZADA
        RAM_11  ;CONTADOR W EN PAUSA Wx199
        RAM_12  ;CONTADOR 199 EN PAUSA Wx199
        RAM_13  ;BYTE LEIDO DE LA TABLA
        RAM_14  ;PUNTERO DEL BYTE DE LA TABLA
        RAM_15  ;MASCARA ESTADO DE LOS BIT DEL PUERTO
 endc
;--------------------------------------------------------------------------

;+-----------------+
;¦ VECTOR DE RESET ¦
;+-----------------+
org 0x00
        movwf   OSCCAL          ;CALIBRA EL OSCILADOR INTERNO
        goto    COMIENZO        ;SALTA LA COMIENZO DEL PROGRAMA
;--------------------------------------------------------------------------

;+--------------------------------------+
;¦ VERSION DEL PROGRAMA (CODIGO INUTIL) ¦
;+--------------------------------------+
        retlw   'M'
        retlw   'A'
        retlw   'N'
        retlw   'O'
        retlw   'L'
        retlw   'O'
        retlw   ' '
        retlw   'Y'
        retlw   ' '
        retlw   'C'
        retlw   'O'
        retlw   'M'
        retlw   'P'
        retlw   'A'
        retlw   'Ñ'
        retlw   'I'
        retlw   'A'
;--------------------------------------------------------------------------

;+-----------------------+
;¦ COMIENZO DEL PROGRAMA ¦
;+-----------------------+
COMIENZO
        movlw   b'11000010'     ;CONFIGURA TMR0 PRESCALER = 1:8
        option                  ;OSCILADOR = 4MHZ

        movlw   255             ;INICIALIZA TODOS LOS PUERTOS
        movwf   RAM_15          ;EN ALTO Y RAM_15
tris GPIO ;
;--------------------------------------------------------------------------

;+----------------------------------------+
;¦ PAUSA DE ENCENDIDO DE 414 MILISEGUNDOS ¦
;+----------------------------------------+
        movlw   2               ;100 MILISEGUNDOS
        movwf   RAM_0D          ;
ETI_107 call    PAUSA50MSG      ;       +
        decfsz  RAM_0D,F        ;
        goto    ETI_107         ;
        movlw   6               ;300 MILISEGUNDOS
        movwf   RAM_0D          ;
ETI_10C call    PAUSA50MSG      ;       +
        decfsz  RAM_0D,F        ;
        goto    ETI_10C         ;
        movlw   14              ;14 MILISEGUNDOS
        call    PAUSAWX1MSG     ;
;--------------------------------------------------------------------------

;+------------------------------------------------------------------+
;¦ LECTURA DE LAS 3 OPCIONES CON EL PULSADOR DE RESET DE LA CONSOLA ¦
;+------------------------------------------------------------------+
;OPCION1 EL RESET NO HA SIDO PULSADO
;-----------------------------------
        btfsc   GPIO,3          ;SI EL RESET NO ESTA PULSADO
        goto    OPCION1         ;SALTA A OPCION1

;OPCION2 EL RESET HA SIDO PULSADO Y SE HA SOLTADO ANTES DE 7,5 SEGUNDOS
;----------------------------------------------------------------------
        movlw   150             ;
        movwf   RAM_0D          ;
ETI_115 btfsc   GPIO,3          ;
        goto    OPCION2         ;SALTA A OPCION2 AL LEVANTAR EL RESET
        call    PAUSA50MSG      ;
        decfsz  RAM_0D,F        ;
        goto    ETI_115         ;

;OPCION3 EL RESET HA SIDO PULSADO Y NO SE HA SOLTADO ANTES DE 7,5 SEGUNDOS
;-------------------------------------------------------------------------
        goto    OPCION3         ;SI CONTINUA PULSADO SALTA A OPCION3
;--------------------------------------------------------------------------

;+---------------------------------------------------+
;¦ OPCION 1 (RESET NO PULSADO) EL MODCHIP SE         ¦
;¦ DESHABILITA Y SOLO PODEMOS USAR JUEGOS ORIGINALES ¦
;+---------------------------------------------------+
OPCION1
        movlw   b'00111111'     ;INICIALIZA TODOS LOS
        tris    GPIO            ;PUERTOS EN ALTO Y
        sleep                   ;DESHABILITA EL MODCHIP
;--------------------------------------------------------------------------

;+------------------------------------------------------------------------+
;¦ OPCION 2 (RESET PULSADO DESPUES DE 1 SEG. Y SOLTADO ANTES DE 7,5 SEG.) ¦
;¦ JUEGOS (PSX1 DIRECTOS) Y (PSX2 SIN PROTECCION ANTIMODCHIP CON AR1.3)   ¦
;+------------------------------------------------------------------------+
OPCION2
        bcf     GPIO,1          ;INICIALIZA PUERTO TXSERIE EN ALTO
        bcf     RAM_15,1        ;
        movf    RAM_15,W        ;
tris GPIO ;

        call    PAUSA50MSG      ;PAUSA CADA 100 TRANSMISIONES

        movlw   100             ;100 VECES
        movwf   RAM_0C          ;REPETIRA LA TRANSMISION
ETI_122
        btfsc   GPIO,0          ;SI EN ESTOS MOMENTOS LA BANDEJA DEL
        goto    ETI_04C         ;DVD YA ESTA DENTRO TRANSMITE SCEE

        clrf    RAM_14          ;INICIALIZA PUNTERO A TABLA Y
        call    ENVIASCEE       ;TRANSMITE VIA SERIE 100 VECES 'SCEE'
        call    SUB_04C         ;LUEGO ESPERARA A QUE METAMOS OTRO JUEGO
        goto    ETI_122         ;ANTES DE VOLVER A TRANSMITIR 100 VECES
SUB_04C
ETI_04C
        btfsc   GPIO,0          ;SI EN ESTOS MOMENTOS LA BANDEJA DEL
        goto    ETI_050         ;DVD AUN NO ESTA DENTRO SALE
        decfsz  RAM_0C,F        ;SI YA ESTA DENTRO RETORNA HASTA
        retlw   3               ;TRANSMITIR LAS 100 VECES 'SCEE'

ETI_050 movlw   b'00111111'     ;INICIALIZA TODOS PUERTOS
        tris    GPIO            ;COMO ENTRADAS
ETI_052
        btfss   GPIO,4          ;ESPERA A QUE PULSEMOS LA APERTURA
        goto    ETI_052         ;DE LA BANDEJA DEL DVD

        movlw   250             ;ESPERAMOS UN TIEMPO A LA CONSOLA PARA
        call    PAUSAWX1MSG     ;QUE TERMINE DE ABRIR LA BANDEJA DEL DVD

        btfss   GPIO,4          ;SI LA BANDEJA DEL DVD TODAVIA NO ESTA
        goto    ETI_052         ;ABRIENDOSE REPITE LA OPERACION

ETI_058
        btfsc   GPIO,4          ;SI LA BANDEJA DEL DVD ESTA ABRIENDOSE
        goto    ETI_058         ;SE ASEGURA A QUE SE ABRA DEL TODO

        movlw   24              ;PAUSA DE 6 SEGUNDOS PARA QUE
        movwf   RAM_0B          ;PONGAMOS EL JUEGO EN LA BANDEJA Y
ETI_05C movlw   250             ;PULSEMOS EL BOTON PARA INTRIDUCIRLO
        call    PAUSAWX1MSG     ;EN LA CONSOLA
        decfsz  RAM_0B,F        ;
        goto    ETI_05C         ;

        btfsc   GPIO,0          ;SI LA BANDEJA DEL DVD ESTA TODAVIA FUERA
        goto    ETI_052         ;REPITE LA OPERACION

        goto    OPCION2         ;CUANDO EL DVD YA ESTA DENTRO SALTA OPCION2
                                ;Y COMIENZAN LAS TRANSMISIONES DE 'SCEE'
;--------------------------------------------------------------------------

;+--------------------------------------------------------------------------+
;¦ OPCION 3 (RESET PULSADO DESPUES DE 1 SEG. Y SOLTADO DESPUES DE 7,5 SEG.) ¦
;¦ JUEGOS PSX2 CON PROTECCION ANTIMODCHIP CON AR1.3                         ¦
;+--------------------------------------------------------------------------+
OPCION3
        btfss   GPIO,3          ;ESPERA A QUE SOLTEMOS EL
        goto    OPCION3         ;BOTON DE RESET

        movlw   255             ;INICIALIZA RAM_15 Y TODOS
        movwf   RAM_15          ;LOS PUERTOS
        tris    GPIO            ;EN ALTO

        movlw   80              ;EL MODCHIP FUERZA A LA CONSOLA
        movwf   RAM_0B          ;PARA QUE EXPULSE LA BANDEJA DEL DVD
ETI_132 movlw   b'00100100'     ;                 "
        movwf   GPIO            ;                 "
        movlw   b'11011011'     ;                 "
        tris    GPIO            ;                 "
        movlw   10              ;                 "
        call    PAUSAWX1MSG     ;                 "
        movlw   b'00100000'     ;                 "
        movwf   GPIO            ;                 "
        movlw   b'00011011'     ;                 "
        tris    GPIO            ;                 "
        movlw   10              ;                 "
        call    PAUSAWX1MSG     ;                 "
        decfsz  RAM_0B,F        ;                 "
        goto    ETI_132         ;                 "
        movlw   b'00111111'     ;                 "
        tris    GPIO            ;                 "

        movlw   16              ;PAUSA PARA QUE LA BANDEJA DEL DVD
        movwf   RAM_0B          ;ESTE 4 SEGUNDOS ABIERTA Y NOS DE
ETI_144 movlw   250             ;TIEMPO A PONER EL JUEGO EN ELLA
        call    PAUSAWX1MSG     ;                 "
        decfsz  RAM_0B,F        ;                 "
        goto    ETI_144         ;                 "

        movlw   80              ;EL MODCHIP FUERZA A LA CONSOLA
        movwf   RAM_0B          ;PARA QUE INTRODUZCA LA BANDEJA DEL DVD
ETI_14A movlw   b'00010100'     ;                 "
        movwf   GPIO            ;                 "
        movlw   b'11101011'     ;                 "
        tris    GPIO            ;                 "
        movlw   10              ;                 "
        call    PAUSAWX1MSG     ;                 "
        movlw   b'00010000'     ;                 "
        movwf   GPIO            ;                 "
        movlw   b'11101011'     ;                 "
        tris    GPIO            ;                 "
        movlw   10              ;                 "
        call    PAUSAWX1MSG     ;                 "
        decfsz  RAM_0B,F        ;                 "
        goto    ETI_14A         ;                 "
        movlw   b'00111111'     ;                 "
        tris    GPIO            ;                 "

        goto    OPCION1         ;DESHABILITA AL MODCHIP Y YA PODEMOS
                                ;EJECUTAR EL JUEGO CON EL MENU DEL AR1.3
;--------------------------------------------------------------------------

;+---------------------------------------------------------------------+
;¦ TRANSMITE VIA SERIE 'SCEE' CON 8 BIT DE DATOS Y 2 DE STOP A 250 BPS ¦
;+---------------------------------------------------------------------+
ENVIASCEE
        movwf   RAM_0D          ;SALVA W EN RAM_0D (INUTIL PUES NO LO USA)

        movlw   72              ;72 MILISEGUNDOS DE ESPACIO ENTRE BYTES
        call    PAUSAWX1MSG     ;

        movlw   4               ;ENVIAREMOS 4 BYTES
        movwf   RAM_0E          ;DE LA TABLA
ETI_068
        movf    RAM_14,W        ;LEEMOS 1 BYTE DE
        call    TABLA           ;LA TABLA
        movwf   RAM_13          ;EN RAM_13
        comf    RAM_13,F        ;

        movlw   8               ;ENVIAREMOS 8
        movwf   RAM_0F          ;BITS DE CADA BYTE

        bsf     RAM_15,1        ;ENVIA EL BIT DE START VIA SERIE
        movf    RAM_15,W        ;
tris GPIO ;

        movlw   4               ;4 MILISEGUNDOS DEL ANCHO DEL BIT DE START
        call    PAUSAWX1MSG     ;

ETI_073
        rrf     RAM_13,F        ;ENVIA 1 BIT DEL BYTE VIA SERIE
        movlw   b'11111000'     ;
movwf GPIO ;
        btfsc   STATUS,0        ;
        bsf     RAM_15,1        ;
        btfss   STATUS,0        ;
        bcf     RAM_15,1        ;
        movf    RAM_15,W        ;
tris GPIO ;

        movlw   4               ;4 MILISEGUNDOS DEL ANCHO DEL BIT
        call    PAUSAWX1MSG     ;

        decfsz  RAM_0F,F        ;CONTINUAMOS HASTA
        goto    ETI_073         ;ENVIAR LOS 8 BITS DEL BYTE

        bcf     RAM_15,1        ;ENVIA 2 BITS DE STOP
        movf    RAM_15,W        ;
tris GPIO ;

        movlw   8               ;8 MILISEGUNDOS DEL ANCHO DE
        call    PAUSAWX1MSG     ;LOS 2 BITS DE STOP

        incf    RAM_14,F        ;INCREMENTA PUNTERO DE LA TABLA

        decfsz  RAM_0E,F        ;CONTINUA HASTA
        goto    ETI_068         ;ENVIAR LOS 4 BYTES DE LA TABLA
        retlw   3               ;RETORNA CON W=03H
TABLA   addwf   PCL,F           ;TABLA PARA LA PS2 EUROPEA
        retlw   'S'
        retlw   'C'
        retlw   'E'
        retlw   'E'
;--------------------------------------------------------------------------

;+--------------------------+
;¦ PAUSA DE 50 MILISEGUNDOS ¦
;+--------------------------+
PAUSA50MSG
        movlw   50             
;+------------------------------+
;¦ PAUSA DE (W x 1 MILISEGUNDO) ¦
;+------------------------------+
PAUSAWX1MSG
        movwf   RAM_11         
ETI_042 movlw   199             
        movwf   RAM_12         
ETI_044 nop                     
        clrwdt                 
        decfsz  RAM_12,F       
        goto    ETI_044         
        nop                     
        decfsz  RAM_11,F       
        goto    ETI_042         
        retlw   3               
;--------------------------------------------------------------------------

end



Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re:Errores al compilar en asm el PIC12F509A
« Respuesta #1 en: 18 de Febrero de 2023, 16:28:59 »
Que tal Forma,

Creo que tu problema está directamente relacionado con el MPLABX, ya que este usa el ensamblador del compilador XC8 y desafortunadamente no es compatible con ensamblador original MPASM.
Para compilarlo tendrías de usar la versión antigua del IDE, es decir, el MPLAB para que puedas ensamblar tu código correctamente.
Lo puedes descargar directamente de la página oficial de microchip: https://www.microchip.com/en-us/tools-resources/archives/mplab-ecosystem
La última versión es MPLAB IDE v8.92.

elreypic.


Desconectado Forma

  • PIC10
  • *
  • Mensajes: 8
Re:Errores al compilar en asm el PIC12F509A
« Respuesta #2 en: 18 de Febrero de 2023, 16:38:33 »
Fuerte gracia lo que hicieron.

¿No hay manera de adaptarlo en los nuevos tiempos sin usar lo viejo?

Gracias por la respuesta.

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re:Errores al compilar en asm el PIC12F509A
« Respuesta #3 en: 18 de Febrero de 2023, 17:16:24 »
Sí hay forma, claro que sí.

Aquí te dejo el enlace del documento de Microchip que explica comomigrar del MAPSM to pic-as:

chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://ww1.microchip.com/downloads/en/DeviceDoc/MPASM%20to%20MPLAB%20XC8%20PIC%20Assembler%20Migration%20Guide%2050002973A.pdf

También está un video que te puede ayudar:


elreypic

Desconectado Forma

  • PIC10
  • *
  • Mensajes: 8
Re:Errores al compilar en asm el PIC12F509A
« Respuesta #4 en: 19 de Febrero de 2023, 11:29:44 »
Parece ser que me viene mejor empezar desde cero, ha cambiado todo.

Ya no sacan libros en español como antes sobre el asm de los PIC, todo el mundo migrando a Arduino y Raspberry Pi con lenguaje tipo C/C++ y hasta Python. Una pena.

Gracias por compartir.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1937
    • Sicoy
Re:Errores al compilar en asm el PIC12F509A
« Respuesta #5 en: 19 de Febrero de 2023, 12:11:59 »
Parece ser que me viene mejor empezar desde cero, ha cambiado todo.
Ya no sacan libros en español como antes sobre el asm de los PIC,

Si tu limitante es el castellano, nunca vas a aprender mejores cosas. La mejor información técnica siempre ha estado en Inglés, y no necesitas ser un experto en hablar y escuchar ese idioma. El inglés técnico es bastante sencillo y práctico



Todo el mundo migrando a Arduino...

Arduino es un plataforma para aprendizaje y entretenimiento, un poco complicado que sea para el desarrollo de proyectos profesionales. Puede ser un paso para aprender cosas más avanzadas.

Claro que hay quienes meten una placa de Arduino en una caja plástica y la venden como un producto final, tal vez no es profesional, pero aplica el dicho que me dijo alguien: "Si puedes hacer un producto de calidad, de aspecto elegante y estable (que funciona correctamente), no importa con que lo hagas"


todo el mundo migrando a Raspberry Pi

Raspberry y otros dispositivos similares, son algo parecido a lo que dije de Arduino, es un placa de aprendizaje y de hobbie, pero tienen un limitante o problema que personalmente pienso que encarecería el costo con respecto a un microcontrolador

Al ser un computador/ordenador, no puede apagarse abruptamente, ya que con el tiempo se puede ir dañando la memoria flash y/o corrompiendo el sistema operativo, lo que implica que se debe crear un sistema de respaldo de energía y una rutina o proceso que mida la energía del sistema y cuando esta falle, el hardware entre en modo de apagado seguro (obviamente con el respaldo de energía).

Por lo tanto un proyecto con Raspberry o similares, podría ser mas costoso que un proyecto con un microcontrolador.


con lenguaje tipo C/C++ y hasta Python. Una pena.

También hice muchos proyectos en ensamblador con microcontroladores, y me reusaba a usar un lenguaje de alto nivel como C.

Pero la verdad es que es mucho más práctico y te permite avanzar más rápido en un proyecto.

Para periféricos simples estaría bien usar asm, pero por ejemplo nosotros tenemos un microcontrolador con un cliente y servidor TCP/IP. ¿Te imaginas hacer todo eso en lenguaje ensamblador?

No es imposible, pero mantener, corregir, actualizar el firmware en ensamblador de algo tan complejo es una pérdida de tiempo que se traduce en retrazos en el proyecto y pérdida de dinero.

Puedes combinar ambos lenguajes si lo deseas. Pero cuando ya trabajas en esto de sistemas embebidos, llegas a preciar la utilizad e importancia de usar C y C++. Mientras sigas haciendo cosas sencillas, nunca llegaras a entender la utilidad de esas herramientas.

« Última modificación: 19 de Febrero de 2023, 12:14:52 por DominusDRR »
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado Forma

  • PIC10
  • *
  • Mensajes: 8
Re:Errores al compilar en asm el PIC12F509A
« Respuesta #6 en: 19 de Febrero de 2023, 13:35:56 »
Gracias por las respuestas.