Zamiast brnąć do celu w realizacji projektu, zabrałem się za rozgryzanie PSoCów i pomyślałem że dobrze by było poznać blok funkcjonalny I2C który jest oferowany w kreatorze. Tym razem testowanie rozpocząłem odrazu z Cypress SHIELD na zestawie ATB 1.05 (Chciałem mieć pewność że nie mam gdzieś wlutowanych kondensatorów na portach tak jak w przypadku CYCKITów). Ponieważ nie jestem orłem z zakresu programowania, zabrałem się za I2C podpatrując innych i w miarę swoich umiejętności adoptowałem rozwiązanie do mojego sprzętu.
Do testów z I2C użyłem modułu DS3231, Cypress Shield Atnel oraz zestaw ATB 1.05. oraz wyświetlacza HX8357B którego udało mi się opanować i przedstawić Wam wcześniej.
Szczerze mówiąc myślałem że uruchomienie I2C na Cypress będzie równie proste i klarowne jak z AVR i będzie się sprowadzać do małych zmian dla hardwaru, ale niestety nie jest tak łatwo (przynajmniej dla mnie który jestem naprawdę lamerem w programowaniu). Do oprogramowania tego ćwiczenia użyłem bloku - I2C Master (Fixed Function) v3.50 oraz dostępnych funkcji API. Przyznam że te funkcje są dość pokręcone i musiałem kilka razy przeczytać Cypressowy datasheet dla komponentu I2C a i tak nie do końca to ogarnąłem. Dopiero po szklance dobrej whisky dostałem oświecenia. Przedstawię podstawowe funkcje do zapisu i odczytu po I2C które w końcu wykonują to czego od nich wymagam.
Funkcja która odczytuje dane (czas, datę i numer dnia tygodnia) z DS3231 i zapisuje je do tablicy.
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Jestem pewny że jak przyjrzycie się obu funkcjom to zauważycie mechanizm działania zapisu i odczytu. Dla mnie który poznał I2C wyłącznie na AVR, ten mechanizm z PSoC był trochę zawiły ale w końcu dostrzegłem logikę
Teraz funkcja która wyświetla informacje z DS3231 na wyświetlaczu HX8357
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Jest jedna zasadzka z którą nie mogłem sobie poradzić. Otóż Ci którzy bawili się DS3231 na przykład po poradnikach Mirka (chwała Mirkowi za te poradniki) pamiętają że adres dla tego scalaka na I2C jest 1101000 czyli w AVR używamy 0xD0 no i to jest pułapka Nie wiedziałem czemu mi to wszystko nie chce działać i dokopałem się do takiej informacji
"The data sheet gives the 7 bit address. When you call the I2C API, pass this 7 bit address. The API wll add the R/W bit 1101000. For the given address, you have to pass 0x68 as the slave address for the bWriteBytes and fReadBytes parameter. "
Po zmianie adresu z 0xD0 na poprawiony dla PSoC API adres 0x68, zegarek zaczął ze mną dialogować po I2C.
Reasumując, mam już opanowaną na poziomie LAMERSKIM obsługę SPI, I2C, QuadDec (super narzędzie do obsługi enkoderów zarówno optycznych jak i mechanicznych, mam to przetestowane z obydwoma rodzajami). Piszę to między innymi dla tego żeby trochę nawrzucać kamyczków do Mirkowego ogródka który zaniedbał PSoCi ostatnio ale nie żebym się żalił czy coś, bo właśnie od samego rana zbieram szczękę z podłogi po obejrzeniu Mirkowego przedstawienia o Menu kreatorze... ja też chcę tak umieć
No co jak co, ale tytułem to Ty potrafisz przykuć uwagę
Mirek zaspokaja małżonkę w magicznej kuchni a SP2LUB się bawi CYCKAMI. Chyba forum robi się bardzo "męskie"
a kolega to co? nie bawi się czasem stringami ? ..... z tego co wiem to wielu forumowiczów lubi takie brzydkie zabawy i ciągle mieli te stringi w łapkach ... ja również (nie będę ukrywał)
a kolega to co? nie bawi się czasem stringami ? ..... z tego co wiem to wielu forumowiczów lubi takie brzydkie zabawy i ciągle mieli te stringi w łapkach ... ja również (nie będę ukrywał)
No tak. Nie będę hipokrytą i także się przyznam - lubię bawić się stringami Najgorsze, że CYCKI czekają na mnie od 2 miesięcy, bo kupiłem moduł do zestawu ATB razem z PCB do MagicMatrixa i cały czas się nimi jeszcze nie pobawiłem Więc takie wątki mobilizują by rzucić inne rzeczy i się za nie wziąć. Lecz chyba dziś skończę w końcu kleić kwadraciki do MM Także czeka mnie coś w stylu zaspokajania w kuchni. Taśma MagicLED już od kilku miesięcy czeka. Pierwsze wstępne efekty nawet pokazałem, ale nic jeszcze nie zostało zrobione. Więc dużo "męskiej" pracy przede mną . I wspominane stringi, na pewno też będą się przewijać .
-- Pozdrawiam, Robert
------------------------ [ Dodano po: kilkunastu sekundach ]
Choć przy stingach najbardziej interesująca jest funkcja w javie getStringFromObj()
eeeeeeh - do tej pory myślałem, że tylko stringi są kotrowersyjne przy programowaniu - ale od dzisiaj wiem, że jest jeszcze coś takiego jak "CYCKI" ... i kto mi zapłaci za zachlapany monitor ja się pytam ? ... wynika z tego, że główny podejrzany SP2LUB ... który tak nomen omen - to fajne programy na CYCKach robi sam muszę znaleźć więcej czasu, żeby je pomiziać
Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości
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