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
Code:
#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 1. c-File
Code:
#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 };
das 2. c-File
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);
...
...
}
ich hab schon so ziemlich alle varianten versucht:
norm_t* PROGMEM NormArray[];
extern norm_t* PROGMEM NormArray;
extern norm_t* NormArray[];

leider ist probieren nicht immer von Erfolg gekröhnt.