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

ATmega128 - Port jest ustawiony w stan wysoki, a tylko połowa pinów ma stan &quo

zaslon 07 Lut 2015 20:55 1023 2
REKLAMA
  • #1 14415196
    zaslon
    Poziom 2  
    Cześć,

    Moja ATmega128 zachowuje się w nieco dziwny sposób. Mianowicie ustawiam w niej wszystkie piny z portu F na wejście z podciągnięciem do VCC (czyli stan wysoki na każdym pinie), a następnie "przemiatam" piny w PA2-PA7 oraz PG2, ustawiając w nich po kolei stan niski. Następnie czekam na zmianę w porcie F (projekt służy do czytania przyciśnięcia na czymś a'la klawiatura matrycowa). Po kolei badając, czy piny w porcie F są poprawnie ustawione, czyli na stan wysoki, okazało się, że pierwsze cztery piny są rozpoznawane poprawnie -> jest stan wysoki. Jednakże w przypadku pinów PF4-PF7 stan jest rozpoznawany jako niski (pomimo że cały port był ustawiany na stan wysoki). Co może być tego powodem?

    Tutaj prezentuję kod programu:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • Pomocny post
    #2 14415394
    mickpr
    Poziom 39  
    zaslon napisał:
    Co może być tego powodem?

    Wyłączyłeś JTAG, czy zapomniałeś o nim? - Podaj swoje fusebity.
    Pamiętałeś również, aby wyłączyć tryb kompatybilności z ATMEGA103 ?
  • #3 14416581
    zaslon
    Poziom 2  
    Oto moje fuse bity:
    ATmega128 - Port jest ustawiony w stan wysoki, a tylko połowa pinów ma stan &quo
    Z tego, co widzę, to mam wyłączony fuse bit M103. Nie korzystam z JTAG-u. Czy w takim razie powinienem go wyłączyć? Jak ustawić resztę fuse bitów?

    Dodano po 19 [minuty]:

    Rzeczywiście, w atmedze 128 piny PF4-PF7 są używane do JTAG-u. Odznaczyłem fuse bit "JTAGEN" i piny te zaczęły być poprawnie wykrywane (tak, jak przy normalnych GPIO). Dziękuję za pomoc! :) Temat do zamknięcia.
REKLAMA