za C, ne mislim ja da treba da budes programer, ali da bi dizajnirao
bilo kakav hardware mora znas C i mora ga znas dobro, jer HW bez nekog
procesora, bar minimalnog implementiranog u vhdl-u, ozbiljnog dizajna
nema .. danas cak ni analogiju ne mozes da radis bez bar jednog malog
procesora, tako da moras da znas C ako nista drugo da bi mogao da
testiras dal ti dizajn radi ili ne :D
a sto se koda tice, ja sam inicijalizaciju tajmera iskopirao od tebe
(pojma nemam kako se inicijalizuje tajmer na tom '51) .. tako da ako ti
se interapt ne vrti, proveri dal je to inicijalizovano kako treba
dalje, main, vidi on ce da prodje jednom kroz niz i to je to, onda ce da
stane i da se vrti u mrtvoj petlji, da li imas tu neki debuger? ili samo
izvrsis i cekas?
ako pogledas prva petlja ti je
while(i<MAX_ELEMENTS_IN_A)
znaci ide samo jednom kroz niz. ako hoces da se vrti beskonacno, tj da
uvek krece od pocetka niza kad ga zavrsi, valjda toliko umes da promenis
kod?
Code:
while(1){
if (i >= MAX_ELEMENTS_IN_A) i = 0;
while (!switcher) // da li treba dokle god je stisnut taster da citas ili treba da sacekas da se pusti taster da bi cekao da se ponovo stisne za nastavak? da li ti treba tu neki sw debouncing? ovako radi tako kako si i ti inicijalno pisao - dokle god je stisnut on cita
...
}}
i onda ti donja petlja while(1); ne treba posto se ova gore nece nikad
zavrsiti
dalje, imas while (!switcher) dakle ta unutrasnja petlja ti se vrti sve
vreme dok ti je taster stisnut (razumeh iz tvog koda da ti je switcher 0
kada je taster stisnut), nema debouncinga, nema cekanja da pustis taster
pa pritisnes ponovo za sledeci, dakle u tvom slucaju on ce da cim pipnes
taster protrci kroz sve i zavrsi posto je dovoljno brz .. ako hoces da
tasterom dajes "jedan po jedan" input onda tu mora se doda jedno cekanje
da taster postane 1 (otpusten), neki debounce ovo ono .. ako radis hw
znas valjda o cemu pricam ...