minnesallokering i sram på attiny2313

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
jyrgen
Inlägg: 84
Blev medlem: 11 juli 2006, 20:24:54
Ort: Västerås

minnesallokering i sram på attiny2313

Inlägg av jyrgen »

Hejsan.
Håller på med ett program som skulle behöva en tvådimensionell array som är ungefär 10*40 chars stor. Problemet är ju dock att 10*40=400bytes och sram minnet är 128 bytes i avr:en. Går det att göra detta utan externt minne? Skulle det annars gå att göra 10st 1*40 arrayer som man alternerar mellan i sram när man använder dom? arrayen behöver inte vara global utan behöver endast ligga i main.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Skulle det annars gå att göra 10st 1*40 arrayer som man
> alternerar mellan i sram när man använder dom?

Var ska de andra 9 ligga under tiden ?
johano
Inlägg: 1943
Blev medlem: 22 januari 2008, 10:07:45
Ort: Stockholm

Inlägg av johano »

Behöver du "fulla" chars i arrayen, eller kan du "packa" fler element i samma char?
En 10*40 array av bit:ar skulle ju bara behöva ta upp 50bytes

/johan
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4750
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Inlägg av Swech »

Måste alla 10x40 behållas och vara unika?
Eller kan du som jag tror du menar jobba med 1x40 först,
därefter återanvända din 1x40 array till nästa rad?
Om så är fallet så är det naturligtvis möjligt.

Men beskriv vad det är du skall göra, det låter som att det
måste gå att lösa på ett smidigare sätt...

Swech
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Inlägg av vfr »

Precis! Det beror helt på vad du vill göra och vad det är som skall lagras i arrayen. Är det statiska data så ligger det nog bättre i prommet än i RAM. Är det inte fulla byte så kan det gå att bitpacka. Berätta lite mer!
jyrgen
Inlägg: 84
Blev medlem: 11 juli 2006, 20:24:54
Ort: Västerås

Inlägg av jyrgen »

ok var lite luddig föklaring kanske. Jag vill använda Q-learning och för det behöver man en Q-tabell. Det fungerar sedan så att man ger ett system + poäng om det systemet gör är bra och minus om det systemet gör är dåligt. Jag vill alltså ha 10*40 chars som går att ändra på jämt dvs varje char ska kunna anta alla värden den kan vid alla tidstilfällen.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Jaha, men då så, hur har du tänkt fixa 400 variabler med 128 byte minne ??
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Inlägg av Micke_s »

jyrgen: det går att göra utan extern minne, byt AVR till en med mer ram.
Exempel Atmega88 har 1k ram
Användarvisningsbild
Andax
Inlägg: 4379
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Inlägg av Andax »

Vilka tecken ska varje position kunna anta? Det går ju alltid att packa ihop tecken för flera positioner i en byte.... är det bara + och - räcker ju 50 bytes t.ex.
dangraf
Inlägg: 530
Blev medlem: 9 juni 2003, 15:30:56
Ort: göteborg

Inlägg av dangraf »

ett alternativ är att spara arrayerna i t.ex flash eller eeprom och därefter kompiera över arrayen till ram-minnet så fort du behöver arbeta och ändra på den.
Det kommer gå långsammare att accessa dessa minnen jämfört med ram minnet, men det kanske inte är några problem?

/daniel
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Inlägg av jesse »

Nu vet jag inget om Q-learning , men jag antar att varje char ska kunna anta ett värde mellan 0 och 100. Dvs 7 bitar. Men kanske behövs bit 8 som nån slags flagga under bearbetningen?
Senast redigerad av jesse 7 december 2008, 19:14:33, redigerad totalt 1 gång.
Användarvisningsbild
strombom
Inlägg: 3305
Blev medlem: 27 maj 2003, 10:50:20
Ort: Västra Götaland
Kontakt:

Inlägg av strombom »

Ska din pryl massproduceras? Annars finns det ingen anledning till att snåla med storleken på mikrokontrollern, köp en med massor av minne...
Skriv svar