Bonjour
Je suis en train de programmer un PIC18F4525 en C avec MPLAB v8.80.
Et j’ai un problème totalement bizarre. J’ai fais un programme qui fait des calculs et donne un résultat sur un afficheur 7 segment. Ce programme marche nickel !
MAIS quand je veux rajouter un tableau comme ceci :
unsigned char TAB[16][16] ;
Et que ensuite j’affecte une valeur à l’une de ses cases, comme ceci :
TAB[2][2] = 1 ; // Et cette instruction là change tout !
--> L’afficheur m’affiche complètement autre chose.
Pourtant ce tableau n’a rien avoir avec la première partie du programme. Il sert à faire autre chose!
Je me suis dit que ce tableau prenait peut être trop de ram dans le pic et écrase donc d’autres donnée mais MPLAB me le signale seulement quand je rentre un tableau bien plus grand du genre unsigned char TAB[30][30] ;, pas avec 16*16 cases.
J’ai aussi quelques Advisory qui parlent justement de RAM mais je ne comprends pas ce que c’est :
MerciCode:Microchip MPLAB XC8 C Compiler V1.12 Copyright (C) 2012 Microchip Technology Inc. License type: Node Configuration Advisory[1233] Employing 18F4525 errata work-arounds: Advisory[1234] * Corrupted fast interrupt shadow registers Advisory[1234] * Data in RAM location can be corrupted if async. reset occurs during write Warning [1273] ; . Omniscient Code Generation not available in Free mode Memory Summary: Program space used 2DC6h ( 11718) of C000h bytes ( 23.8%) Data space used 442h ( 1090) of F80h bytes ( 27.5%) Configuration bits used 4h ( 4) of 7h words ( 57.1%) EEPROM space used 0h ( 0) of 400h bytes ( 0.0%) ID Location space used 0h ( 0) of 8h nibbles ( 0.0%) Running this compiler in PRO mode, with Omniscient Code Generation enabled, often produces code which is 60% smaller and at least 400% faster than in Free mode. The MPLAB XC8 PRO compiler output for this code could be 6871 bytes smaller and run 4 times faster. See http://www.microchip.com for more information.
-----