Hallo,
und hier auch nochmal, vielleicht hilft es weiter,
allerdings schiebe ich die HEX Werte per SPI raus :
---------------------------------------------------------------------
#include <avr/pgmspace.h>
volatile unsigned int pos;
volatile unsigned int pos_a;
volatile prog_char
display_1[]={0xAA,0x2A,0x0A,0x02,0x00,0x00,0x00,0x00,0x00,0x00,//10
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //20
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //30
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //40
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //50
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x0A,0x2A, //60
0x00, //361
};
void Anzeige(void)
{
if( pos < 361 )
{
SPDR = PRG_RDB(display_1 + pos_a); // Daten aus Flash per SPI
senden
while (!(SPSR & (1<<SPIF))); // Warten bis Übertragung beendet
Oder auch dieses : ------------------------------------------------
#include <avr/io.h>
#include <avr/iom8.h>
#include <avr/pgmspace.h>
// Eine Möglichkeit Daten in den Programmspeicher zu legen
prog_char Tabelle_1[]={0x30,0x31,0x32,0x33,0x34,0x35};
prog_char Tabelle_2[]={0x41,0x42,0x43,0x44,0x45};
// Noch eine Möglichkeit
const char Text_1[]PROGMEM="TextText 11111";
const char Text_2[]PROGMEM="TestText 22222";
void main(void);
//-------------------------------------
void main(void)
{
char i;
for(i=0; i<5; i++)
{
// Lesen (Daten der Tabelle_1 plus Offset (i) )
// und PortB Zuweisen
PORTB = PRG_RDB(Tabelle_1 + i);
// Tabelle_2 nach PortC
PORTC = PRG_RDB(Tabelle_2 + i);
}
for(i=0; i<5; i++)
{
// Auf PortD werden 5 Zeichen vom Text_1 ausgegeben
PORTD = PRG_RDB(Text_1 + i);
}
}
------------------------------------------------------------------
Gruß Toby