Bonjour,
j'utilise actuellement un PIC18F6722, et j'utilise le compilateur MCC18...
A un moment, dans le déroulement de mon programme, j'effectue une écriture dans l'EEPROM (variable déclarée en tant que unsigned short int)... mais j'ai ce Warning à la fin de la compilation:
Warning [2054] suspicious pointer conversion
L'erreur se trouve à cette ligne ci:
Voila le code de la fonction:Code:SaveIntoEEPROM (0x060,sizeof(Coef_Debitmetre),(unsigned char*)&Coef_Debitmetre);
Et voici le code de la fonction writeEEPROM:Code:void SaveIntoEEPROM (unsigned short addr, unsigned char *ptr, unsigned char dataLen) { while (dataLen--) { writeEEPROM ( addr++, *ptr++); } }
Ce qui est étrange, c'est que j'ai déjà utilisé cette routine, et je n'ai jamais eu de Warning ou erreur!!!!Code:void writeEEPROM ( unsigned short addr, unsigned char data) { static unsigned char GIE_Status = 0; EEADR=(addr&0x00FF); // Extraction des 8 bits faible de addr et les placent dans EEADR EEADRH=((addr>>8)&0x0003); // Decalage des 8 bits forts de addr/ et extraction des 2 bits faibles et les placent dans EEADRH EEDATA = data; // Data to be written in EEPROM EECON1bits.EEPGD = 0; // Access data EEPROM memory EECON1bits.CFGS = 0; // Access Flash program or data EEPROM memory EECON1bits.WREN = 1; // Allows write cycles to Flash program/data EEPROM GIE_Status = INTCONbits.GIE; //Save global interrupt enable bit INTCONbits.GIE=0; //Disable global interrupts EECON2 = 0x55; // Required sequence to start write cycle EECON2 = 0xAA; // Required sequence to start write cycle EECON1bits.WR = 1; // Initiates a data EEPROM erase/write cycle while(EECON1bits.WR); // Wait for completion of write sequence INTCONbits.GIE=GIE_Status; //Restore the original global interrupt status PIR2bits.EEIF = 0; //The write operation is not complete or has not been started EECON1bits.WREN = 0; //Inhibits write cycles to Flash program/data EEPROM }
Je vous remercie d'avance...
Bonne fin de journée à tous!
-----