Printbin Inputbin.
Są odpowiednie pary: PRINT - INPUT PRINTBIN - INPUTBIN PRINTHEX - INPUTHEX Jest jeszcze jedna para: SEROUT - SERIN gdzie zawsze określasz format transmisji.
Poza tym sprawdzałeś przejście między RxD a TxD tego samego procesora? Jeśli tak to rób tak dalej, a uszkodzisz kiedyś coś ;) A niby to dlaczego? Teraz program działa tak jak chciałem. Wyświetla od razu odpowiednią wartość zmiennej na lcd. Niewiem tylko dla czego musiałem zamienić print i input na printbin i inputbin żeby zadziałało? Printbin i Inputbin...
W nadajniku print zmienna umieściłem w przerwaniu co 1sekundę. W terminalu przykładowo wygląda to tak; 223 223 223 223 223 224 itd Jak wcześniej używałem printbin - inputbin to działało, czasem tylko gubiło dane. Dlatego próbuję doprowadzić transmisję do ładu.
Dareks, dziękuje serdecznie. Printbin i Inputbin rozwiązał problem. Pozdrawiam
Tak zgadza się przy PRINTBIN i INPUTBIN podaje się ilość bajtów do wysłania/odebrania, czyli 3 x integer = 6 bajtów.
PrintBin i Inputbin może. Chyba jest prostrze. No i radze dodać CRC do danych. A przynajmniej jakąś prostą sumę kontrolną.
Układ MCP2150 łączy się z uC za pomocą UARTa i kilku sygnałów pomocniczych. W BASCOM'ie wystarczy Printbin i Inputbin i masz całą transmisję.
A zamiana Cls na Locate 1 , 1 ? Sprawdzałeś ? Spróbuj jeszcze wymiany (nadawanie i odbiór jako Word a nie String) za pomocą: [syntax=basic4gl]Nadajnik: Dim Wart1 As Word Printbin Wart1 Odbiornik: Dim I As Word Inputbin I Locate 1 , 1 Lcd I [/syntax]
Tez na poczatku amielm probelmy z Uartem jednak polecenia Printbin i Inputbin dały poprawne rezultaty bez zadnych problemow tylko juz wiem z doswiadczenia ze ten port jest bardzo delkatny na podlaczanie go na gorąco. Pozdrawiam:)
SERIN i SEROUT to nie jest do RS232. Do tego jest Print/Printbin i Input/Inputbin. Jest jeszcze Inkey.
"bierzesz w ręce" zwykłe polecenia do nadawania jak PRINT , lub do odbierania jak: INPUT czy INKEY i lecisz :) Od razu trzeba napisać, że należy użyć PRINTBIN i INPUTBIN bo kolega będzie przez 10 postów znów pytał jak wysłać tym ciąg bitów i że znów nie działa.
Spróbuj zamiast INKEY uzyć INPUTBIN a zamiast PRINT uzyć PRINTBIN u mnie to zawsze działało i nie zapomnij otworzyc portu za pomocą instrukcji OPEN bo tego brakuje w progamie- otwórz sobie helpa i wyszukaj "OPEN" tam jest dokładnie opisane A co do INPUTBIN i PRINTBIN to uart programowy
Zamierzam użyć poleceń printbin #, inputbin # ale wcześniej oczywiscie otworzyckanały procedurą open. Brzmi to dość dwuznacznie i kojarzy się z programowym UART. Jeśli tak to proponuję użyć sprzętowego UART, gdyż dysponujesz wtedy instrukcją Bufor = Ischarwaiting() pozwalającą ustalić czy w buforze jest znak (również 0). Inaczej trudno rozróżnić...
Podłącz MAX232 do procka według załączonego schematu i po krzyku. Do komunikacji możesz użyć (m.in.) następujących komend BASCOMa: $BAUD=prędkość transmisji lub BAUD=prędkość transmisji - ustala prędkość transmisji (musi być jednakowa dla procka i PC) PRINT zmienna1 ; zmienna2 ; "stała" - wysyła dane z procka do PC INPUT - oczekuje na dane z PC Istnieją...
Witam Panowie mam problem mianowicie z komunikacją UART 2 AVR .Jeden z nich to Atmega16(odbiornik) a drugi Atmega328(Nadajnik) i tak: Nadajnik wysyła 2 zmienne do odbiornika na którym jest wyświetlana wartość na LCD i wszystko działa poprawnie ale zdarza się tak że zmienne lubią zamienić się miejscami tzn, "Znak" dostaje wartość "Znak_1" i odwrotnie....
Zrób na Printbin. Print dodaje znak końca linii nie mówiąc już o tym że nadaje textowo. Waitkey chyba też odbiera textowo, ale nie jestem do końca pewny. Nawet to co pisze w Helpie mnie nie przekonuje. Zrób tak: Dim A As Byte Do A = InputBin Printbin A Loop
Dalem rezystory i nic. Jeśli chodzi o fragment kodu z obsluga uartu to nie ma takowego. Otwieralem kanaly, konfigurowalem i nic. Mam tylko poustawiane w kompilatorze. Moze to jest spowodowane uzyciem komend printbin i inputbin? Niewiem czemu komendy pirnt i input nie dzialaja? Co do przejscia na C to nie ma szans, nie mam czasu sie uczyc teraz C. Jesli...
Trochę prób przyniosło w końcu pewne efekty. Kod w bascomie jest źle napisany. Polecenie PRINT wysyła znak w postaci ASCII, należy tutaj użyć polecenia PRINTBIN. Po poprawnym, pojedynczym wysłaniu komendy reset (C1H) - brak reakcji. Po wysłaniu kilka razy pod rząd tej samej komendy układ ładnie odpowiada : CD [syntax=basic4gl]$regfile "m16def.dat" $crystal...
Mówisz, że opóźnienie masz 0,7ms po każdym wysłanym bajcie a czy po zmianie kierunku nadawania tą linią sterującą masz jakieś opóźnienia. Nie 0,7ms po każdym bajcie, tylko sumarycznie, jesli wysyłam kilka zmiennych które razem zajmują 10bajtów to wstawiam po wysyłce 7ms opóźnienia. Przy 0,4ms/bajt czasami pojawiają się problemy, 0,5ms/bajt wszytko...
Acha, to jeszcze dochodzi do tego warunek że sygnał cyfrowy nie może zawierać składowej stałej (bo pewnie dane analogowe to jakieś napięcie stałe)? Napisz jaką potrzebujesz prędkość. Bo inaczej problemu nie rozwiążemy. Możemy Ci tu mówić i mówić i nic to nie da. Więc najlepiej jak powiesz co chcesz osiągnąć a My (ja) podsuniemy Ci gotowca. PS. Nie wiem...
wytlumacze sie :D zamiast dg1 itd powinno byc zmienna1 itd. nie zmienilem . probowalem tak zrobic jak piszesz i nic. zrobilem tez i tak mov a,{zmienna1} mov sbuf,a poczekaj_: jnb scon.1, poczekaj_ clr scon.1 ale wynik byl taki sam ciagle nie to co trzeba wyswietla wyswietlacz probowalem polecen put,get,inputbin,printbin i ciagle to samo juz nie wiem...
To prawda co piszesz ale nadal nie rozumiem co ma wspólnego print"b" ze zmianą stanu w odbiorniku pind.6 A może to zupełnie coś innego PIOTR Już mi się rozjaśniło każde przerwanie powoduje zmianę stanu portu A jak wygląda przesyłanie danych typu byte w takim przykładzie?? w procesorach 51 wystarczyło napisać A=42 printbin a w odbiorniku inputbin A i...
W sumie z buforem to chciałem oszczędnie, jeśli chodzi o pamięć. Dane można wysyłać przez Printbin, a odebrać przez Inputbin. Nadając zmienną integer funkcją Printbin wysyłasz 2 bajty. Nagłówkiem może być jakiś bajt, nic nie przeszkadza żeby stworzyć sobie jakiś format przesyłania danych ;). nagłówek bajt X zmienna 1 long zmienna 2 word zmienna 3 byte...
Jak mam być szczery, to nie wiem co zrobiłem, że ruszyło, ale działa :) UART działa, przy czym oba procesory jadą na tym samym zegarze z zewnętrznego generatora kwarcowego na bramkach, prędkość w zakresie do 38400. Przesyła do kilkunastu bajtów bez problemu. Bez ustawiania buforów itp.cała obsługa UARTa jest w postaci inputbin i printbin na przerwaniach...
Też miałem z tym problem i kolega z Elektrody doradził mi żebym zastosował zamiast Input to Inputbin. I tak samo zamiast Print to Printbin, tyle, że ja to robiłem na RS485. Pozdrawiam
Według pdf parametry UART to: 9600 bps Check bit: None Stop bit:1 bit wysyła 24 bajty ze spacjami, pierwsze dwa są stałe, później długość ramki i dane. Kiedyś wysyłałem dane do playera TF16, gdzie format danych był taki sam i robiłem to przez printbin. Teraz wydawało mi się, że Inputbin załatwi sprawę. Wiem jakie są parametry, tylko nie...
Z tego co stwierdziłem, to czy odbieram: Inputbin Rx_data(1) Inputbin Rx_data(2) Czy Inputbin Rx_data(1),2 To zawsze odbiera mi tylko wysłany pierwszy bajt. Dodano po 31 Kolejna dziwna sprawa: Jak wysyłam : Send_data = 6 Printbin Send_data ; 8;<----------wysyłam daną send_data i jakąś liczbę to w odbiorniku obie są poprawnie odbierane i sprawdzane....
Witam Mam drobne pytanie do fachowców Jakim poleceniem zastąpić inputbin w odbiorniku aby program nie zatrzymywał się w pętli głównej i nie czekał na odebranie znaku W nadajniku występuje polecenie printbin zmienna do wysłania jest z zakresu od 0 do 255 typu byte procesor to 98c4051 PIOTR
dzięki za pomoc. Żeby mikroprocesor odbierający nie musiał długo oczekiwać na dane, zrobiłem tak, ze uC nadający wywołuje przerwanie w programie uC odbierającego, po czym nadaje (printbin). Natomiast uC odbierający w programie obsługującym przerwanie odbiera dane (inputbin). Dzięki za podpowiedzi
$crystal = 11059200 $baud = 9600 Dim A as Byte Print "Hello world" Input A To jest kompletny programik wysyłający tekst "Hello world" i odbierający 1 bajt (znak) z komputera. Nie trzeba włączać przerwań, a instrukcje wspomniane powyżej: Config Serialin = Buffered , Size = 50 'Konfiguracja UART IN Config Serialout = Buffered , Size = 50 'Konfiguracja...
Te przerwania muszą być włączone do buforowanego trybu odbioru danych. Ale co jest podpięte z drugiej strony do procesora? Dalej zidentyfikuj, na której instrukcji procesor staje (podpowiem żeby szukać przed czy po Inputbin). Witajcie, program staje na inputbin, Do Waitms 25 Printbin &H00 ; &H00 ; &H00 ; &H00 ; &HE7; ' Printbin &H00 ; &H00 ; &H00 ;...
Wysyłasz poleceniem: Printbin Bascom automatycznie wyśle 4 bajty z których składa się zmienna Long. A odebrać może poleceniem Inputbin Ale ta metoda nie jest zalecana bo program zatrzymuje i czeka do momentu aż odbierze 4bajty (jeśli odbieramy zmienna Long) Lepiej odbierać dane w przerwaniu i zapisywać je w tablicy a następnie użyć polecenia memcopy....
Witam, Po nieudanych próbach programowania w BASCOMIE komunikacji pomiędzy mikroprocesorami poprzez SPI(bascom sobie nie radzi, tzn ja sobie w basomie z tym nie poradziłem, a po licznych nieudanych próbach i po braku odpowiedzi, sugesti na ten watek wnioskuje że chyba to jest niewykonywalne w bascomie, a przykładów bardzo skąpo) jak również i2c (twi)...
Z kodowaniem też jest niewesoło napisałem kod na podstawie kodu kolegi niveasoft dla nadajnika [syntax=vbnet]$regfile = "M8DEF.DAT" $crystal = 16000000 $baud = 9600 Dim Tempword As Word , Temp As Byte Dim N As Byte Dim Junk As Byte : Junk = 126 Dim Synch As Byte : Synch = 127 Dim Bytes(2) As Byte 'odstepy w nadawaniu Const Deelay = 100 Declare Function...
Witam wszystkich. Mam następujące pytanie: Połączyłem dwa uP 89C2051 i 89C4051 następująco TxD jednego z RxD drugiego. Właczam Bascoma 8051 2.0.11.0 jednego programuje żeby wysyłał drugiego odbierał. Używałem różnych poleceń print , printbin, printhex; a do odbioru inkey, waitkey,inputbin. Żadnych efektów. Owszem kiedy wysyłam np.100 na LCD wyświelją...
... to uzyskuję w nich inen wartości niż wysłane 1 136 i 3. A co dokładnie oznacza "inne wartości" :?: Jakie wartości mają zmienne Dana1,... ,itd , w odbiorniku :?: Czy zawsze są jednakowe :?: Jak w nadajniku masz Lcd Dane1 ; "," ; Dane2 ; "," ; Dane3 Do Printbin Dane1 ; Dane2 ; Dane3 '... , to w odbiorniku daj Do Inputbin Dane1...
Jeśli masz program w uC napisany przez Ciebie to nie rozumiem w czym problem. To Ty ustalasz protokół transmisji i to Ty wybierasz sobie format zapytań i odpowiedzi. Przykładowo: uC - urządzenie podrzędne PC - urządzenie nadrzędne 1. Wysyłasz zapytanie z PC do uC w formacie np: T1 lub T2 lub P 2. uC odbiera to za pomocą pętli interpretującej, wyglądającej...
wszytko fajnie przesyla zmienie ale odebrane sa inne niz wyslane ;( nadajnik kod: Open "Com3.1:9600" For Output As #1 Dim Dg1 As Integer Dim Dg2 As Integer Dim Ntemp As Integer Dg1 = 221 Dg2 = 222 Ntemp = 21 Wait 2 Reset P1.0 Printbin #1 , Dg1 Printbin #1 , Dg2 Printbin #1 , Ntemp Wait 1 Set P1.0 Close #1 End odbiornik Kod: Open "Com3.0:9600" For Input...
wszytko fajnie przesyla zmienie ale odebrane sa inne niz wyslane ;( nadajnik Open "Com3.1:9600" For Output As #1 Dim Dg1 As Integer Dim Dg2 As Integer Dim Ntemp As Integer Dg1 = 221 Dg2 = 222 Ntemp = 21 Wait 2 Reset P1.0 Printbin #1 , Dg1 Printbin #1 , Dg2 Printbin #1 , Ntemp Wait 1 Set P1.0 Close #1 End odbiornik Open "Com3.0:9600"...
Przepraszam że dawno nie odpisywałem, byłem trochę zajęty (i w pracy druga zmiana). Po stronie uC to narazie wygląda to tak: [syntax=basic4gl] 'Drugi program do testòw 04.12.2013 $crystal = 8000000 $baud = 19200 $regfile = "m32def.dat" $hwstack = 32 ' default use 32 for the hardware stack $swstack = 10 'default use 10 for the SW stack $framesize...
Printbin i Zmienne A = &HE0 B = &H0C załatwiły sprawe :) Teraz kolejny problem otrzymuje z wyświetlacza w Hexie "00" i po otrzymaniu chcę zmienić stan portu próbuję tak> [syntax=vbnet] Dim Of As Byte Inputbin Of If Of = 00 Then Porta.2 = 1[/syntax]
Witam, W żadnym temacie na elektrodzie z komunikacją bezprzewodowa nikt nigdy nie udostępnia kodów (nie wiem dlaczego). Męczę się od kilku dni z przesłaniem ramki. Mam moduły 433 MHz, te najprostsze, ale na razie próbuje to zrobić po kablu. Dane są kodowane w manchester, funkcja kodująca działa poprawnie, ale nie mogę się poprawnie zsynchronizować....
zagieles mnie tymi pytaniami. Szczerze, myslalem ze rozumiem ten kod ktory napisalem. To moze ja jeszcze troche poczytam o przesylaniu danych przez rxd i txd. A te strony oczywiscie ze czytalem nie roznia sie znaczenie od siebie. Ostatnia pokazuje wyjscia portu ipoda Przeznaczenie: Przesyła binarnie zawartość dowolnej zmiennej przez sprzętowy lub programowy...
Muszę odebrać 9 zmiennych bitowych . Transmisja działa ale jest problem, co jakiś czas zdarzają się przypadki gubienia danych lub fałszywych danych.Zmiana szybkości transmisji nie pomaga.czy ktoś pomoże rozwiązać problem? fragmenty kodów [syntax=basic4gl] 'nadajnik $regfile = "m128def.dat" $crystal = 7372800 $hwstack = 32 $swstack = 10 $framesize =...
Wysyłanie i odbieranie RC5 jest w Bascom kodowane automatycznie. Manchesterem swoje dane musisz więc zakodować sam. Poniżej masz wersję którą mam jeszcze w planie dopracować więc nie myśl o niej jak o finalnej. na pewno można coś poprawić. Po skopiowaniu ten kod powinien znajdować się w tym samym folderze co Twój kod. [syntax=basic4gl]$nocompile ' send_by_air...
Odbiornik RC5 działa. 1 na pilocie wyłącza diodę, 2 włącza $regfile = "attiny2313.dat" $crystal = 1000000 Config Rc5 = Pind.2 Config Pind.2 = Input Config Portb = Output Dim Address As Byte , Command As Byte Enable Interrupts Do Getrc5(address , Command) If Address = 0 Then Command = Command And &B01111111 Select Case Command Case...
Nadajnik: Const Crc8_polynominal = &B10001101 'CRC-8-CCITT Do Buff(1) = 23 Buff(2) = ADCL Buff(3) = ADCH ldi R20, 3 Loadadr Buff(1) , X Gosub Calculate_crc PrintBin Buff(1) PrintBin Buff(2) PrintBin Buff(3) PrintBin Crc_obliczone Waitms 100 Loop '---------------------------------------...
Podejrzewałem to jednak nie umiem zrobić detekcji 0 a mam jeszcze 4k wolne Coś bym zaadaptował z tego jednak nie rozumiem w pełni tego kodu a jak czegoś nie rozumiem nie stosuje Gdyby ktoś wypowiedzieć się mógł tak dla głąba jak to działa. Kod z tego forum nie mój. http://obrazki.elektroda.pl/3285358500_1... Pomoże mi jakaś dobra osoba , mogę...
http://obrazki.elektroda.pl/5214176000_1... Witam. Przedstawione rozwiązanie powstało z myślą o zdalnym (radiowym) sterowaniu modelem samochodu. Umożliwia płynne regulacje: kierunku (lewo/prawo) oraz prędkości ruchu (przód/tył). Rozkaz typu "włącz/wyłącz" pozwala np. uruchamiać sygnał dźwiękowy (klakson) lub włączać światła. Spośród...
No i paczka doszła. Szybko zrobione na stykówce, i wyświetlacz działa, ale coś jest nie tak, oraz nie widzę komunikacji. Nadajnik: [syntax=Bascom] $regfile = "m8def.dat" $crystal = 1000000 $hwstack = 40 $swstack = 16 $framesize = 32 Config Portb.1 = Input Portb.1 = 0 Config Portd.3 = Output Config Pind.1 = Output 'PIN TXD Set Portd 'PIN TXD Enable Interrupts...
No może w tym przypadku jakoś sobie poradzę. sei Enable Urxc On Urxc Odb_znaku Do Kod_kl = Getatkbd() 'odczytanie danej z klawiatury If Kod_kl <> 0 Then Gosub Klawiatura Printbin 144; '144 End If Toggle Portb.2 Loop End Klawiatura: If Kod_kl > 0 Then 'jeśli odczytany kod ma wartość większa niż 0, to If Kod_kl > 31 And Kod_kl...
Pomyłka - miało być napisane INPUTBIN, INPUTHEX. Problem w tym że nie potrafię tego wykorzystać co jest w HELPie. Nie mam pomysłu na odebranie tych danych i zapisanie ich do zmiennej. Wgrałem taki program [syntax=vbnet] $regfile = "m8def.dat" $crystal = 8000000 $baud = 9600 Dim Odczyt As Double Dim Pnext(8) As Byte Pnext(1) = &H7E Pnext(2) = &HFF Pnext(3)...
Masz rację Moja pomyłka Chodziło mi o liczbę 12345, której nie mogę zadeklarować jako BYTE Ten przecinek dorabiam sobie później poleceniem np takim Sds1 = Format(sds1 , " 0.0") Napisałem coś takiego NADAJNIK $crystal = 8000000 $baud = 19200 Cls Cursor Off Config Serialout = Buffered , Size = 6 Enable Interrupts Enable Utxc Dim A As single Dim B(2)...
Nareszcie twórcza odpowieć. Dięki wielkie myślę że coś z tym zrobię chociarz nie ukrywam że wolałbym ręczny ruch potencjometru jako priorytet lecz ten program a właściwie atmega musi zmieścić jeszcze więcej funkcji. A jak zrobić żeby flaga była ustawiana dopiero po odebraniu komunikatu? Dodano po 2 Przepraszam za odgrzewanie tematu, napisałem program...
Witam Zawsze bawiłem się z atmega32 ale od do projektu potrzeba mi 6 kanałów PWM 16bit (sterowanie 2 serwa i 4 regulatory z rewersem). Zastosowałem atmega128 T1 i T3 . Wszystko było było by OK ale na kanale OC1C jest brak sygnału , zapewne banalne rozwiązanie ale jakoś nie mogę zatrybić nadajnika: [syntax=vbnet]$regfile = "m32def.dat" $crystal = 16000000...
witam wszytskich, mam duzy problem z komunikacja po RS dla wymienionych procesorow, przegladalem fora, web i nic, bede wdzieczny za pomoc w rozwiazaniu problemu Kod programu RX '$sim $regfile = "m32def.dat" $crystal = 8000000 $baud = 19200 Dim Flag1 As Byte Dim A As Word Dim B(2) As Byte Config Serialin = Buffered , Size = 20 Enable...
Witam Musze wykonac na zaliczenie przedmiotu nastepujace zadanie, mam w ukladzie dwa procesory Atmega8, pierwszy procesor mierzy napiecia za pomoca wbudowanych przetwornikow i jest polaczony z drugim procesorem za pomoca programowego UARTu. Drugi procesor ma podlaczony LCD i wyswietla przeslane wartosci napiec. Problem w tym ze procesor albo zle interpertuje...
Próbuję nawiązać połączenie z myszą komputerową. Temat był omawiany tutaj kilka razy, ale zauważyłem, że wiele osób próbuje pisać skomplikowane programy obsługi protokołu 8042. Zastanawiam się, czy nie lepiej skorzystać ze sprzętowego układu USART, który posiadają większe mikrokontrolery AVR. Dokumentacja protokołu, znajduje się 'Próba nawiązania łączności...
inputbin ischarwaiting bascom inputbin bascom printbin
android bluetooth aplikacja pralka korki czytać schemat elektryczny
dodatkowa bateria hulajnogi dodatkowa bateria
Ślizganie siłownika bramy po zębatce - przyczyny i naprawa Przekaźnik 204 w Audi A4 - funkcje i diagnostyka