Taulukkoa luetaan tällaisella FOR-silmukalla:
for(i=1;i<9;i++) Write_Max7219(i,disp1[j][i-1]);
ja taulukko on muotoa:
unsigned char disp1[40][8]={ {0x00,0x7E,0x81,0x81,0x81,0x81,0x7E,0x00},//0 {0x00,0x00,0x04,0x02,0xFF,0x00,0x00,0x00},//1 {0x00,0x84,0xC2,0xA1,0x91,0x89,0x86,0x00},//2 {0x00,0x42,0x81,0x81,0x89,0x89,0x76,0x00},//3 {0x00,0x30,0x28,0x24,0x22,0xFF,0x20,0x00},//4 {0x00,0x8F,0x89,0x89,0x89,0x89,0x71,0x00},//5 {0x3C,0x20,0x20,0x3C,0x24,0x24,0x3C,0x0},//6
En ymmärrä tämän kirjoituslauseen ensimmäistä muuttujaa: (i)
(i,disp1[j][i-1])
.
Miksi tämä muuttuja on lauseen parametrinä kahteen kertaan?
koodi on lainaus Arduinon ohjelmasta.
Nopealla googletuksella funktion määrittely voisi olla
void Write_Max7219(unsigned char address,unsigned char dat)
Eli ensimmäinen parametri on osoite, johon kirjoitetaan ja toinen parametri on mitä kirjoitetaan.
Max7219 on ilmeisesti Maximin LED-näytön ohjauspiiri, joten oletattavasti osoite käytännössä tarkoittaa mikä numero. Eli tuo koodi varmaankin kirjoittaa 8 merkkiä näytölle järjestyksessä 1:stä merkistä 8:een.
Tuo milestäni ei ole vastaus kysymykseeni. Vastauksesi selittää loppuosan, jonka ymmärrän aikaisemmasta elämästäni, mutta ei tuota ensimmäistä "i"-kirjainta, joka on lauseessa kaarisulkeen jälkeen ensimmäisenä.
Eli kysymys: Miksi tämä muuttuja on lauseen parametrinä kahteen kertaan?
Lisäys:
Oookei tankattuani riviä tarpeeksi aloin saada päähäni mitä tässä rivillä oikein tarkoitettiin.
Niinkuin kerroit on tosiaan kysymyksessä osoite ja data mutta minä sekosinn siihen että taulukosta Displ1 siirretään kumpikin yhtäaikaa. Anteeksi typeryyteni ja paljon kiitoksia
Jättäisin nää copy-paste-koodailut vähän myöhempään ja opettelisin ensin ohjelmoinnin alkeet. Tuo on ihan tavallinen funktiokutsu eikä sen tulkkaamisessa pitäisi olla mitään ongelmaa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.