Hola, estoy aprendiendo a programar en C con el compilador XC8 de Microchip ya que programo desde Mac. Tengo dudas en cuanto a la sintaxis ya que según que tutorial o ejemplo sigo... declaran/definen unos comandos u otros y eso me marea mucho.
Uso: MPLAB IDE X, COMPILADOR XC8, LENGUAGE C.
DUDAS:
#include <delays.h> // No lo he usado pero algunos lo ponen.
#include <pic16f84a.h> // Yo uso este Pic.
#include <stdio.h> // El MPLAB IDE X lo crea automáticamente
#include <stdlib.h> // El MPLAB IDE X lo crea automáticamente
#include <xc.h> // Librerías del compilador XC8 creo.
#include <pic.h> // No lo he usado pero algunos lo ponen.
Me podéis explicar la necesidad de poner estos includes?? Según donde miro lo ponen o no (Siempre hablando del XC8). Hay algún orden a tener en cuenta?
__CONFIG (FOSC_XT & WDTE_OFF & CP_OFF & PWRTE_OFF);
o
#pragma config FOSC=XT, WDTE=ON, PWRTE=OFF, CP=OFF
Lo mismo... según que programas/tutoriales usan __CONFIG o #pragma, en que casos o con que criterio se usa uno u otro y con __CONFIG cual es la sintaxis correcta de los Bits de configuración? Para el 16F84A según el datasheet sólo hay estos 4 bits, así que entiendo que no hay nada más que configurar ahí, cierto? Importa el orden de configuración de los Bits? el MPLAB me indica error en la sintaxis usando __CONFIG.
while (1)
el "1" que significa? Loop infinito? y cuando ponen "TRUE"?. He de decir que aún no me he leído el comando while aunque se de que va.
__delay_ms_
Porque el editor del MPLAB me lo subraya en rojo??? aún asi compila bien y se programa el chip, funcionando OK (encender y apagar un led).
return;
Hay que ponerlo? según donde miro no lo ponen.
Finalmente me gustaría que me dijérais que compiladores son mejor en su versión Free; los de Microchip o los de Hi-Tech?
Os adjunto una captura de mi primer programa en base al cual tengo las dudas (encender y apagar un led), el programa funciona OK en el pic. Os agradecería enormemente que comentárais el programa: que me falta... que me sobra... que es recomendable... cuestiones a tener en cuenta... Si hay formas más correctas... si hablo con propiedad en los comentarios... etc.
Si no se ve la imagen haced botón derecho ver imagen.
Gracias por la atención, Saludos!!
Uso: MPLAB IDE X, COMPILADOR XC8, LENGUAGE C.
DUDAS:
#include <delays.h> // No lo he usado pero algunos lo ponen.
#include <pic16f84a.h> // Yo uso este Pic.
#include <stdio.h> // El MPLAB IDE X lo crea automáticamente
#include <stdlib.h> // El MPLAB IDE X lo crea automáticamente
#include <xc.h> // Librerías del compilador XC8 creo.
#include <pic.h> // No lo he usado pero algunos lo ponen.
Me podéis explicar la necesidad de poner estos includes?? Según donde miro lo ponen o no (Siempre hablando del XC8). Hay algún orden a tener en cuenta?
__CONFIG (FOSC_XT & WDTE_OFF & CP_OFF & PWRTE_OFF);
o
#pragma config FOSC=XT, WDTE=ON, PWRTE=OFF, CP=OFF
Lo mismo... según que programas/tutoriales usan __CONFIG o #pragma, en que casos o con que criterio se usa uno u otro y con __CONFIG cual es la sintaxis correcta de los Bits de configuración? Para el 16F84A según el datasheet sólo hay estos 4 bits, así que entiendo que no hay nada más que configurar ahí, cierto? Importa el orden de configuración de los Bits? el MPLAB me indica error en la sintaxis usando __CONFIG.
while (1)
el "1" que significa? Loop infinito? y cuando ponen "TRUE"?. He de decir que aún no me he leído el comando while aunque se de que va.
__delay_ms_
Porque el editor del MPLAB me lo subraya en rojo??? aún asi compila bien y se programa el chip, funcionando OK (encender y apagar un led).
return;
Hay que ponerlo? según donde miro no lo ponen.
Finalmente me gustaría que me dijérais que compiladores son mejor en su versión Free; los de Microchip o los de Hi-Tech?
Os adjunto una captura de mi primer programa en base al cual tengo las dudas (encender y apagar un led), el programa funciona OK en el pic. Os agradecería enormemente que comentárais el programa: que me falta... que me sobra... que es recomendable... cuestiones a tener en cuenta... Si hay formas más correctas... si hablo con propiedad en los comentarios... etc.
![]](/proxy.php?image=http%3A%2F%2Fimageshack.us%2Fphoto%2Fmy-images%2F29%2Fcapturadepantalla201210by.png%2F%5D&hash=cd5e321984259cc5de900b0cc8a2dd9f)
Si no se ve la imagen haced botón derecho ver imagen.
Gracias por la atención, Saludos!!
Última edición: