Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 13 gru 2024, o 17:12


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 15 sie 2014, o 21:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 maja 2013
Posty: 83
Lokalizacja: Tychy
Pomógł: 3

Witam !

Wpadł mi w ręce wyświetlacz OLED z obsługą I2C , ze sklepu Atnel dlatego nawet nie podejrzewam ze to On może być popsuty :) Myślę że błąd leży gdzieś w bibliotekach które pisałem podczas oglądania poradnikami Mirka na ich temat. Po podłączeniu do płytki ATB , SCL->PC0 , SDA -> PC1 , VCC ->VCC , GND ->GND ( też rozwieram zworki dla SCL / SDA ), wgraniu pierwszego programu , wyświetlacz ani drgnie.
Problem w tym że siedzę już nad tą biblioteką długo i nie umiem znaleźć gdzie mam błąd , najgorsze to że kompilator mi też niczego nie wyrzuca. Dlatego chciałbym abyście też rzucili okiem na nie może na pierwsze spojrzenie zobaczycie gdzie się pomyliłem.

main.c
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


ssd1306.c
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


ssd1306.h

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Musicie od siebie wymagać...
JP II



Ostatnio edytowano 15 sie 2014, o 21:55 przez TomTea, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sie 2014, o 21:47 
Offline
Użytkownik

Dołączył(a): 29 mar 2012
Posty: 595
Lokalizacja: Jaworzno
Pomógł: 39

Na początek popraw formatowanie kodu (syntax C) bo ciężko się czyta.

_________________
Pozdrawiam
PP



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 sie 2014, o 06:35 

Pomógł: 0

A po drugie popraw w deklaracji
line 250 TWI_write_buf(OLED_I2C_ADDRESS, 0x40 , 1024 , ssd1306_buf);
w pliku .c
Bo używasz 1024 która przekracza wartość zadeklarowaną w

static void TWI_write_buf( uint8_t SLA, uint8_t adr, uint8_t len, uint8_t *buf )



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 16 sie 2014, o 08:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 maja 2013
Posty: 83
Lokalizacja: Tychy
Pomógł: 3

Niestety w dalszym ciągu to samo. Myślę że gdzieś musiałem zrobić jakąś literówkę , zostaje mi tylko porównywanie mojej biblioteki z tą z na filmiku. Swoją drogą jest gdzieś możliwość dostania tej biblioteki z poradnika , myślę że takie porównywanie "statyczne" szybciej i sprawniej by przeszło.

_________________
Musicie od siebie wymagać...
JP II



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 sie 2014, o 18:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2014
Posty: 446
Lokalizacja: DKL
Pomógł: 53

Znalazłem 3 uwagi, w tym dwie kluczowe :)
1. Funkcja TWI_write_buf(); powinna mieć argument len jako uint16_t a nie uint8_t. Przekazujesz tam wielkość bufora = 1024. Była o tym mowa w poradniku, na forum też ktoś o to pytał w wątku z poradnikiem.
2. W funkcji ssd1306_Init(); na samym dole (okolice linii 251) masz ssd1306_cmd(SSD1306_DISPLAYALLON); a powinno być, ssd1306_cmd(SSD1306_DISPLAYON);.
3. W funkcji TWI_stop(); w pętli while() masz błąd, nie powinno tam być negacji instrukcji warunkowej ! - powinno być: while ( (TWCR&(1<<TWSTO)));.

Po zmianie pkt 1 i 2 powinno ruszyć, bynajmniej u mnie poszło, pkt 3 jako ciekawostka ;)


Autor postu otrzymał pochwałę

_________________
Migracja z punktu B do punktu C
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 sie 2014, o 21:39 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 maja 2013
Posty: 83
Lokalizacja: Tychy
Pomógł: 3

Dzięki !!

Tak jak pisałeś pkt. 1,2 . Były kluczowe, po ich zmianie wyświetlacz ożył :P ! Dziękuję za pomoc teraz moge wrócić do zabawy nim i dalszych poradników Mirka.
Normalnie bym Ci piwo postawił :)

_________________
Musicie od siebie wymagać...
JP II



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 sie 2014, o 11:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2014
Posty: 446
Lokalizacja: DKL
Pomógł: 53

Na tym form to tylko soczek jabłkowy pijemy ;) :D
A tak na całkiem poważnie, to nie ma problemu, uwielbiam grzebać w Eclipsie, przez to się uczę i poznaję tajniki C dla AVR-GCC :) Także cała przyjemność po mojej stronie.

_________________
Migracja z punktu B do punktu C
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO