Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

BASCOM - i2cwbyte ACK (??)

lk
-
-
Posty:7
Rejestracja:30 mar 2004, o 07:55
BASCOM - i2cwbyte ACK (??)

Postautor: lk » 27 wrz 2004, o 07:55

Witam,
w "bacom college" przy opisie magistrali i2c podana była informacja,
że polecenie i2cwbyte ma parametr ack/nack , natomiast bascom
pokazuje błąd (w helpie i2cwbyte nie mam parametru ack/nack).
Próbuję komunikować się z głowicą TV/FM, w dokumentacji której
napisali że sterowanie mam mieć taki przebieg:
start - adr - ACK - dane - ACK - dane - ACK - .......... - stop.
Czy któś może mi powiedzieć jak mam zaprogramować taką komunikację w BASCOMIE i co zrobić z tym ACK ??
Pozdrawiam,
LK.

GasM
-
-
Posty:92
Rejestracja:4 lut 2004, o 11:57

Postautor: GasM » 27 wrz 2004, o 08:59

po prostu nie pisz parametru ACK lub NACK, zobacz w HELP'ie od BASCOM'a gdzie się tego dokładnie używa.

lk
-
-
Posty:7
Rejestracja:30 mar 2004, o 07:55

Postautor: lk » 27 wrz 2004, o 09:38

jasne, tylko głowica mnie "olewa" - nie reaguje i nie wiem dlaczego, a nigdzie nie mogę znaleźć "gotowca" w bascomie. Może potrzebuje jednak tego ACK w trakcie zapisu. Zastanawiam się czy to co było w Bascom College, to tylko efekt błędu "kopiuj&wklej", czy też w jakiejś starszej wersji bascoma było Ack i zostało usuniętę.
Głowica to FM1246, a opis był w EP1/2000, niestety nie było źródeł programu sterującego. Próbuję sam coś stworzyć i niestetu nie bardzo mi się to udaje.

Awatar użytkownika
Press
-
-
Posty:389
Rejestracja:10 mar 2004, o 16:21
Lokalizacja:Wrocław
Kontaktowanie:

Postautor: Press » 27 wrz 2004, o 12:52

ACk to potwierdzenie odebrania bajtu. Jest stosowane przy odbiorze danych na przykład z pamięci. Procesor potwierdza odebranie bajtu wtedy pamięć przechodzi do transmisji następnego bajtu z komórki o adresie o jeden wyższego. Jeśli ack sie nie pojawia to pamięć oczekuje na zakończenie transmisji przez uP. Przy zapisie do pamięci ACK nie jest potrzebny.
Zamiast I2CWrite zastosuj I2CSEND to bardziej zautomatyzowane polecenie. Moze zadzaiła.

lk
-
-
Posty:7
Rejestracja:30 mar 2004, o 07:55

Postautor: lk » 27 wrz 2004, o 12:57

spróbuję wieczorem, dzięki za podpowiedź
LK

lk
-
-
Posty:7
Rejestracja:30 mar 2004, o 07:55

Postautor: lk » 28 wrz 2004, o 08:24

chciałem spróbować i2csend i d...
Przy próbie kompilacji takiego programiku:

Dim Slave As Byte
Dim Ax(10) As Byte
Dim A As Byte
Slave = &HC0
For A = 1 To 10
Ax(A) = A
Next
I2csend Slave , Ax() , 10
END

Kompilator daje błąd:
"Error 231: Index expected [AX()] in file ....., line 10"

Zgłupiałem do reszty, w helpie jest tak samo, a nie działa.
Czy ktoś używa i2csend ???

Awatar użytkownika
Press
-
-
Posty:389
Rejestracja:10 mar 2004, o 16:21
Lokalizacja:Wrocław
Kontaktowanie:

Postautor: Press » 28 wrz 2004, o 08:37

Musisz coś mieć źle ustawione, albo za starą wersję Bascoma, bo u mnie kompiluje się bez problemu.
Jak coś, to napisz prog i prześlij na aeaiaei@wp.pl, a ja Ci skompiluję i odeślę hex'a.

lk
-
-
Posty:7
Rejestracja:30 mar 2004, o 07:55

Postautor: lk » 28 wrz 2004, o 08:47

Dzięki za propozycję, wolałbym kompilować u siebie :)
jaką masz wersję bascoma ??

Awatar użytkownika
Press
-
-
Posty:389
Rejestracja:10 mar 2004, o 16:21
Lokalizacja:Wrocław
Kontaktowanie:

Postautor: Press » 28 wrz 2004, o 09:31

Domyślam się, że pytasz o bascom dla 51, a nie AVR. To mam w wersji 2.0.4.0

lk
-
-
Posty:7
Rejestracja:30 mar 2004, o 07:55

Postautor: lk » 28 wrz 2004, o 09:43

a ja 2.0.11.0, co prawda DEMO, ale podobno miało być tylko ograniczenie rozmiaru programu do 2 kb

Awatar użytkownika
Press
-
-
Posty:389
Rejestracja:10 mar 2004, o 16:21
Lokalizacja:Wrocław
Kontaktowanie:

Postautor: Press » 28 wrz 2004, o 16:14

Tak, DEMO ma tylko ograniczenie kodu, więc powinno się kompilować. :|

lk
-
-
Posty:7
Rejestracja:30 mar 2004, o 07:55

Postautor: lk » 29 wrz 2004, o 08:11

Właśnie dostałem odpowiedź od Marka Albertsa:

But ok, you need to provide an index :
I2csend Slave , Ax(1) , 10
^^^^
Tak się kompiluje, a czy działa spróbuję wieczorem.

Awatar użytkownika
Lemur
-
-
Posty:17
Rejestracja:27 lip 2004, o 08:30
Lokalizacja:Pruszków

Re: BASCOM - i2cwbyte ACK (??)

Postautor: Lemur » 30 gru 2004, o 11:16

Witam,
w "bacom college" przy opisie magistrali i2c podana była informacja,
że polecenie i2cwbyte ma parametr ack/nack , natomiast bascom
pokazuje błąd (w helpie i2cwbyte nie mam parametru ack/nack).
Próbuję komunikować się z głowicą TV/FM, w dokumentacji której
napisali że sterowanie mam mieć taki przebieg:
start - adr - ACK - dane - ACK - dane - ACK - .......... - stop.
Czy któś może mi powiedzieć jak mam zaprogramować taką komunikację w BASCOMIE i co zrobić z tym ACK ??
Pozdrawiam,
LK.
Witam...
Trochę może późno podejmuję dyskusję ale pojawił mi się dosłownie identyczny problem z kostką przedwzmacniacza audio . W dokumencji jest zwrot ,który na polski przetłumaczyłem sobie,że to kostka ma dać odpowiedź (ACKnowledge) na wysłaną daną.
A więc kod programu powinien wyglądać chyba tak :

I2cstart
I2cwbyte jakiś_adres
I2crbyte zmienna , ACK
I2cwbyte wysyłana_dana
I2crbyte zmienna , ACK
i2cstop

Na razie nie mam jescze możliwości przetestować tego w praktyce.
Ciekawi mnie jak rozwiązałeś (zwaracam się do LK) ten problem.

iNTELL
-
-
Posty:37
Rejestracja:10 kwie 2003, o 10:32
Lokalizacja:Wrocław
Kontaktowanie:

Postautor: iNTELL » 2 sty 2005, o 02:42

Ja zawsze zamiast ACK lub NACK wpisuje cyfrę 8 lub 9. Zawsze działa, nie wiem czy działa jesli wpisze się słownie, po prostu nie testowałem.

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 46 gości