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:
Wg debugu DDRB ma wartość 0xA0 (ustawiony 7 i 5 bit).
Funkcja wysyłająca:
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
Funkcja inicjująca:
Kod: text
Wg debugu DDRB ma wartość 0xA0 (ustawiony 7 i 5 bit).
Funkcja wysyłająca:
Kod: text
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
