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
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]
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]