Lo digo porque tengo un par de hilos sin responder XD
Es el mayor problema que podes tener, pero tampoco tenes que volverte loco esperando un codigo perfecto para ese PIC, usualmente si no encontras para tu PIC exacto, buscas al menos el mas parecido. Ejemplo los PIC18F su arquitectura son todos similares, si buscas un bootloader por USB, entonces busca cualquier bootloader para un PIC18F que posea USB, Microchip da ejemplos, a lo sumo deberas cambiar la parte del hardware, es cierto que al principio confunde la cantidad de archivos, ya que para hacerlo mas simple se separa todos los archivos.
Para que sea reutilizable el mismo codigo para varios PICs se separan tambien aquellos archivos que manejan al micro y se dejan los demas archivos que controlan unicamente en puro C sin manejo de registros. De esa forma vos modificando unicamente el archivo de hardware ya podes tener tu codigo funcionando.
Lo haces, y probas que compile, si te da error entonces trabajas sobre esos errores. Al menos es la unica forma de trabajo que conozco.
así que para ir colgado deberían ser al menos 53-55 pines. Además debe tener al menos 3 timers
Por ahi estas sobre simplificando las cosas, el aumentar la cantidad de pines hace que sea mas complejo el routeo, pero mas simple la programacion, por otra parte podrias usar registro de desplazamiento, expansores de puertos, complicar un poco mas la programacion y para salidas con poca velocidad te serviria bastante, ya que con 3 salidas podes manejar muchas salidas. Reduciendo el micro.
Igual los Timers, no se para que los usas, pero con 1 solo timer por ejemplo cada 1ms, podrias usarlo para hacer 1s, 10s, 50ms, etc. Como no conozco que es lo que estas intentando hacer, no te puedo decir si es estrictamente necesario.
Haciendo una criba con la tabla de PICs de microchip, he llegado a la conclusión de que el 18F87J10 es el que más se adapta por características-precio, aunque no se si es un pic "raro".
Raro, son todos raros, Todos los PIC18F comparten la misma arquitectura (forma de manejarse con la memoria, interrupciones,etc) asi que en si en esa parte son todos iguales, y lo que cambia son la cantidad de modulos, cantidad de memoria, y se intenta mantener el nombre de los registros. Lo que si cambia son los pines donde tenes los modulos, y es por eso que se necesita esa separacion en los archivos de hardware.
------------------------------------------
No todos usan lo que vayas a necesitar pero si tenes una problema, podes presentar un codigo minimo en que ocurra, y los errores que te dan. Incluso un modo de debugear es realizar lo minimo posible y luego tratar de incorporarlo a el trabajo que estes haciendo, para no tratar de desarrollar todo junto de golpe.
¿ Porque un proyecto minimo ? Se pide minimo porque muchas veces ocurre que alguien te entrega TODO el programa, lo cual es demasiada perdida de tiempo, el que sea minimo tambien hace que no tengas que preocuparte de todo lo otro, y concentrarte en el problema.
Otro problema que suele ocurrir es cuando te entregan solo una seccion de codigo y no todo completo. Ya que el problema puede estar en otra parte del codigo.
Creo que son unos lineamientos general.
Pero como consejo, si queres probar algo, hace un proyecto aparte y dedicado a eso nomas.