Buenos días,
Tengo una duda existencial.
¿Es posible en la actualidad programar sin los foros?
Acualmente programamos y consultamos mucho foros como este, o foros oficiales como los de Microchip, edaboard, stack oveflow, etc, y esto está bien.
Sin embargo, a veces hay un exceso de información, y también un desorden. Encuentras respuestas que no encajan porque a uno le funcionó pero a ni ti no porque no tienes la misma versión de compilador, etc.
Por lo tanto, quiero programar mirando solo documentación oficial, el manual del compilador, las release notes, etc.
Sin embargo me encuentro con imposibles, por más que leo, por más que sigo el camino oficial hay cosas que te pierdes.
Un ejemplo:
Compilador HITEC C Pro Versión 9.80.
IDE: Mplab X version 1.51
Quiero hacer un delay.
Me voy a Inicio->Todos los Programas->Hitec Software->Hitec C Pro for the PIC 18 MCU Family->User Manual.
Compruebo que el IDE tiene instalado y está usando este compilador.
Por lo tanto yo debería ser capaz de leer la documentación correspondiente, y obtener algo en claro.
Consulto el manual mencionado arriba, y en la página 231 me encuentro este código:
#include <htc.h>
void main (void) {
control |= 0x80;
_delay(10); // delay for 10 cycles
control &= 0x7F;
}
Y aquí la página con la explicación completa:
_DELAY()
Synopsis
#include <htc.h>
void _delay(unsigned long cycles);
Description
This is an inline function that is expanded by the code generator. When called, this routine expands
to an inline assembly delay sequence. The sequence will consist of code that delays for the number
of cycles that is specified as argument. The argument must be a literal constant.
Example
#include <htc.h>
void main (void) {
control |= 0x80;
_delay(10); // delay for 10 cycles
control &= 0x7F;
}
See Also
_delay3()
Lo primero:
Ese código ni siquiera compila. Control no está declarada.
Dos:
Hay macros mucho mejores que __delay(), tal como __delay_ms o __delay_us que conocí gracias a foros.
El compilador las soporta pero no está documentada. No en ese manual.
Luego, en la ayuda del IDE, en HELP, cuando vamos en el menú a HI-TECH PICC and PICC18 Toolchains,
entramos en el ayuda del PIC18, y ahí, ahora sí, están documentadas las funciones __delay_ms y __delay_us.
Como eso me han pasado varias cosas más.
¿No es esto todo un poco fustrante?
¿Porqué no está documentado en el PDF propio del compilador esas macros tan útiles?
¿La documentación del IDE es más actualizada que la del compilador?
Saludos y felices fiestas.