Witam,
Potrzebuję pomocy w napisaniu programu pod VisualBasic który będzie sie w jakikolwiek sposób mógł skomunkować z ATMEL'em - może być LPT i ustawianie np D0, D1 a czytanie wartości D2,D3 , moze rowniez byc RS232, I2C - cokolwiek.
Pozdrawiam,
Truman
ATMEL 2313 <=> VisualBasic
Użyłem VB i MSComm - jest już dobrze bo prawie mi to działa - mam jeszcze problem z odbiorem. Jak uzywam mscomm1.input to albo dostaje jakis dziwny ciąg znaków albo nic?
'Wybranie portu COM1.
MSComm1.CommPort = 1
'Ustawienie parametrów transmisji:
'9600 szybkość, Bez parzystośoci, 8 bitów danych, 1 bit stopu
MSComm1.Settings = "9600,N,8,1"
'Wyczyszczenie bufora odczytu
MSComm1.InputLen = 0
'Otwarcie portu
MSComm1.PortOpen = True
'Wysłanie komunikatu "AT" do modemu
MSComm1.Output = Text1.Text
'Oczekiwanie na odpowiedź
Do
DoEvents
Loop Until MSComm1.InBufferCount >= 10
Text2 = MSComm1.Input
'Zamknięcie portu
MSComm1.PortOpen = False
'Wybranie portu COM1.
MSComm1.CommPort = 1
'Ustawienie parametrów transmisji:
'9600 szybkość, Bez parzystośoci, 8 bitów danych, 1 bit stopu
MSComm1.Settings = "9600,N,8,1"
'Wyczyszczenie bufora odczytu
MSComm1.InputLen = 0
'Otwarcie portu
MSComm1.PortOpen = True
'Wysłanie komunikatu "AT" do modemu
MSComm1.Output = Text1.Text
'Oczekiwanie na odpowiedź
Do
DoEvents
Loop Until MSComm1.InBufferCount >= 10
Text2 = MSComm1.Input
'Zamknięcie portu
MSComm1.PortOpen = False
W końcu tu chodzi o modem czy AVR-aqba pisze: 'Wysłanie komunikatu "AT" do modemu
MSComm1.Output = Text1.Text
(zakładam że o AVR-a)
Twój kod wygląda na dobry, sprawdź czy konfiguracja portu w PC zgadza się z tą w procku, popróbuj na innych prędkościach.
Jakiego użyłeś kwarcu? Do RS232 powinien to być 11059200 Hz - wtedy dla każdej prędkości transmisji nie ma żadnych błędów. Jeśli masz inny kwarc i nie chcesz go zmieniać to ściągnij instrukcję (LINK) i zobacz jakiej powinieneś użyć prędkości - tabelka strona 47.
Co do LPT w VB polecam DlPortIO
VB + AVR
Witam,
Już sam nie wiem co robić, "opanowałem" wysyłanie informacji do AVR i tam prawie dobrze mi idzie odczyt, ale odczytac coś na PC to tragedia - wczoraj udało mi się wysłać liczby, kolejno 1,2,3,4...1000 mozna powiedzieć ze 600 było czytelnych pozostałe to jakieś bzdury.
Ale dzisiaj znalazłem chyba powód dla którego mi nie działało LPT - nie wiedziałem o tym, żę w BIOS trzeba ustawić port "dwukierunkowy" jeżeli to jest to to jestem uratowany.
Pozdrawiam,
Kuba
Już sam nie wiem co robić, "opanowałem" wysyłanie informacji do AVR i tam prawie dobrze mi idzie odczyt, ale odczytac coś na PC to tragedia - wczoraj udało mi się wysłać liczby, kolejno 1,2,3,4...1000 mozna powiedzieć ze 600 było czytelnych pozostałe to jakieś bzdury.
Ale dzisiaj znalazłem chyba powód dla którego mi nie działało LPT - nie wiedziałem o tym, żę w BIOS trzeba ustawić port "dwukierunkowy" jeżeli to jest to to jestem uratowany.
Pozdrawiam,
Kuba
Port dwukierunkowy - zależy jak chcesz zrealizować tą komunikację. Jeśli nie ustawisz portu dwukierunkowego napewno powinna chodzić komunikacja PC -> AVR (na liniach danych).
Co do rs232 - tu masz kody mojego terminala, przy pomocy którego uruchamiałem takie rzeczy jak ty chcesz uruchomić, więc musi działać -> LINK . Rozwiazania działają, ale nie są najlepsze, bo pisałem to ponad 2 lata temu jak dopiero zaczynałem VB
powodzenia
edit: aha, a zrobiłeś to co wcześniej napisałem ?
Co do rs232 - tu masz kody mojego terminala, przy pomocy którego uruchamiałem takie rzeczy jak ty chcesz uruchomić, więc musi działać -> LINK . Rozwiazania działają, ale nie są najlepsze, bo pisałem to ponad 2 lata temu jak dopiero zaczynałem VB
powodzenia
edit: aha, a zrobiłeś to co wcześniej napisałem ?
Mam podobny problem z tego wzgledu na zaczynalem nowego tematu.
Komunikacja M8(Bascom) i PC(Visual Basic), odbieram i wysylam dane PC<=>M8, problem w tym ze jak jest to jedna wartosc to nie ma problemu. Jak np. wysle dane z przetworników AC w postaci:
To nie wiem jak je przypisac w VB do opowiednich pól Label ?
c4r0 czy mozesz uaktualnic link do twojego programu terminal.zip , obecnie pliku nie da sie pobrac.
Komunikacja M8(Bascom) i PC(Visual Basic), odbieram i wysylam dane PC<=>M8, problem w tym ze jak jest to jedna wartosc to nie ma problemu. Jak np. wysle dane z przetworników AC w postaci:
Kod: Zaznacz cały
Print AC1; AC2; AC3c4r0 czy mozesz uaktualnic link do twojego programu terminal.zip , obecnie pliku nie da sie pobrac.
Właścicielem mojego programu już dawno stał się niebyt, więc nie zaktualizuję linka. Nie wiem natomiast w czym tkwi twój problem. Odbierasz dane, ale nie wiesz jak rozdzielić? Jaki jest format tych danych? Ascii, czy binarny? W ogóle basic śmierdzi i trudno zapanować nad tym co jest wysyłane i w jaki sposób. W C można lepiej to zrobić, chociaż jest trudniej.