Bonjour
J'utilise le compilateur C Microchip C18 pour PIC et je cherche stocker une chaine ascii appelée 'hour_event' dans une eeprom avec la fonction suivante :
Visiblement la fonction XEEWrite attend un unsigned char, cependant je 'hour event' est déclaré avec char, que dois je faire pour transformer
char hour_event[3]; en unsigned char ?
Actuellement le compilateur m'indique un Warning : suspicious pointer conversion ...
Est ce qu'un unsigned char c'est BYTE ?
Je vous remercie de votre aide,
Mon code est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 /****************************************************************************** * Function: XEE_RESULT XEEWrite(unsigned char val) * PreCondition: XEEInit() && XEEBeginWrite() are already called. * Input: val - Byte to be written * Output: XEE_SUCCESS * Side Effects: None * Overview: Adds a byte to the current page to be writen when * XEEEndWrite() is called. * Note: Page boundary cannot be exceeded or the byte * to be written will be looped back to the * beginning of the page. ******************************************************************************/ XEE_RESULT XE0Write(unsigned char val, unsigned char EEpromNumber) { *EEPROMBufferPtr++ = val; if( EEPROMBufferPtr == EEPROMBuffer + EEPROM_BUFFER_SIZE ) { DoWrite(EEpromNumber); } return XEE_SUCCESS; }
Déclaration en tête de programme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 char hour_event[3]; char eeprom_hour[3] = {'-'};
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 XE2BeginWrite(EEPROM_CONTROL, 0x000000); XE2Write(hour_event); XE2EndWrite(); // Lit l'EEPROM n°2 à l'adresse location 0x000000 et copies le contenu dans un buffer appelé "eeprom_hour" XE2ReadArray(0, 0x000000, eeprom_hour, 0x02); eeprom_hour[3] = 0; // Ajoute un "0" en fin de chaine pour pouvoir utiliser la fonction httpgetvar
Partager