Hi,
tausend Dank. =D>
Das geht schon mal.
Aber ich weiß auch warum es nicht ging. Ich weiß nicht wie man eine Array in einem anderen c-File bekannt macht.
das h-File
das 1. c-FileCode:#ifndef __ATTR_PROGMEM__ #define __ATTR_PROGMEM__ __attribute__((__progmem__)) #endif #ifndef PROGMEM #define PROGMEM __ATTR_PROGMEM__ #endif typedef struct PROGMEM Norm { prog_U8 faktor; prog_U8 decimal; const prog_S8 sNormUnit[NORM_UNIT_MAXLEN]; const prog_S8 sNormName[NORM_NAME_MAXLEN]; }norm_t;
das 2. c-FileCode:#include <avr/io.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <avr/pgmspace.h> include h-file /*** ---- Normalization ------------- Faktor Decimal Unit Name ------ ***/ norm_t Norm_Voltage1 = { 1, 0, {"V"}, {"VOLTAGE 1"} }; norm_t Norm_Voltage2 = { 1, 3, {"mV"}, {"VOLTAGE 2"} }; norm_t* PROGMEM NormArray[] = { (norm_t*)&Norm_Voltage1, (norm_t*)&Norm_Voltage2 };
ich hab schon so ziemlich alle varianten versucht:Code:#include <avr/io.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <avr/pgmspace.h> include h-file extern norm_t* PROGMEM NormArray[]; void foo(void) { U8 normAmound = sizeof(NormArray); ... ... }
norm_t* PROGMEM NormArray[];
extern norm_t* PROGMEM NormArray;
extern norm_t* NormArray[];
leider ist probieren nicht immer von Erfolg gekröhnt.







Zitieren

Lesezeichen