Keresés

Új hozzászólás Aktív témák

  • don_peter

    senior tag

    válasz dabadab #4569 üzenetére

    Köszönöm a kiigazítást.
    Gondolom én voltam félreérthető az első bejegyzésemben.

    "#define FIRST_ROW_BIT_POSITION 4"
    Így gyakorlatilag csak egy értéket adunk FIRST_ROW_BIT_POSITION nak és nem tudjuk később léptetni a mikrocsip lábait.
    Tehát ez "SOROK = (1 >> ( FIRST_ROW_BIT_POSITION + i ) ); " helyett az kell amit eredetileg is írtam.
    SOROK = (0x08>>i); Ezzel gyakorlatilag a mikrocsip B portjának lábaira adunk magas szintet.

    "int oszlopok[] = { PORT_B4, PORT_B5, PORT_B6, PORT_B7 };"
    Ezt ugyan nem próbáltam még ilyen formában, de van egy sejtésem, hogy nem jó mivel értéknét adjuk át a az egyes portok egyes lábait.
    Bár elképzelhető, hogy ha minden ciklusba adom át a tömbnek az értékeket akkor elvileg működhet is.

    "#define NO_KEY 0"
    Gyakorlatilag ugyan az mint az én
    "#define ALACSONY 0" definícióm.

    "A k-t állítgató résznek semmi értelme"
    A ciklus végtelen pergésben van és ha nem érkezik gombnyomás akkor a 4 ciklusonként nullázni kell az értékét hiszen 4x4 vagy is 16gomb van.

    Egyszóval, ha sima C programnak tekintjük akkor tökéletes a példád, de sajnos itt figyelembe kell venni, hogy mikrokontrollert programozunk fel illetve a lábak szintjeit ellenőriztük.
    Azt hiszem erre irányuló kérdésem a C topikban nem állja meg a helyét.
    Köszönöm ettől függetlenül a segítőkészséget.

Új hozzászólás Aktív témák

Hirdetés