Autor Tema: Lenguaje C general para microcontroladores  (Leído 1132 veces)

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

Desconectado chicodita03

  • PIC10
  • *
  • Mensajes: 9
Lenguaje C general para microcontroladores
« en: 01 de Noviembre de 2016, 17:11:35 »
Buen día para todos.
Estoy trabajando en la creación de un intérprete de bloques para micro-controladores (algo así como App Inventor, pero para PIC's) y en principio este va a estar destinado a devolver el código en lenguaje C para PICC y mikroC. En estos días se me ocurrió la idea de que la aplicación permitiera descargar un archivo .c que pueda ser compilado en cualquier compilador, es esto posible?

Se que habría conflictos con las funciones especificas de cada compilador, por ejemplo, para poner un valor en el puerto
PICC
output_x(valor);
mikroC
PORTx = valor;

Por tanto estaba pensando en utilizar el identificador #byte y así manejar el registro del microcontrolador (P16F877A), pero no sé si este es solo válido en PICC y tampoco sé que otros problemas se puedan presentar queriendo devolver un lenguaje C para todo compilador...estoy un tanto enredado.

Agradezco mucho la información y ayuda que me puedan brindar

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Lenguaje C general para microcontroladores
« Respuesta #1 en: 01 de Noviembre de 2016, 18:00:39 »
Citar
En estos días se me ocurrió la idea de que la aplicación permitiera descargar un archivo .c que pueda ser compilado en cualquier compilador, es esto posible?

Es posible , aunque engorroso y no se si vale la pena realmente, mas prestar servicio a VARIOS compiladores. Ejemplo... Suponete que pones un bloque de UART.

En CCS deberias:

Agregar una directiva USE RS232 al comienzo del C con los valores.
Si usa interrupcion, es crear la funcion de interrupcion

En mikroC que imagino que es parecido a XC8, seria:

- En la seccion de setup, poner la funcion de apertura de la UART y calcular si es necesario algun registro.
- Agregar un if en la interrupcion ( ya que debe ser comun a todos como en XC8 )

Luego tenes las diferencias de variables..

int en CCS es de 8 bits. mikroC no se como se maneja con esto, pero XC8 un int es de 16bits.
Podrias usar el stdint.h y stdbool.h , asi te manejas con uint8_t, uint16_t, y no tenes esos problemas.

En fin... C es C. el problema viene cuando entran funciones/preprocesadores como los que nombras ( #byte, #use, #fast_io )
Podes encontrar TODOS esos en el manual de CCS, seria como imprimir ciertas cosas segun el compilador.


Desconectado retovil

  • PIC10
  • *
  • Mensajes: 43
Re:Lenguaje C general para microcontroladores
« Respuesta #2 en: 06 de Noviembre de 2016, 22:22:05 »
Por lo que se hay uno echo en la universidad de Salta ya hace unos cuantos años ,pero nunca pude saber como se llama,  ;-) orgullo argentino.Aunque sea una demo para probarlo.


 

anything