logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

tablica większa niż pamięć.

skynet_2 07 Sty 2009 03:19 923 3
REKLAMA
  • #1 5962294
    skynet_2
    Poziom 26  
    musze stworzyć tablicę uint8_t 16KB, kiedy mam tylko 2KB pamięci[mega32], programik będzie ultra prosty, kiedy na (PINA&1) będzie zbocze opadające program ma wysłać zmienną z tablicy na PORTC zinkrementować zmienną "i" odpowiadającą numerowi komórki w tablicy, kiedy program wykryje kolejne zbocze na wysłać kolejną zmienną z tablicy itd.

    czy jeżeli podziele te 16KB na 128 części[128B każda] i będe je deklarował w taki sposób
    {
    uint8_t tab[128] = {0,...,127};
    uint8_t i=0;
    while(i<128){
    if(zbocze_opadające){PORTC=tab[i];++i;}
    }
    }
    
    {//tutaj zmniejszam zasięg zmiennej
    uint8_t tab[128] = {0,...,127};
    uint8_t i=0;
    while(i<128){
    if(zbocze_opadające){PORTC=tab[i];++i;}
    }
    }


    to program będzie wykorzystywał tylko 129B pamięci? czy po kilku takich {} pamięć SRAM się skończy.

    program musze napisać na jutro, w celu symulacji pewnego ukladu, normalnie bym go napisał lepiej ale mi się bardzo spieszy.

    Jeżeli nie będzie działać to proszę o wskazanie innych możliwości zrealizowania tego programu.

    Również zastanawiałem się czy można by tą tablicę zapisać w pamięci flash[tej samej gdzie program] i napisać jakąś funkcję która by odczytywała tą zapisaną tablice, zwiększając adres[coś jak czytanie z eepromu]
  • REKLAMA
  • REKLAMA
  • #4 5964439
    skynet_2
    Poziom 26  
    Wielkie dzięki koledzy.
REKLAMA