Witam, Jak w tytule kod: [syntax=vbnet] Dim Comand(8) As Byte ' 7E FF 06 12 00 00 01 EF Comand(1) = &H7E Comand(2) = &HFF Comand(3) = &H06 Comand(4) = &H12 Comand(5) = &H00 Comand(6) = &H00 Comand(7) = &H01 Comand(8) = &HEF Do Wait 10 Printbin #1 , Comand(1) Loop [/syntax] Wysyła za pomocą printbin całą tablicę więc dokładnie: 7EFF0612000001EF Według...
Printbin Inputbin.
Zainteresuj się funkcja Printbin oraz podziel dane na osobne bajty.
No właśnie ;-) Spróbuj Print I , lub lepiej: Printbin I
To: 1. Rozbij sekwencję na kody ASCII i umieść je w tablicy 2. Wyślij tablicę za pomocą Printbin Tablica(1) ; ilość_elementów_tablicy
Powinno być: [syntax=basic4gl]Printbin Send(1) ; 3 ' wyślij 3 elementy tablicy Send(), zaczynając od pierwszego elementu tablicy.[/syntax]
Obojętnie jakie dane wysyłasz musisz je zakodowac w postaci znakowej.
...Gdy z terminala wysyłam 2 to procek zwraca mi 50 gdy 1 to 49 gdy 3 to 51 itd Pewnie gdyby a była single to by było O.K. "Kłaniają się" typy zmiennych. Kiedy do terminala wpiszesz 2 , to po łączu szeregowym do uC , jest wysyłany kod ASCII cyfry 2 , czyli dziesiętnie 50.Instrukcja print , "przetwarza" owe 50 na ciąg znaków ASCII reprezentujących liczbę...
Zamiast 'Print' użyj 'Printbin'
Spróbuj printbin.
Czy ktoś może mnie oświecić czemu string nie może mieć pustego znaku... Ponieważ pusty znak (zero) oznacza koniec łańcucha, np: ...czemu printbin wszystko wiesza? A próbowałeś w taki sposób wykorzystać Printbin ?: [syntax=basic4gl]Printbin Adres(1) ; 4 ; Dane(1) ; 37[/syntax]
Spróbuj tak: [syntax=basic4gl]Play: Printbin $55 Printbin $aa Printbin $00 Printbin $03 Printbin $01 Printbin $f7 Return [/syntax] Nie ma sensu stosować funkcji tam gdzie wystarczy podprogram. Nie działa bo jest - Debounce Portb.0 , 0 , Play , Sub - LITOŚCI!!! Debounce Pinb.0 , 0 , Play , Sub - MA BYĆ!
Tylko, że mi Uart jest ciągle potrzebny. Ale pokombinuję.. Nie znam funkcji printbin, ale zaraz poznam :)
Witam Gdyby dalej były problemy z uruchomieniem transmisji to mogę podesłać kod źródłowy do takiego urządzenia, bo sam coś takiego zrobiłem z tym że wynik podawany jest na 3 wyświetlacze LED. Transmisję zrealizowałem bardzo podobnie tylko za pomocą bascomowego polecenia Inkey(), odbierane są zawsze dwa bajty i na podstawie ich zawartości określane jest...
Jak chcesz wysyłać bezpośrednio wartości do portu(tzw tryb binarny) to w bascomie komenda printbin zmienna. Spowoduje to wpisanie wartości zmiennej do bufora a potem jej wysłanie. W standardowej komendzie print jeżeli na końcu linijki nie dasz znaczka";" to do wszystkiego doda enter(LF CR) dlatego ci drukuje dodatkowe rzeczy po prosty daja tak print...
tak faktycznie to była pomyłka ale gadałem z kolegą darkomen na gg i okazało się ze miał kwarc 11,xxxMhz i tylko 9600b i bascom nadpisywał dane przed zakonczaniem wysyłania okazało się że PRINTBIN dane(1),1500 działa poprawnie
Printbin Do odbieranie zastosuj przerwanie od uarta.
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....
Zamiast "Print" użyj "Printbin"
no i działa ładnie , mój błąd polegał na tym , że nie wysyłałem danych instrukcją printbin i na drugim procku otrzymywałem wartosci w postaci kodu ASCII . Mam jeszcze jedno pytanie , jak tym sposobem odebrać kilka danych jednocześnie , czyli jak odebrać wartości od instrukcju printbin a ; b ; c ??
SERIN i SEROUT to nie jest do RS232. Do tego jest Print/Printbin i Input/Inputbin. Jest jeszcze Inkey.
Przecież jest PRINTBIN.
Witam, aby tekst nie znikal od razu wystarczy dac srednik, np. print "Seba"; Aby zmienic jasnosc podam kawalek programu: Print "Seba"; Waitms 500 Printbin &H1B ; &H4C ; 0 '25% Wait 1 Printbin &H1B ; &H4C ; &H40 '50% Wait 1 Printbin &H1B ; &H4C ; &H80 '75% Wait 1 Printbin &H1B ; &H4C ; &HC0 '100% Wait 1 Wszystko jest opisane w nocie katalogowej, instrukcja...
Printbin Rama(1) wyśle całą tablicę chyba, że chcesz Hexstring to wtedy For N = 1 to 8 Print Hex(rama(n)).
Steruję urządzeniem poprzez UART. Jestem w stanie wysłać komendę w ten sposób: [syntax=vbnet] Dim Pnext(8) As Byte Pnext(1) = &H7E Pnext(2) = &HFF Pnext(3) = &H06 Pnext(4) = &H01 Pnext(5) = &H00 Pnext(6) = &H00 Pnext(7) = &H00 Pnext(8) = &HEF Printbin Pnext(1) [/syntax] Problem mam z odebraniem danych - nie wiem jak to zrobić. Próbowałem użyć funkcji...
Czy liczba jest zawsze siedmiocyfrowa? Nie mówie że to jedyny sposób ale podam jeden z możliwych. Deklarujesz zmienną tekstową siedmioznakową. Taka zmienna ma w rzeczywistości osiem bajtów. Nie chcesz wysyłać ósmego NULL. No i OK :D Na te zmienną nakładasz bufor siedmiu bajtów. Kiedy zmienna Dword każesz zamienić Bascomowi na string to on zapisze komórki...
Jeśli zdecydujesz się na Basic, co zapewne dużo ułatwi pisanie aplikacji, prosze przykład komunikacji MODBUS RTU dla Zamel EXTA FREE, do sterowania ROP. [syntax=vbnet]$regfile = "m8def.dat" $crystal = 8000000 $baud = 9600 $hwstack = 32 $swstack = 10 $framesize = 40 Config Com1 = Dummy , Synchrone = 0 , Parity = Even , Stopbits = 1 , Databits = 8 , Clockpol...
Wyświetlacz to ITRON NORITAKE BA63. CU20029SCPB-TA25. Normalnie obsługuje on polską stronę kodową po jej włączeniu komendą. Nie działa to w połączeniu z komendą DATA w Bascom. NP: [syntax=basic4gl]weekdays: Printbin &H1B ; &H52 ; &H32; ' ustawienie strony kodowej Data "Poniedzia" ; &h9D ; "ek" ;[/syntax]
a czy instrukcja print nie wykorzystuje dwóch pinów? W przypadku uniwersalnego interfejsu szeregowego w trybie asynchronicznym nadawanie odbywa się po jednym przewodzie, podobnie jak odbiór. Bascom HELP --> Config com1, baud, open , close, print, printbin itp
w bascomie masz instrukcje Printbin która wysyła dane po rs232, ale jeżeli chodzi o to to pewnie już sie zorientowałeś. Natomiast jezeli o stronę programową od strony PC polecam gotowy komponent - "Cport" jest do ściągniecia gdzieś w sieci instalowany w środowiskach takich jak Delphi lub Builder C++. umozliwia bardzo łatwa komunikacje z portem COM....
siedzę nad tym od rana, i nadal poradzić sobie nie mogę. Czy był byś w stanie mi pomóc z tym timerem, oraz z wysyłaniem przez uart ? Dodano po 25 W tym momencie doszedłem do tego, że wystarczy sama bascomowa komenda "printbin". Problem polega tylko na tym, że do poprawnego wykresu muszę wysyłać tylko 1 bajt. Gdy próbuję przesłac zmienną typu Word o...
moze printbin ? albo print chr()
Ale PRINT mimo wszysko skonwertuje zmienną na postać textową. To musi być PRINTBIN.
Dzięki za zainteresowanie, ale nadal walczę z tematem. Jestem już o tyle mądrzejszy, że wiem iż nalezy używać instrukcji printbin. Jak coś wymyślę, to dam znać
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
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
PRINTBIN? A próbowałeś prościej? PRINT CHR(x) Gdzie x jest daną typu BYTE.
Jeżeli całe C tak działą jak ta komenda printf to bascom jest ze trzy razy lepszy. I jeszcze jedno - wszyscy co używają C chwalą się że to jest lepsze od bascoma bo szybsze ale w takim razie ja się pytam jak kod który jest dłuższy może działać szybciej? Chyba się tak nie da zrobić. Proponuję sprawdzić bo może jest też funkcja typu printbin a jeżeli...
Proponowałbym przejść na transmisję binarną ze względu na wymaganą przez Ciebie szybkość. Zastosuj Printbin w Bascomie i przez to pozbędziesz się transmisji znakowej na rzecz dużoszybszej binarnej. Proponuję kwarc 7.3728 MHz. Co do danych spróbój ustalić stałą ramkę danych np: nr_próbki, jej_wartość, kontrola_parzystości <-kontrola jako suma modulo...
Możesz podać gdzie przeczytałeś że ta liczba po przecinku oznacza liczbę wysłanych bajtów? Help nic nie mówi na ten temat. Sprawdzałem w symulatorze że ta liczba nic nie zmienia. Jest taka informacja w helpie "When you use Printbin ar(1) , the whole array will be printed." A kto powiedział że ja wpisuje dane? Ja je wysyłam. Ale twoja tablica jest pusta....
Proponuje spojrzeć do Helpa i wszystko stanie się jasne. Bascom bez problemów obsługuje MIDI, sprawdzone na uarcie programowym. Np: Open "comc.2:31250,8,n,1" For Output As #2 ... Printbin #2 , Zmienna_A ; Zmienna_B ; Zmienna_C; Temat zamykam
Możesz zdefiniować tablice 8-elementową ładować do niej dane i wysyłać poleceniem Printbin . [syntax=basic4gl]Dim Bufor(8) As Byte ' tablica 8 elemetowa .............. Printbin Bufor(1) , 8 ' wyślij 8 bajtów zaczynając od Bufor(1)[/syntax]
Nie pisałem nic na Rs485 ale mam kilka uwag do programu. Zacznij najpierw od poczytania w helpie bascoma, co robi dokładnie instrukcja Inkey() a dowiesz się że odbiera 1 bajt (jeden znak) z bufora. Sprawdzanie więc warunku B = "zaswiec" nie ma najmniejszego sensu. Nie wiem też po co przełączasz tyle razy układ w nadajnik <>odbiornik: ...... Reset...
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ę.
Możesz dodać te czasy jeśli "z ręki" działa... [syntax=vbnet]Dim Helpb As Byte , N As Byte Dim Mystring As String * 5 Dim Mybuff(5) As Byte At Mystring Overlay Mystring = "{013}xon{013}" For N = 1 To 5 Helpb = Mybuff(n) Printbin Helpb Waitms 500 Next [/syntax]
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.
Tak jak napisał Zumek: Dim W As Word Dim L As Byte Dim H As Byte W = 1000 L = Low(w) H = High(w) Do Loop End albo wysłać zmienną typu word bezpośrednio na UART'a: Printbin W Pozdrawiam...
uruchomiłem drugi uart $baud1 = 9600 Config Com2 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 Enable Interrupts do Open "Com2:" For Binary As #1 Print #1 , "test com2" Close #1 loop jednak mam problem nie chodzi mi rozkaz printbin i nie wiem dlaczego
Rezystor np 10k? A jeszcze jedno pytanko. Masz może jakiś przykładowy program w bascomie dla nadajnika który wysyła zawartość zmiennej w pętli do loop (co jakiś tam interwał) do odbiornika? Samo Printbin i Inkey() pewnie nie wystarczy
Wolę zapytać wprost, bo zacząłem się gubić. W jaki sposób zachowuje się zintegrowany z Bascom AVR program monitora transmisji UART podczas naciśnięcia klawisza ENTER? Pytam, bo chcę za pomocą uP (kodu w Bascom AVR) zrealizować w magistrali takie samo zdarzenie, jakie następuje po naciśnięciu klawisza ENTER na klawiaturze, z wbudowanego w Bascom AVR...
ja robię to tak [syntax=vbnet]$regfile = "m128def.dat" $crystal = 8000000 '$baud = 9600 Config Com1 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 Config Com2 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 Open "com1:" For Binary As #1 Open "com2:" For Binary As #2 Dim A As Word...
w bascom avr jest taka procedura programowego coma np: Open "comb.0:9600,7,e,1" For Output As #1 Printbin #1 , dnane(1), 3 Close #1 comb.0 to może być dowolny pin procka który masz wolny ale sprawdź bo nie na wszystkich to będzie działać Zobacz do helpa bascoma pod 51 czy jest podobnie
Tobie potrzeba przerwanie od odebrania znaku. Czyli robisz: [syntax=basic4gl]On URXC Przerwanie_od_RXD[/syntax] potem deklarujesz sobie zmienne i inne cuda: [syntax=basic4gl]Dim Odebrany_znak as Byte Dim Cos_przyszlo as Byte Dim I as Byte Dim Dlugosc as Byte[/syntax] Gdzieś na początku programu przez pętlą główną zezwalasz na obsługę przerwania: [syntax=basic4gl]Enable...
Nie słucha się Ciebie ani Atmegi ponieważ pomiędzy wysyłanymi bajtami wstawiasz<CR><LF> Bascom automatycznie dodaje Enter i znak końca linii kiedy coś Printujesz do portu. Jeśli tego nie chcesz to musisz postawić średnik za wysyłanym wyrażeniem Innymi słowy to teraz wygląda dla modułu tak: https://filmy.elektroda.pl/6_1489582819....
Firmware: Inadc1 = Getadc(3) Ch1 = Inadc1 / 4.0117647058823529411764705882353 Ch1disp = Ch1 Printbin Ch1disp Waitus 200 Po co jest to "Waitus 200"? Byłoby 20 kSps a nie 4. To dzielenie też chyba nie jest mocno potrzebne, wystarczyłoby /4 (mam nadzieję że bascom zrobi to efektywnie) lub coś w tym stylu.
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
Witam. Jestem w posiadaniu wyświetlacza VFD o symbolach 05464ASSY35119. Jest to dwu wierszowy wyświetlacz po 20 znaków. Nie potrafię ogarnąć inicjalizacji. Próbuję w BASCOM. Wyświetlacz wyświetla ciągle to samo, mimo wysyłania innych komend. Komendy wysyłam poleceniem Printbin. Wyświetlacz nie reaguje na polecenia. Prawdopodobnie trzeba mu wysłać odpowiednią...
"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.
Trzeba by poczytać troszku o RS485. Jeśli chodzi o sprzęt, to w zasadzie masz dwie główne możliwości. Pierwsza to półdupleks, czyli transmisja naprzemienna po tej samej parze przewodów, druga dupleks w układzie czteroprzewodowym (para przewodów od mastera, para do mastera). Dodatkowo korzystnie z punktu widzenia linii może być pociągnięcie między układami...
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...
Oj tam oj tam ;) mogę podrzucić szklaną kulę ;). Ale do rzeczy. Procesor Atmega 1284p. docelowo pewnie będzie inny. Rc5 na razie nie ma. Taktowanie 16MHz. Zrobbiłem w ten sposób: [syntax=vbnet]n=s MOD 2 if n=0 then printbin &h1b;38 print kropki; else printbin &h1b;38 print " "; end if[/syntax] Znalezione gdzieś na forum Elektrody. Niby działa ale nie...
Witam Kolego tadzik85... nadal nie dziala według twojej wskazówki, ale zmiana print na printbin pomogla odrazu Wielkie dzieki!! P.S. Przyznaje nie znałem czegoś takiego &H7E Dodano po 1 oczywiscie ; - średnik dodałem... ;) Pozdrawiam
Ok zastosowałem instrukcje PRINTBIN,ale co dalej ?Co należy zrobić żeby zamienić to na jakieś strawne dane?: http://obrazki.elektroda.net/26_12182960...
Sprawdź jak masz ustawiony terminal (bity stopu, parzystość) bo jeśli nie określasz tego w kodzie programu to ustawienia brane są z tych jakie masz ustawione w IDE. Jeśli prędkość procesora na pewno odpowiada tej zadeklarowanej to możesz spróbować tak. [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 $baud = 19200 Echo Off Dim Str_1 As String...
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...
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....
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 ponownie. Problem został rozwiązany. Użyta w procedurze jn. zmienna Ods nie może być lokalna. Print nie chce takiej zmiennej zaakceptować. [syntax=basic4gl] Sub Unitoutputdata_outputdata Local Odb As Byte Local Ods As String * 4 '----- Odb = Len(tmpout) 'Tmpout zawiera dane do wysylki Ods = Hex(crc16(tmpout , Odb)) Tmpout = "{" + Ods + Tmpout...
Jeden ULN możesz spokojnie wykorzystać do jednoczesnego buforowania wejść i wyjść, z tym, że wspólny punkt diod zabezpieczających (pin 10 w ULN2803) musi być podłączony do napięcia najwyższego w układzie (np. 24V) lub odłączony, Tak napisała mi jedna osoba która mi pomagał przy realizacji tego układu nie rozumiem czemu miałby się nie nadawać w nocie...
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...
Podałeś 3 kody do komendy PRINT. Wpisywałem każdy z osobna, i uzyskałem: Dla pierwszego- znak liczby PI. Dla drugiego - R Dla trzeciego - liczba 2. Czy ja to źle wpisuję? nie wiem już jak mam wpisywać te znaki. Robiłem to tak: Po przyjęciu kodu $1B (ESC) nie powinien wyświetlić żadnego znaku i czekać na kolejne które oznaczają polecenie. Może Bascom...
Poczytałem trochę mam kilka wniosków a mianowicie problemem nie jest warstwa fizyczna RS485 a warstwa protokołu. A także zdecydowanie powinienem zając się instrukcją Printbin a nie Print i muszę wysyłać dane typu byte a nie jak ja mam tu wyżej za pomocą znaków ASCII czy mam racje czy się mylę oświećcie mnie.
Witam zauważyłem dziwny objaw. Mianowicie odbieram dane przez sprzętowy uart z atmegi pochodzące z klawiatury. Klawiatura wysyła znak w momencie nacisnięcia i puszczenia przycisku. Zauważyłem że naciskając około 21 razy klawisz (wysłane 42 znaki w hexie) to resetuje mi się program i mikrokontroler... Teraz pytanie czym to jest spowodowane. Pomijam tutaj...
Witam Też robiłem komunikację mędzy dwoma prockami AVR. I mi wszystko chodziło dobrze jak używałem polecenia Printbin (tylko nie pamiętam dokładnie, ale chyba printbin pisałem razem, a nie osobno) Tylko że ja wtedy przesyłałem całe słowa jednobajtowe, a nie jednobitowe, ale to nie powinna być różnica. Pozdrawiam.
wait 2 i wait 4 to nie problem... czytnik odczytuje przesłane do bufora dane po prostu dwa razy częściej jak nadaje je nadajnik Szanowni Koledzy - ja nie mam problemu z transmisją, czy błędami. Przeczytajcie uważnie to o czym piszę. Dane dochodzą, ale nie wiem jak je pozapisywać z powrotem w zmiennych Dane1, Dane2 i Dane3. Jeśli wyświetlę na LCD odbiornika...
Ilosc kB nie ma znaczenia bo jest to zmienne i moze miec nawet xMB czas jest proporcjonalny do ilosci danych, lecz mam problem pomiedzy poprawna komunikacja miedzy DELPHI a BASCOM w wymianie tych danych teraz robie tak: #27 0..255 0 - nie będzie kolejnego bajta #13 1 - bedzie kolejny bajt START | DANA | BEDZIE NASTEPNA | KONIEC do if Ischarwaiting()...
Witam. Czy coś się zmieniło w Bascomie i funkcji Open? Dawniej taki program by się skompilował bez błędów (bo to fragment działającego kiedyś programu), a teraz w wersji 1.11.9.8. i najnowszej są błędy po kompilacji. $regfile = "8535def.dat" $crystal = 8000000 $baud = 9600 Do Open "COMD.4:9600,8,N,1" For Output As #1 Printbin...
ATMega8 w wersji SMD ma 2 dodatkowe wejścia do przetwornika ADC i nie mogą one pracować jako normalne linie I/O. W ATMega8 w DIP28 tych 2 dodatkowych linii nie ma ich wcale. Wewnętrzny oscylator nie nadaje się do żadnego zegara ale nadaje się do UARTa, bo według datasheeta ma on dokładność 3%, a RS232 dopuszcza błąd do 4%. Mi działał nawet UART przystosowany...
$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...
Proszę skompilować program w tej wersji : [syntax=basic4gl]'**********************... '************************************* '** Karta wyjœæ z interfejsem RS485 ** '** Firmware v1.2 (06.08.2009) ** '** Projekt: Mariusz Ciszewski ** '** Publikacja: EP ** '** mariusz.ciszewski(at)elportal.pl ** '** poprawki Arnoldziq(at)eletroda.pl...
Wszystko fajnie tylko nadal nic nie wiem. Czy można przesłać od razu zmienną WORD, czy trzeba ją rozbić na dwa BYTE? Czy komendami transmitującymi nie są przypadkiem print, printhex, printbin? A do odbioru nie służą input ..... etc.? Dlaczego za pierwszym razem jest OK a potem dzieją się cuda?
Przede wszystkim w komunikacji po Usarcie to przeszedł bym na przesyłanie ASCII, a wyrażenie kończyłbym znakiem CR (13). Wtedy możesz wysyłać odebrane ciągi na wyświetlacz, bez używania stałych. Używaj do tego zwykłego Print zamiast printbin. Tak swoją drogą nie wiem czemu większość początkujących próbuje komunikować się poprzez Printbin zamiast używać...
Jeśli program działał w sztywnych ramach czasowych to zmiana printbin na print jest już bardzo znaczną zmianą. Wiąże się to z wysyłaniem nie tylko tego co chcesz wysłać ale dodawaniem dodatkowych "elementów". Niestety nie mam możliwości aby w tym momencie pokazać Ci jak wygląda transmisja dla prinbin i print ale różnią się one dość znacznie ilością...
Dim X As Byte Do X = Inkey() Printbin X ' gdy Printhex X - wypisuje kody ASCII naciś. klawiszy Loop End Ten programik wypisuje w polu teminala naciśnięte klawisze klawiatury PC. W polu terminala (granatowy obszar symulatora) musi migać kursor - inaczej nie działa,jak nie miga kliknij na tym obszarze lewym myszy). Cześć!
Witam. Muszę przesłać 200-300B z '51 po RS do PC. Oprogramowanie napisałem w Bascom i Delphi. Użyłem komponętu ComPort. Oto fragment odpowiedzialny za przesłanie danych z procka: Do Reade Poke 34 , Wartosc Incr Adres Reade Poke 35 , Wartosc Incr Adres Printbin Rsbuf Waitms 40 If Adres = Adresrej Then Exit Do End If Loop Wszystko chodzi OK, tyle, że...
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...
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...
Program napisany jest w Bascom. Delay nie ma w ogóle. Program napisany chaotycznie, ale działał ok dopóki nie dopisałem obsługi DCF77. Gdy przyjdzie odpowiednia godzina, dioda IR ma wysłać kod do odbiornika. Wtedy właśnie procesor zwalnia. Sekundy wtedy "idą" co 3 no i dźwięk ma zwolnione tempo. [syntax=vbnet] $regfile = "m32def.dat" $crystal = 8000000...
Przykład bardzo pomógł teraz bardziej już rozumiem tą całą transmisję jednak nadal nie udaje mi się odebrać temperatur. Nie wiem czemu bo widzę że ta funkcja działa wyświetla mi liczby i to zmienno przecinkowe jednak nie mogę znaleźć logiki w uch wartościach Case "3": Printbin Temp1 Printbin Temp2 Case "4": Printbin Temp1...
Pobieram 4 bajty z lewej strony i zamieniam na val ale to jeszcze nie to Dodano po 2 Jeszcze raz opiszę o co mi chodzi a mianowicie próbuję odczytywać dane z panela nextion [syntax=vbnet] $regfile = "m8adef.dat" $crystal = 8000000 '---------------------------- $hwstack = 128 $swstack = 128 $framesize = 128 $baud = 9600 Dim Napis As String * 15 Const...
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)...
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...
------------------------ Mam jeszcze takie pytanie do użytkownika janbernat bo z tego co wyczytałem w innym temacie: ... Do Kod_kl = Getatkbd() 'odczytanie danej z klawiatury If Kod_kl <> 0 Then Gosub Klawiatura Printbin 144; '144 End If Toggle Portb.2 Loop ... Więc moje pytanie jest bardzo ważne - czy ta pętla działa, czy też mogę zapomnieć...
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ą...
Bo jest LF i CR. Nie wiem co to znaczy w tym monitorze ale sie domyślam. Line Full i Carriage Return To Enter. BASCOM go wysyła. A Len = 3 bo widocznie ten monitor Enter traktuje jako jeden znak. Zawsze LF i CR są w takiej kolejności. U Ciebie też tak jest, ale ten monitor CR przerzuca do kolejnej linii i wygląda jakby CR było przed LR. Ale to nie ma...
Heh :-) Siedziałem 2 dni nad tym (aż żona dostała białej gorączki) i doszedłem o co w tym wszystkich chodzi. Po pierwsze to musiałem zamienić UARTy, tzn. sprzętowego użyć do komunikacji z modemem GSM, zaś Softowego do komunikacji z PC. Po drugie intrukcja Bascoma Print domyślnie na końcu wysyła chr(13) i chr(10), więc musiałem użyć instrukcji printbin...
Mam problem z zapisem ustawień do GPS. Wysyłam z ATmega644 dane o zmianie prędkości po RS 232 oraz chcę przyspieszyć pojawiające się dane (standardowe ustawienia 1Hz) i nic się nie zmienia. Przeczytałem notę katalogową GPS: http://download.maritex.com.pl/pdfs/PMTK... Odbiór danych działa mi bardzo dobrze ( ale wolno )....
Witam przesył jednej zmiennej jest prosty : Nadajnik [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 $baud = 9600 Dim B As Byte B = 248 Do Printbin B Wait 2 Loop End[/syntax] Odniornik [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 $baud = 9600 Dim B As Byte Cls Do B = Waitkey() Lcd B 'wyświetl wartość B Waitms 500 Cls 'wyczyść...
już mi ręce opadają - z delphi dlaczego jak nie ustawie na hardware tylko zostawię bez kontroli przepływu to comport działa nie tak jak powinien? poza tym jak z bascoma wyśle printbin 5;4;3;40; itd (czyli konkretne wartości ) to delphi odczytuje Ok jak wyśle jako zmienna to jest do bani - i wszystko sie krzaczy - żeby było śmieszniej to za pomocą programu...
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...
bascom printbin string printbin inputbin bascom projekt bascom
mikrofon urwane przewody peugeot kodować dziennik konserwacja
kyocera p3055dn schemat podłączenia kotła gazowego
Panasonic TX-L47DT60E – długie włączanie, kondensatory, eMMC, płyta TNPH1056 Jatco JF016E (CVT-8) – trwałość, przebiegi, serwis, typowe usterki, wymiana oleju NS-3