Votre croquis utilise 90% de la mémoire, mais laquelle ? Je pense qu'il doit s'agir de la SRAM car c'est bien elle qui est la plus limitative.
Quand on veut utiliser un microcontrôleur, on doit apprendre à économiser l'espace mémoire SRAM et pour cela, il faut prendre les bons réflexes dès le début :
- déclarer les variables selon le type qui leur correspond. Par exemple, pas besoin de 4 octets (unsigned long) pour déclarer un numéro de broche car un seul octet (byte) suffit.
- ensuite, déclarer comme const tout ce qui est constant
- utiliser les #define au lieu de variables
- enfin, mettre certaines données constantes en mémoire flash, notamment les chaînes de caractères ou les tableaux qui prennent de la place, beaucoup de place.
Pour économiser l'espace mémoire programme (Flash), on peut réfléchir à la façon dont on code ; cela prend plus ou moins de place.
Par exemple, mais réservé à ceux qui ont de l'expérience, on peut pour compacter un code utiliser l'assembleur, mais le travail à fournir doit en valoir la chandelle car là, il faut tout prévoir par soi-même, ce qui demande une grande expertise. Par exemple, le programme Blink fourni en exemple dans l'IDE, utilise 924 octets de flash. J'ai écrit un programme qui n'en utilise que 646 en manipulant directement les registres, puis un programme en assembleur qui n'en utilise que 474 ! C'était juste pour me rendre compte, mais je ne me vois pas écrire tout en assembleur des programmes plus sophistiqués comme on en publie dans LOCODUINO.
Le succès de l'IDE vient justement du fait qu'il simplifie la programmation alors on ne va pas revenir en arrière au début des PIC et de leur programmation avec MPLAB !