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

attiny2313 - [c++] USI TWI: Brak impulsu na SDA mimo ustawień PORTB.5

mikmas 12 Wrz 2012 22:24 942 0
  • #1 11305224
    mikmas
    Poziom 18  
    Już dosłownie walę głową w mur. Dokumentację przeczytałem 1001 razy, google 2 razy przepatrzyłem całe i nic. Chcę wysłać korzystając z hardware-owego USI dane. Żadne i^2c. Po prostu zwykłe, jednokierunkowe wypluwanie danych. W necie nie ma podstawowego przykładu użycia tego trybu. Jednak do rzeczy. Skąd wiem, że nie działa? Debugger (standardowy z AVR Studio) pokazuje wyraźnie, że mimo wartości 0xFE w USIDR pin PORTB.5 (SDA) nie reaguje. Za to PORTB.7 (SCL) śmiga ślicznie. To samo się dzieje po podłączeniu fizycznie oscyloskopu pod port. porty B5 i B7 ustawione na wychodzące. Załączam kod:

    Funkcja inicjująca:
    Kod: text
    Zaloguj się, aby zobaczyć kod

    Wg debugu DDRB ma wartość 0xA0 (ustawiony 7 i 5 bit).

    Funkcja wysyłająca:
    Kod: text
    Zaloguj się, aby zobaczyć kod

    USIDR == 0xFD, pętla robi 8 obrotów, SCL cyka, a SDA siedzi cicho. Już naprawdę nie wiem co jest, a z pewnością robię jakiś durny błąd, którego od ponad 3h nie mogę się dopatrzeć. Pomóżcie noobkowi
REKLAMA