Skocz do zawartości

ATtiny85 i zasilanie joysticka - czy tak można?


ethanak

Pomocna odpowiedź

Myślę, że trochę nie doceniasz I²C. Znajomy ostatnio zrobił https://hackaday.io/project/162701 i działa dobrze po I2C. To jest jednak te 100kbit/s, a obrazu jest kilobajt. Oczywiście lepiej jest rysować tylko to co się zmieniło i wcale nie jest to bardzo trudniejsze do zaprogramowania, tylko nie większość gotowych bibliotek na to nie pozwala. Ale te wyświetlacze bardzo prosto się kontroluje samemu (nawet zrobiłem kiedyś tutorial z tego https://hackaday.io/page/5722). Tło pewnie i tak będziesz mieć całe w progmemie i na to and-owana maska i or-owany sprite.

Link do komentarza
Share on other sites

A kto powiedział że chcę używać gotowych bibliotek? Ani do jednej, ani do drugiej gry nie pasują... Co do wyświetlacza - mam już obsługę (poszedłem po najmniejszej lini oporu, czyi okroiłem adafruitowe TinyWireM do rzeczy niezbędnych i przerobiłem na C, samą obsługę SH1106 też ściągnąłem z jakiejś arduinowej biblioteki), do tego co potrzebuję absolutnie wystarczy.

Co do trudności w programowaniu... zauważyłeś kiedy i na jaką maszynkę pisałem gry? 🙂 A od tej pory chyba nawet trochę się poduczyłem 😉

Tak przy okazji - nie wiesz przypadkiem, czy jest jakaś możliwość żeby z ATtiny85 wydusić więcej niż 100 kbit? Wyświetlacz spokojnie działa na 400, poszukiwania w sieci doprowadziły mnie do tego że jest to możliwe, ale nikt nie wie jak a jeden co podobno wie to nie chce powiedzieć 😞

Link do komentarza
Share on other sites

Tutaj masz opisane zarówno standard mode (100kbps) jak i fast mode (400kbps), ale osobiście się na attiny z USI tylko bawiłem w slave-a, więc z praktyki ci nie powiem.

Cytat

The driver has code for both standard and fast mode TWI timing. Set selected mode in the header file of
the driver. The default setting is fast mode.

http://ww1.microchip.com/downloads/en/AppNotes/Atmel-2561-Using-the-USI-Module-as-a-I2C-Master_AP-Note_AVR310.pdf

Jeszcze kod do przykładu: https://start.atmel.com/#examples/AVR310

Wygląda na to, że nie ma na to żadnych rejestrów, po prostu sam robisz delaye:


#ifdef TWI_FAST_MODE                            // TWI FAST mode timing limits. SCL = 100-400kHz
#define T2_TWI ((SYS_CLK * 1300) / 1000000) + 1 // >1,3us
#define T4_TWI ((SYS_CLK * 600) / 1000000) + 1  // >0,6us

#else                                           // TWI STANDARD mode timing limits. SCL <= 100kHz
#define T2_TWI ((SYS_CLK * 4700) / 1000000) + 1 // >4,7us
#define T4_TWI ((SYS_CLK * 4000) / 1000000) + 1 // >4,0us
#endif

i potem:

#if __GNUC__
#define DELAY_T2TWI (_delay_us(T2_TWI / 4))
#define DELAY_T4TWI (_delay_us(T4_TWI / 4))
#else
#define DELAY_T2TWI (__delay_cycles(T2_TWI))
#define DELAY_T4TWI (__delay_cycles(T4_TWI))
#endif

a w kodzie:

#ifdef TWI_FAST_MODE
	DELAY_T4TWI; // Delay for T4TWI if TWI_FAST_MODE
#else
	DELAY_T2TWI; // Delay for T2TWI if TWI_STANDARD_MODE
#endif

Trochę dziwne, że TWI_FAST_MODE sprawdzają dwa razy...

Edytowano przez deshipu
  • Lubię! 1
  • Pomogłeś! 1
Link do komentarza
Share on other sites

Dzięki!!!

Przestudiuję to sobie, ale już się domyślam o co chodzi. W TinyWire T2_TWI i T4 TWI są zdeklarowane na sztywno (odpowiednio 5 i 4 µs) - spróbuję się tym pobawić.

Co ciekawsze - mam jakąś (nie-adafruitową) bibliotekę USI_TWI gdzie widziałem fast mode... tyle że nie chciało mi to ruszyć nawet bez fast, dlatego zastosowałem wersję adafruita. Będę musiał zerknąć co jej dolega...

 

  • Lubię! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.