Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C: Taulukon käyttö hukassa

MaraiMasa [12.06.2014 09:05:11]

#

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.

Grez [12.06.2014 10:34:16]

#

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.

MaraiMasa [12.06.2014 10:42:46]

#

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

The Alchemist [12.06.2014 21:15:59]

#

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.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta