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



Teraz jest 4 gru 2024, o 20:14


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 18 ] 
Autor Wiadomość
PostNapisane: 16 sty 2015, o 10:46 
Offline
Nowy

Dołączył(a): 15 sty 2015
Posty: 10
Pomógł: 0

Witam. Proszę o pomoc w zakresie sterowania układem PCA9685. Potrzebuję fragment kodu w Bascomie, który umożliwi sterowanie tym scalakiem. Wykorzystuję do tego ATmegę32 i po I2C jest podłączony z PCA9685.
Z góry dziękuję za pomoc.

Dim D(10) As Word
Dim H(10) As Byte
Dim L(10) As Byte

Const I2crd = 225
Const I2cwr = 224

Zi2c(4) = 224
Oi2c(4) = 225

D(1) = 2000
D(2) = 3000

L(1) = Low(d(1))
H(1) = High(d(1))

L(2) = Low(d(2))
H(2) = High(d(2))

I2cstart
I2cwbyte Zi2c(4)
I2cwbyte H(1)
I2cwbyte L(1)

I2cwbyte H(2)
I2cwbyte L(2)

I2cwbyte 11111010

I2cstop



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 sty 2015, o 21:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 27 gru 2011
Posty: 186
Lokalizacja: Dublin
Pomógł: 8

PDF-a masz ??
Tam jest wszytko idealnie banalnie rozpisane wystarczy skopiować jak małpa.
Jak pisałem suba dla PCA9551 nie było tam takiej "idiot proof" tabelki.

Tu masz wersie dla PCA9551 jako suby i funkcje:

Tu jest wybór leda i trybu pracy:
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Tu jest ustawienie jednego z dwóch PWM-ów
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Tu funkcja odczytu aktualnej wartości wypełnienia:
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Tu funkcja odczytu częstotliwości:
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.




Dla PCA9685 Jest sporo pisania, żeby to miało ręce i nogi trzeba napisać stałe z tego co widzę az 63 stałe i najlepiej nazwać je jak w pdf-e.
Później trzeba zrobić select case dla wszystkich 63 możliwości plus dodatkowe funkcje odczytu kolejnych rejestrów.

Jeśli nie masz scalaka najpierw go kup a potem pisz bo inaczej szkoda czasu na pisanie.
Polecam zainwestować w oryginalną płytę testowa NXP z tym scalakiem na pokładzie będzie Ci łatwiej.



Ostatnio edytowano 17 sty 2015, o 23:29 przez pikczu, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 sty 2015, o 21:56 
Offline
Nowy

Dołączył(a): 15 sty 2015
Posty: 10
Pomógł: 0

Dziękuję za odpowiedź.
PDF-a posiadam
https://www.adafruit.com/datasheets/PCA9685.pdf
Tak jak pisałem potrzebuję sterować układem PCA9685, ATmegą po I2C część kodu:

'Adres
Zi2c(4) = 224
Oi2c(4) = 225

'Zmienne dane
D(1) = 2000
D(2) = 3000

'Podział liczby na 2 * po byte czyli 00000000 00000000
L(1) = Low(d(1))
H(1) = High(d(1))


L(2) = Low(d(2))
H(2) = High(d(2))

I2cstart
I2cwbyte Zi2c(4) 'Adres


'LED0_ON_L read/write LED0 output and brightness control byte 0

I2cwbyte 00000110

' LED0_ON_H read/write LED0 output and brightness control byte 1

I2cwbyte 00000111


'Wartość podzielona 1
I2cwbyte H(1)
I2cwbyte L(1)

'Wartość podzielona 2
I2cwbyte H(2)
I2cwbyte L(2)

I2cstop

Proszę o poprawienie tego kodu, dziękuję.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 sty 2015, o 22:03 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3206
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 91

topic7402.html

_________________
http://www.jaglarz.info



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 sty 2015, o 22:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 27 gru 2011
Posty: 186
Lokalizacja: Dublin
Pomógł: 8

:lol: Sorry ale nie będę poprawiał twojego "kodu".
Żeby go "poprawić" trzeba dopisać z 300 linijek i mieć ten układ na stole.
Zobacz jak ja napisałem dla PCA9551 który ma tylko 8 ledów i dwa PWM-y a nie 16 ledów i tyle samo PWM kanałów.
Powalcz sam a jak już coś konkretnego napiszesz to Ci pomogę.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 sty 2015, o 22:20 
Offline
Nowy

Dołączył(a): 15 sty 2015
Posty: 10
Pomógł: 0

Dziękuję.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sty 2015, o 09:54 
Offline
Nowy

Dołączył(a): 15 sty 2015
Posty: 10
Pomógł: 0

Kontynuując temat

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



Idzie sterować poszczególnymi diodami LED. Nie jest to jeszcze rozwiązana sprawa i stąd moje pytanie:

Na wykresie przebiegu sygnału co oznacza "A" i jaką wartość powinien mieć ?

Dziękuję.


Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sty 2015, o 10:17 
Offline
Nowy

Dołączył(a): 15 sty 2015
Posty: 10
Pomógł: 0

ACK lub NACK to parametry stosowane przy odczycie. A mi chodzi o zapis ustawień do układu PCA 9685. Tak naprawdę jak powinna prawidłowo wyglądać składnie w Bascomie do np. zapalenia diody LED 5.

Ja to tak zrobiłem (jest to fragment kodu):

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


Kod działa, jednak nie jestem przekonany, że to dobrze robię. Ponieważ nie mogę w ten sposób zapalić ostatniej diody LED (16).

Dziękuję za pomoc.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sty 2015, o 16:14 
Offline
Nowy

Dołączył(a): 15 sty 2015
Posty: 10
Pomógł: 0

Witam ponownie i dziękuję za wskazówki, proszę o weryfikację kodu.

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



Tak zapisany kod pozwala zapalać diodę nr 1, kolejne włączanie przycisku powoduje rozjaśnianie diody1 ponieważ zmienia się wartość zmiennej D(1).
Z pewnością jest błąd i proszę o poprawienie jego.
Blok 1 i 2 to przypadek i bez niego nie działa, natomiast blok 3 to jest czytelny i wydaje się być poprawny.

Dziękuję za pomoc, pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sty 2015, o 20:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 27 gru 2011
Posty: 186
Lokalizacja: Dublin
Pomógł: 8

Witam proponuej przepisać stałe jednak z wartoscami bitowymi a nie dziesiętnymi kod zaraz sie rozrośnie a to od poczatku jets bardzo słabo czytelne.
Co by nie mówic jednak jestesmy zwrokowcami :lol: szybciej mozna to porównac z PDf-em.
Zaraz romantv pogubisz sie w tym a tym bardziej my.
Tak że kolejnt raz zwracam uwagę na czytelność.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sty 2015, o 21:16 
Offline
Nowy

Dołączył(a): 15 sty 2015
Posty: 10
Pomógł: 0

Oczywiście mogę to poprawić i to uczynię. Kod, który pisałem miał mi służyć tylko do przetestowania i opracowania składni. Program miałem dopiero pisać i stąd te problemy. Już wiem, że powinienem jasno i czytelnie pisać i dopasowywać się do PDF-a. Bardzo dziękuję za każdą radę, jutro zabieram się za kolejne testy.

Jeszcze raz dziękuję Wam za pomoc.


PS

Obrazek

Rozumiem, że w tabeli "A" jest to parametr ACK, lub Nack-ostatni parametr do odczytu.
Mogę go pominąć w składni?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sty 2015, o 21:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 27 gru 2011
Posty: 186
Lokalizacja: Dublin
Pomógł: 8

ACK i NACK dodajesz przy odczycie jak obierasz tylko jeden bajt to dajesz NACK bo już kończysz czyli NOT ACKNOWLEDGE ale jak odbierasz więcej niż jeden musisz dać przy każdym NIE ostatnim odczycie ACK



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sty 2015, o 21:53 
Offline
Nowy

Dołączył(a): 15 sty 2015
Posty: 10
Pomógł: 0

Jak się przyglądam czytam posty to staje się to coraz prostsze. Oczywiście procedury będą bo muszę one być i wykorzystam do tego wyświetlacz graficzny 240x128.

Pozdrawiam.

PS. Nigdy mnie nie interesowały gotowe programy innych autorów, jedynie zawsze korzystam z porad czy podpowiedzi :). Kiedy nie znam odpowiedzi czy mam problem ze zrozumieniem dokumentacji. Projekt, który robię jest oparty wyłącznie o mój pomysł i schemat.

------------------------ [ Dodano po: 2 minutach ]

pikczu napisał(a):
ACK i NACK dodajesz przy odczycie jak obierasz tylko jeden bajt to dajesz NACK bo już kończysz czyli NOT ACKNOWLEDGE ale jak odbierasz więcej niż jeden musisz dać przy każdym NIE ostatnim odczycie ACK


To wiem tylko zastanawiałem się nad "A". dziękuję.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sty 2015, o 22:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 27 gru 2011
Posty: 186
Lokalizacja: Dublin
Pomógł: 8

Bartek masz oczywiście racje ale jak na razie to większość w tym dziale troli bo jak już coś naskrobią to zmienia to rangę na tajne łamane przez poufne.

Na tego PCA9551 pisałem wieczorami po pracy i chyba zajęło mi to 5 wieczorów plus chyba ze 2 godziny w weekend włosy z głowy rwałem bo nie mogłem nic odczytać a mogłem ustawiać.
Okazało się że nie doczytałem w PDFie że jest tam "repeat start" a ja dawałem ponownie I2Cstart.

Dodam tylko ze suby które dodałem nie działają z biblioteka $LIB "I2CV2.LIB" sprawdzone w wersji 2.0.7.7

to A to skrót od Acknowledge



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sty 2015, o 22:24 
Offline
Nowy

Dołączył(a): 15 sty 2015
Posty: 10
Pomógł: 0

Tak masz rację, jednak na forach coraz częściej spotykam się z brakiem wyrozumiałości a nawet chamstwem i docinkami. Nie były one skierowane pod moim adresem ale czytając posty widzę co inni piszą. Jeszcze raz dziękuję i jutro zapieram się do testów.
Pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sty 2015, o 23:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 27 gru 2011
Posty: 186
Lokalizacja: Dublin
Pomógł: 8

Romantv bez scalaka na stole nasza pomoc mocno sie zaweza zrob cos na podobienstwo tych subow jak do 9551 do odczytu uzyj funkcji.
Ja ide spac dobranoc



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sty 2015, o 16:13 
Offline
Nowy

Dołączył(a): 15 sty 2015
Posty: 10
Pomógł: 0

Witam ponownie.

Przesyłam kod poprawnie pracujący, który umożliwia sterowanie układem PCA 9685

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



Pozdrawiam i wszystkim dziękuję za pomoc.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sty 2015, o 21:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 27 gru 2011
Posty: 186
Lokalizacja: Dublin
Pomógł: 8

Bartek spadłem z krzesła http://youtu.be/UKv9Up_4v-E?t=16m15s jak usłyszałem o feministce :lol:



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: 18 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 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

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