Witam. Przy odczycie początkowych wartosci tablicy "cyfry" zamiast oczekiawanego wyniku ukazują mi się jakieś śmieci tabliczka po skompilowaniu zajmuje około 1KB w programie domyślam się ze ta tablica zajmuje za dużo miejsca w pamięci operacyjnej ale nie jestem pewny w każdym razie po jej obcięciu nie ma tego problemu , przy okazji może ktoś mi podpowie jak skompensować taką tablice?
Poprawiłem tytuł - Regulamin. [c_p]
int licznik = 0 ;
int i=0;
int y=0;
int x=0;
int z=0;
int cyfry[10][11][5]={
{{0,0,1,0,0},{0,1,0,1,0},{0,1,0,1,0},{1,0,0,0,1},{1,0,0,0,1},{1,0,0,0,1},{1,0,0,0,1},{1,0,0,0,1},{0,1,0,1,0},{0,1,0,1,0},{0,0,1,0,0}},
{{0,0,1,0,0},{0,1,1,0,0},{1,0,1,0,0},{1,0,1,0,0},{0,0,1,0,0},{0,0,1,0,0},{0,0,1,0,0},{0,0,1,0,0},{0,0,1,0,0},{0,0,1,0,0},{1,1,1,1,0}},
{{0,0,1,0,0},{0,1,0,1,0},{1,0,0,1,0},{0,0,0,1,0},{0,0,0,1,0},{0,0,0,1,0},{0,0,0,1,0},{0,0,1,0,0},{0,1,0,0,0},{1,0,0,0,0},{1,1,1,1,0}},
{{0,0,1,0,0},{0,1,0,1,0},{1,0,0,0,1},{1,0,0,0,1},{0,0,0,0,1},{0,0,0,1,0},{0,0,0,0,1},{1,0,0,0,1},{1,0,0,0,1},{0,1,0,1,0},{0,0,1,0,0}},
{{0,0,0,1,0},{0,0,0,1,0},{0,0,1,0,0},{0,1,0,1,0},{0,1,0,1,0},{1,1,1,1,1},{0,0,0,1,0},{0,0,0,1,0},{0,0,0,1,0},{0,0,0,1,0},{0,0,0,1,0}},
{{1,1,1,1,1},{1,0,0,0,0},{1,0,0,0,0},{0,1,0,0,0},{0,0,1,0,0},{0,0,0,1,0},{0,0,0,0,1},{1,0,0,0,1},{1,0,0,0,1},{0,1,0,1,0},{0,0,1,0,0}},
{{0,0,1,0,0},{0,1,0,0,0},{1,0,0,0,0},{1,0,1,0,0},{1,0,0,1,0},{1,0,0,0,1},{1,0,0,0,1},{1,0,0,0,1},{1,0,0,0,1},{0,1,0,1,0},{0,0,1,0,0}},
{{1,1,1,1,1},{0,0,0,0,1},{0,0,0,0,1},{0,0,0,1,0},{0,0,0,1,0},{0,0,1,0,0},{0,0,1,0,0},{0,1,0,0,0},{0,1,0,0,0},{1,0,0,0,0},{1,0,0,0,0}},
{{0,0,1,0,0},{0,1,0,1,0},{1,0,0,0,1},{1,0,0,0,1},{1,0,0,0,1},{0,1,1,1,0},{1,0,0,0,1},{1,0,0,0,1},{1,0,0,0,1},{0,1,0,1,0},{0,0,1,0,0}},
{{0,0,1,0,0},{0,1,0,1,0},{0,1,0,1,0},{1,0,0,0,1},{1,0,0,0,1},{0,1,1,1,1},{0,0,0,1,1},{0,0,0,1,1},{0,0,1,1,0},{0,1,1,0,0},{1,1,0,0,0}}};
ISR (INT1_vect)
//SIGNAL (SIG_INTERRUPT1)
{
PORTB&=~_BV(0);
licznik++;
if(licznik == 120+y)
{
_delay_loop_2((55+10));
for(i=0;i<5;i++){
if (cyfry[z][y][i]==1){PORTB|=_BV(0);}else{PORTB&=~_BV(0);}
}
PORTB&=~_BV(0);
y++;if(y==12){y=0;}
}
}
ISR (INT0_vect)
//SIGNAL (SIG_INTERRUPT0)
{
licznik=0;y=0;x++;
if(x==10){x=0;z++;}
if(z==10){z=0;}
}
//////////////////////////////////////////////////////////////////
int main(void){
DDRB&=~_BV(2);//wejscie synhro v
PORTB|=_BV(2);
DDRB&=~_BV(1);//wejscie synhro h
PORTB|=_BV(1);
DDRB|=_BV(0);//wyjscie sygnalu
PORTB&=~_BV(0);
EIMSK = _BV(INT0)|_BV(INT1);
//włącz obsługę przerwań Int0 i Int1
EICRA = _BV(ISC01)|_BV(ISC11);
// włącz generowanie przerwań przez
// rosnace zbocze na Int0 i Int1
sei(); // włącz obsługę przerwań
while(1){
;
}
}
Poprawiłem tytuł - Regulamin. [c_p]
