logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Klawiatura 4x4 kolumny i wiersze na oddzielnych portach

pawgo2606 06 Kwi 2012 18:33 1155 2
REKLAMA
  • #1 10764419
    pawgo2606
    Poziom 10  
    Witam, tak jak w temacie. Mam problem z napisaniem programu obsługującego klawiaturę matrycową 4x4. muszę niestety zrobić to na oddzielnych dwóch portach bo korzystam z SPI przetwornika ADC oraz zakładam wykorzystanie I2C więc w ATmedze32 nie mogę wykorzystać całego portu...
    dysponuję następującym kodem
    Kod: text
    Zaloguj się, aby zobaczyć kod


    chciałbym go przerobić tak aby kolumny pozostały DDRD=(1<<PD0|1<<PD1|1<<PD2|1<<PD3)
    a wiersze były z portu A PA4 PA5 PA6 i PA7

    próbowałem coś takiego
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 10777830
    pawgo2606
    Poziom 10  
    próbowałem i doszedłem do czegoś takiego przy pomocy kolegi z innego forum
    wyjścia to PD0..PD3, a odczytywane wejścia PA4..PA7
    Kod: text
    Zaloguj się, aby zobaczyć kod

    chcę aby wyjściami były PD3..PD7 jednak mam z tym problem
    zmodyfikowałem wiersz
    for(row=0xef,key=1; row>=0x7f; row=(row<<1|0x10)&0xff)

    jednak dla takiego rozwiązania nie obsługuje mi jednego wiersza.. kombinowałem na różne sposoby i nie mogę dojść co i jak zmienić
  • #3 10843687
    pawgo2606
    Poziom 10  
    udało się zrealizować klawiaturę na dwóch różnych portach PA4...PA7 oraz PD4..PD7
    teraz probuję przerzucić kod na piny PD3..PD6 jednak mam problem. poniżej umieściłem kod dla pierwszego wariantu a następnie dla zmienionych portów jednak nie działa..

    wariant PA4..PA7 oraz PD4..PD7
    Kod: text
    Zaloguj się, aby zobaczyć kod


    wariant PA4..PA7 oraz PD3..PD6

    Kod: text
    Zaloguj się, aby zobaczyć kod


    proszę o pomoc w rozwiązanu tego problemu :)
REKLAMA