Daten in den Flash Speicher schreiben

OP #3321059
Hallo,

für meine 8x8 LED-Matrix möchte ich 26 Arrays speichern in denen ich das 
Alphabet abbilden kann.

Beispiel:

unsigned char testbildA[64]={
    0,1,1,1,1,1,0,0,
    0,1,0,0,0,0,1,0,
    0,1,0,0,0,0,1,0,
    0,1,0,0,0,0,1,0,
    0,1,1,1,1,1,1,0,
    0,1,0,0,0,0,1,0,
    0,1,0,0,0,0,1,0,
    0,1,0,0,0,0,1,0
}

für die Darstellung eines A's.

Ich will das ganze mit nem Attiny 2313 realisieren. Würde ich nun 26 
Variablen speichern würde das ganz locker mal das Ram auf eine 
Auslastung von 1000% bringen. Geh also nicht.  Nun zur eigentlichen 
Frage: ist es möglich neben dem Programmcode Daten in den Flash Speicher 
zu schreiben? Dieser bietet ja am meisten Speicherplatz. Erst hatte ich 
mir überlegt das ganze in den EEprom zu schreiben. Da habe ich aber auch 
nur 128 Bytes insgesamt. Nicht ausreichend.

Viele Grüße Dennis
#3321075
Dennis Assenmacher schrieb:
> MWS schrieb:
>> Das Schlüsselwort lautet Progmem, außerem ist's nicht sinnvoll für
>> ein
>> Bit ein Byte zu verschwenden.
>
> Sehe ich auch so, jedoch gibt es meines Wissens kein boolean Datentyp.

Und was hindert dich daran, selber 8 Bits in ein Byte zusammenzufassen?
1
unsigned char testbildA[8]={
2
    0b01111100,
3
    0b01000010,
4
    0b01000010,
5
    0b01000010,
6
    0b01111110,
7
    0b01000010,
8
    0b01000010,
9
    0b01000010
10
};
OP #3321079
Stefan Ernst schrieb:
> Und was hindert dich daran, selber 8 Bits in ein Byte zusammenzufassen?
> unsigned char testbildA[8]={
>     0b01111100,
>     0b01000010,
>     0b01000010,
>     0b01000010,
>     0b01111110,
>     0b01000010,
>     0b01000010,
>     0b01000010
> };

Nicht schlecht. Merci! Wobei ich da ein Problem habe durch die einzelnen 
Bits zu iterieren. Wenn ich sie darstellen will.
Gast #3321117
Dennis Assenmacher schrieb:
> Stefan Ernst schrieb:
>> Und was hindert dich daran, selber 8 Bits in ein Byte zusammenzufassen?
>> unsigned char testbildA[8]={
>>     0b01111100,
>>     0b01000010,
>>     0b01000010,
>>     0b01000010,
>>     0b01111110,
>>     0b01000010,
>>     0b01000010,
>>     0b01000010
>> };
>
> Nicht schlecht. Merci! Wobei ich da ein Problem habe durch die einzelnen
> Bits zu iterieren. Wenn ich sie darstellen will.

Wieso? Wenn du die Spaltenleitungen der Matrix "geordnet" an einen 
Byteport anschließt, brauchst du dich um einzelne Bits überhaupt nicht 
zu kümmern. Du holst einfach ein Byte aus der Matrix und gibst es 1:1 
auf den Spaltenport aus und fertig. Das ist die mit weitem Abstand 
effizienteste Lösung für Multiplexing.

Nur wenn das wegen Pinmangel nicht möglich ist, muß man überhaupt mit 
einzelnen Bits jonglieren. Und natürlich geht auch das, es ist bloß 
wesentlich ineffizienter.
OP #3321126
c-hater schrieb:
> Wieso? Wenn du die Spaltenleitungen der Matrix "geordnet" an einen
> Byteport anschließt, brauchst du dich um einzelne Bits überhaupt nicht
> zu kümmern. Du holst einfach ein Byte aus der Matrix und gibst es 1:1
> auf den Spaltenport aus und fertig. Das ist die mit weitem Abstand
> effizienteste Lösung für Multiplexing.
>
> Nur wenn das wegen Pinmangel nicht möglich ist, muß man überhaupt mit
> einzelnen Bits jonglieren. Und natürlich geht auch das, es ist bloß
> wesentlich ineffizienter.

Die Matrix ist schon fertig und ich steuere die Spalten mit nem 
Schieberegister an und die Zeilen mit nem Multiplexer. Fürs 
Schieberegister brauche ich dann halt den Zugriff auf die einzelnen Bits

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.