Autor Tema: Código ensamblador en C.  (Leído 2647 veces)

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

Desconectado ggp0

  • PIC10
  • *
  • Mensajes: 16
Código ensamblador en C.
« en: 21 de Noviembre de 2007, 16:36:36 »
Hola a todos;

Estoy intentando compilar un pequeño bloque de ensamblador dentro de un código en C, para compilar uso MPLAB con el HiTech PicC y me da un error, los SFR no están definidos, si no incluyo los nombres de los SFR en el código funciona correctamente pero no es muy práctico.
He leido el manual y dice que es necesario incluir una cabecera donde los SFR están definidos "htc.h", este fichero yo no lo tengo, pero en su lugar he incluido el "pic.h" que llama al "pic1687x.h" donde si están definidos los SFR del pic que estoy empleando pero el error sigue apareciendo.
Me da la impresión que me falta insertar algún tipo de palabra de configuración __CONFIG(), pero no lo se.
La verdad es que ando un poco perdido y agradecería cualquier ayuda.


A continuación muestro el pequeño ejemplo que estoy probando:
Código: [Seleccionar]
#include <pic.h>
#include <pic1687x.h>

unsigned char Retardos;
unsigned char Repite_1s;

void main(void)

#asm
Delay_aux1
bcf INTCON,2
movlw 0xD9
movwf TMR0
#endasm
}

Saludos.
Germán.

Desconectado dhmejia

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 260
Re: Código ensamblador en C.
« Respuesta #1 en: 21 de Noviembre de 2007, 19:30:10 »
Cual es el error que te esta dando?

Si tienes configurado el device en el MPlab basta con que tengas incluido el archivo pic.h, el otro archivo no hace falta.
No recuerdo muy bien porque uso muy poco ensamblador dentro de C pero creo que para usar ensamblador en el picc de Hi-Tech debes colocar un guion bajo antes del nombre del registro,para este caso no seria INTCON sino _INTCON.  Prueba a ver que tal te va.

PD: No veo la necesidad de usar ensamblador en el codigo que tienes.

saludos,
Pereira - Colombia

Desconectado ggp0

  • PIC10
  • *
  • Mensajes: 16
Re: Código ensamblador en C.
« Respuesta #2 en: 22 de Noviembre de 2007, 05:45:20 »
El error que me daba era:

Error[000]  0 : undefined symbol INTCON
Error[000]  0 : undefined symbol TMR0

Como bien decías la solución estaba en añadir un guión bajo.
Efectivamente, en el código que mostraba no hacía falta ensamblador pero ten en cuenta que simplemente pretendía probar como se inserta código ensamblador en C y detectar los detalles como lo del guión, por lo que cuanto más simple mejor.

Muchas gracias por tu acertada respuesta.

Salud.

Desconectado dhmejia

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 260
Re: Código ensamblador en C.
« Respuesta #3 en: 22 de Noviembre de 2007, 09:34:48 »
ok, me alegra que hayas solucionado el problema.

saludos,
Pereira - Colombia


 

anything