Beachte auch, daß du für die Strings zwei Induirektionen via pgm_xxx drinne hast (die zeite wohl in deiner out-Routine, die nen Zeiger ins Flash bekommt.
ergibt übrigensCode:void foo (uint8_t i) { ((void(*)(void)) pgm_read_word (& menu[i].Menu_Funkt)) (); }
Code:foo: mov r30,r24 clr r31 ldi r24,3 1: lsl r30 rol r31 dec r24 brne 1b subi r30,lo8(-(menu+6)) sbci r31,hi8(-(menu+6)) /* #APP */ lpm r24, Z+ lpm r25, Z /* #NOAPP */ movw r30,r24 icall ret
Lesezeichen