Pekare till constant struct i flash (PIC) XC8
Postat: 4 december 2012, 22:58:36
Detta problemet har jag:
Använder mig utav pic16f648A och XC8 kompilatorn
har denna struct deklarerad och initierad
Vilket omj ag har tolkat XC8 manualen rätt kommer att placera structen i flash minnet.
parameters.c
parameters.h
Om jag nu skulle vilja läsa denna stuct med hjälp av en pekare som jag för övrigt är kass på så skulle jag vilja göra typ såhär:
i annan c fil:
Hade då tänk mig att få första biten i FLASH_parameter.user_tag_0 sparad i variabeln byte.
Men detta får jag inte att fungera. dvs om jag skickar ut "byte" på uarten läser jag inte av "0x00" direkt.
Några tips på hur man kan lösa detta för detta fungerar inte för mig
Känns som att jag missar något basic här
Är fruktansvärt dålig på pekare också så det kan ju vara en förklaring.....
/Slatte
Använder mig utav pic16f648A och XC8 kompilatorn
har denna struct deklarerad och initierad
Vilket omj ag har tolkat XC8 manualen rätt kommer att placera structen i flash minnet.
parameters.c
Kod: Markera allt
const struct parameters FLASH_parameter =
{
0, // uint32
0, // uint32
0, // uint32
0, // uint32
0, // uint32
0, // uint32
0, // uint32
0, // uint32
0, // uint32
0, // uint32
0, // uint32
0, // uint32
0, // uint32
0, // uint8
0, // uint8
0, // uint8
{0,0,0,0,0,0,0,0,0,0}, // uint8 error_codes[10]
0
};
parameters.h
Kod: Markera allt
struct parameters
{
uint32 user_tag_0;
uint32 user_tag_1;
uint32 user_tag_2;
uint32 user_tag_3;
uint32 user_tag_4;
uint32 user_tag_5;
uint32 user_tag_6;
uint32 user_tag_7;
uint32 user_tag_8;
uint32 user_tag_9;
uint32 a;
uint32 b;
uint32 c;
uint8 bah;
uint8 bah_1;
uint8 koko;
uint8 koko;
uint32 time;
extern const struct parameters FLASH_parameter;
};
i annan c fil:
Kod: Markera allt
uint8 *parameter_in_flash_p;
uint8 byte;
parameter_in_flash_p = &FLASH_parameter;
byte = *parameter_in_flash_p;
Men detta får jag inte att fungera. dvs om jag skickar ut "byte" på uarten läser jag inte av "0x00" direkt.
Några tips på hur man kan lösa detta för detta fungerar inte för mig

Känns som att jag missar något basic här

Är fruktansvärt dålig på pekare också så det kan ju vara en förklaring.....
/Slatte