Wskazówki : [syntax=basic4gl] Config Serialin = Buffered , Size = 254 , Bytematch = All Enable Serial Enable Interrupts Serial0bytereceived: Return [/syntax]
No to przyjacielu jaka jest ta super komenda ? Ta super komenda , a właściwie jest to znane - choć nie wszystkim i nie do końca - polecenie konfiguracyjne portu szeregowego Config Serialin = Buffered , Size = XX , Bytematch = YY Zajrzyj teraz do pomocy Bascoma i przeczytaj , jakie wspaniałe możliwości daje nam ostatni (zaznaczony na niebiesko) parametr...
kiedyś też się męczyłem i doszedłem do tego $baud = 9600 Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 Config Serialin = Buffered , Size = 64 Config Serialout = Buffered , Size = 64 Print "COM1 INT : DONE" $baud1 = 9600 Config Com2 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1...
Ma się dobrze jeśli ma odbierać dane z bufora. Jeśli Twoje Print Komenda ; Chr(13); zmieniłbyś na Print Komenda To z powodzeniem mógłbyś odbierać w przerwaniu Pozostało by ci tylko ustawić: Config Input = Crlf , Echo = Crlf Config Serialin = Buffered , Size = 80 , Bytematch = 13 a przy odbieraniu: Input Odczyt Noecho
...I jeszcze stałe wyławiane z odebranego tekstu. Dzwtxt = ": +48" A ja się na tym "przejechałem" , bo Era we własnej sieci , nie wysyła przefiksu kraju , czyli owego +48. Wracając do "techniki" odbierania transmisji z telefonu , stosuję ... Config Serialin = Buffered , Size = 254 , Bytematch = 13 ... oraz Serial0charmatch: lds r24,{event}...
Tych znaków jest trochę więc proponuję bufor wejściowy. Wyświetlacz przyjąłem 16*2: $crystal = 4000000 $baud =4800 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.4 , Db6 = Portc.5 , Db7 = Portc.6 , E = Portc.2 , Rs = Portd.6 Config Serialin = Buffered , Size = 32 Dim Znak As Byte Dim I As Byte Cls Enable Interrupts I = 1 Do Do...
No dobra. Wywal wszystko na linii Tx telefonu do Rx procesora. Ma być połączenie bezpośrednie. Na drugim kierunku zostaw tak jak masz. Poniżej kod do testów. Powinien działać. [syntax=basic4gl]$regfile = "m32def.dat" $crystal = 16000000 $baud = 19200 Config Lcd = 16 * 2 Config Serialin = Buffered , Size = 100 Enable Interrupts 'Declare Sub Oproznij_bufor...
Config Serialin = Buffered , Size = 80 Enable Interrupts Dim _Flaga_1s as Bit _Flaga_1s = 0 Config Timer1 = Timer , Prescale = 64 Enable Timer1 : On Timer1 Co1s Cls Do If Ischarwaiting() = 1 Then Znak = Inkey() Print Chr(znak) ; End If if _Flaga_1s = 1 then ' ------> a tutaj wyświetlaj już sobie spokojnie co chcesz co...
:arrow: Mictronic: Predkosc transmisji to 9600! Ponizej wklejam wycinki mojego programu do obslugi tego modulu: '------------------------------- ' modul RFiD ' ' 9600.1.0 ' dane 0xff,x,x,x,x,x,crc8 '------------------------------- {...} $baud = 9600 ' predkosc transmisji Config Serialin = Buffered , Size = 100 ' rozmiar bufora {...}...
Witam, jak wiadomo (przynajmniej mi narazie) z helpa Bascoma - zwykłe polecenie PRINT generuje na końcu dwa dodatkowe znaki CR i LF Niekoniecznie :D Za pomocą polecenia PRINT , można wysłać stringa zakończonego ... praktycznie dowolnym znakiem - również sterującym. Print "Zmienna" ; Chr(13) ; ' średnik zakazuje wysyłania znaków sterujących. ... druga...
Działa elegancko. Żeby było wiarygodnie to nawet wygrzebałem Ardu Leonardo z m32u4 na pokładzie. Na jedną rzecz bym jeszcze uważał. Twój kod nie jest w żaden sposób synchronizowany. Może się kiedyś zdarzyć, że jedna z wiadomości nie dojdzie. Z nie będzie miało wartości 3 i przy nastepnej wiadomości procesor zacznie przypisywać wartości innych zmiennych...
Niestety Jak dam instrukcję ustawienia bufora to już nic nie odbiera (nadawać nadaje). A włączyłeś przerwania :?: Bez bufora(przerwanie RX) , ciężko dogadać się z fonem :( Właśnie zauważyłem że jak zepnę RX z TX uP (wywale printa z głównej pętli i dam wait na 5sek. ) to odbiór też jest na 3 znaki :/ Czy wiesz jak wygląda transmisja asynchroniczna ,...
Temperaturę odczytaną z ds'a formatuję i wrzucam do zmiennej string poleceniem FUSING, np: Temp = Fusing(t1 , "#.#") gdzie Temp to string, a t1 to zmienna single z odczytaną temperaturą. Następnie mam kilka warunków if..then gdzie zmienna Temp jest uzupełniana znakami (np. spacji), tak aby fragment łańcuch z pojedynczą temperaturą miał zawsze tą samą...
Ło matko! ludzie co wy tu opowiadacie? Jarosław J - odnośnie twojego problemu ale już konkretnie: 1. Możesz najspokojniej w świecie przy komunikacji dwóch procków zrobić tak, że jeden będzie taktowany wewn oscylatorem a drugi np. kwarcem (Żaden problem) !!! 2. ale używaj sprzętowego UARTA w Bascomie a nie to co tutaj wszyscy razem wyczyniacie ;) 3....
tak wygląda sam kod do odczytu predkośći "trochę nie ogarnięty sorki" [syntax=basic4gl] $regfile = "m16def.dat" 'wew rezonator $crystal = 8000000 'jest włączony wew rezonator $baud = 9600 'szybkosc ibusa Config Lcd = 16 * 2 'używany wyświetlacz i piny do jakich jest podłączony Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7...
Najważniejsze to chociaż troszkę samemu najpierw pokombinować i ew później dopytać co i jak ;) ale po co ten Inkey? toż jak już zajdzie zdarzenie Bytematch - to znaczy, że w twoim buforze jest już co najmniej jedeń łańcuch tekstowy, którzy przyleciał z Rs232 i zakończony znakiem ENTER (13) .... w związku z tym wystarczy dać polecenie Input linia i już...
To jest proste jak świński ogon :D ahahahaha, ale napisz kawałek kodu. Czy masz tam jakiś LCD czy nie, czy masz tam jakiś Timer ustawiony do odmierzania sekundy czy Wait`ujesz :D Czy w dokumentacji czujnika pisze, że nadaje tez na końcu niewidoczne w terminalu znaki 13 lub 10? EDIT: aaa masz tu taki prosty. Napisałem przy śniadaniu więc błąd mógł się...
Poopuszczałeś trochę, a do tego literówki i dlatego wyrzucało błędy. Ten program kompiluje sie poprawnie. $regfile = "attiny2313.dat" $crystal = 11059200 $hwstack = 32 $swstack = 10 $framesize = 20 'DEKLARACJA ZMIENNYCH I PROCEDUR Dim Flaga As Bit , Flaga1 As Bit Dim Wylacz As Byte , Znak As Byte , Adres As Byte , Licznik As Byte Dim Znak1...
Ten program jest taki, że nie wiadomo od czego zacząć poprawiać. Najlepiej byłoby go napisać od nowa :D Niemniej poprawiłem to co ewidentnie musiało być poprawione. Tak na marginesie to nie wiem co za magik wymyślił te ponowne włączanie przerwań w obsłudze przerwania po to tylko by odebrać kod RC5 w przerwaniu. Ludzie to małpują i kłopoty gotowe. Sprawdź...
Declare Sub Get_th(t As Word , H As Word) Config Serialin = Buffered , Size = 128 Config Serialout = Buffered , Size = 128 Dht_put Alias Porta.1 Dht_get Alias Pina.1 Dht_io_set Alias Ddra.1 Dim Crc As Byte 'zmienna do przechowywania bajtów parzystości Dim Mybyte As Byte 'zmienna do obliczania bitu parzystośći Dim Sensor_data As String * 40...
za pomocą Inkey() a wtedy bufor automatyczny konfigurujesz tak: Config Serialin = Buffered , Size = 10 , Bytematch = All
Ustawiłeś w programie bufory? Config Serialout = Buffered , Size = ? - liczba znaków Config Serialin = Buffered , Size = ? - liczba znaków
$regfile = "m644def.Dat" $crystal = 16000000 $baud = 19200 '$baud #1 = 19200 $hwstack = 128 $swstack = 100 $framesize = 100 Config Serialin = Buffered , Size = 200 Config Serialin1 = Buffered , Size = 200 Przy dodaniu ostatniej linijki wyrzuca błąd 117
Czy w Bascomie da się je prawidłowo wysterować? deklaruję tak: [syntax=basic4gl]Config Serialin = Buffered , Size = 20 'konfiguracja RS232 (linia buforowana baud 9600) Config Serialin1 = Buffered , Size = 20 'konfiguracja RS485 (linia buforowana baud 9600) $baud = 9600 $baud1 = 9600[/syntax]
I to wszystko ? raczej to nic nie daje ... dodałem jak napisałeś [syntax=vbnet] $regfile = "m644pdef.dat" $crystal = 16000000 $hwstack = 32 $swstack = 32 $framesize = 64 $baud = 19200 Config Serialin = Buffered , Size = 32 Enable Interrupts [/syntax] i nadal nie dostaje sms-a zwrotnego z modułu
Zwiększ bufor odbiorczy, a do sprawdzenia czy jest nowy bajt w buforze użyj Ischarwaiting() : [syntax=basic4gl] Config Serialin = Buffered , Size = 20 ' bufor 20 bajtów ........ Do If Ischarwaiting() = 1 Then P = "" Input P Gosub Przelicz End If Loop[/syntax]
Witam, Mam problem z uruchomieniem uartów na Atmedze 128 , znalazłem taki kod w starym poście i raczej nie działa [syntax=vbnet] $regfile = "m128def.dat" $crystal = 16000000 'UART config - $baud = 9600 Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 Config Serialin = Buffered , Size = 64 Config Serialout...
Witam serdecznie, przejrzane tematy nie dały mi odpowiedzi na moje pytanie. Poniżej fragmenty kodu: [syntax=basic4gl] $regfile = "m1284pdef.dat" $crystal = 11059200 $baud = 9600 Config Com2 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 Config Serialin = Buffered , Size = 180 , Bytematch = 10 Config Serialin1 = Buffered...
Faktycznie teraz się dopatrzyłem, wcześniej korzystałem z polskiego Helpa do Bascoma i tam tego nie było. Czy tak będzie dobrze ?? Config Serialout = Buffered , Size = 20 Config Serialin = Buffered , Size = 20 , bytematch = 13 Enable Interrupts Dim A As Byte Dim Temperatura As Single Do A = Ischarwaiting() If A = 1 Then input temperatura End...
Z tego co wiem to wystarczy linia Config Serialin = Buffered , Size = x i Enable Interrupts i w symulatorze działa odbieranie komend a w rzeczywistości nie :/, co dziwnego jest też że raz odbierał dane przez chwile, potem odłączyłem zasilanie i znowu podłączyłem i już nie działało :/
Nie zauważyłem na początku programu następującej konfiguracji. Przeznaczenie: Konfiguruje sprzętowy układ UART by używał bufora wejściowego. Składnia: CONFIG SERIALIN = BUFFERED , SIZE = rozmiar gdzie: rozmiarliczba określająca ile bajtów SRAM przeznaczyć na bufor wejściowy. UART jest odczytywany kiedy program chce, a nie kiedy przychodzą dane. Może...
proponuję zrobić to tak [syntax=basic4gl] Config Serialin = Buffered , Size = 9 Dim Az(9) as Byte Do Clear serialin Do Waitus 10 Loop Until _rs_bufcountr0 = 9 Inputbin Az(1) , 9 Loop[/syntax] najpierw wyczyść bufor wprowadz program w pętlę i czekaj w pętli na zapełnienia bufora ale uwaga program będzie czekał na dane jeśli nie przyjdą to czekanie w...
Próbowałem wcześniej Config Serialin, ale help Bascoma nic nie wspomina Bytematch dopiero na forum coś więcej jest Config Serialin = Buffered , Size = 7 , Bytematch = 13 ( czyli rozmiar bufora, oraz znak po którym zostaną wpisane znaki do stringu, później Input, który ładnie wytnie znak określony w Bytematch i od razu jest gotowy do badania warunków...
w helpie do bascoma jest wszystko bardzo dobrze opisane podstawa to $crystal = xxx 'Częstotliwość $baud = xxx 'Prędkość UART można też dodać Config Serialin = Buffered , Size = 50 'Konfiguracja UART IN Config Serialout = Buffered , Size = 50 'Konfiguracja UART OUT ale bez tego też chyba działa niejestem pewien ale wydaje mi się też że trzeba odblokować...
Tak ustawiłem UART-y $regfile = "m2561def.dat" $crystal = 11059200 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0 ' Inicjalizacja wyświetlacza LC Cls ' Czyszczenie Config Com1 = 115200 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol...
Prosze bardzo, rzucam moim jakże skomplikowanym kodem :) [syntax=basic4gl]Config Serialin = Buffered , Size = 80 , Bytematch = 13 Config Input = Crlf , Echo = Crlf [/syntax] a potem w przerwaniu; [syntax=basic4gl]Serial0charmatch: Enter = 1 Return[/syntax] A gdzieś gdzie chcesz odebrać z bufora w pętli [syntax=basic4gl]if enter = 1 then Input Todczyt...
Ja zrobiłbym tak: 'Tutaj ustaw $Baud, $crystal, itp Config Serialin = Buffered , Size = 20 dim znak as byte Enable Interupts On URXCprzerwanie Enable URXC ... przerwanie: disable URXC do Znak = Inkey() If znak = #48 Then ... End If Loop Until _rs_head_ptr0 = _rs_tail_ptr0 Enable URXC Return
Napisałem coś takiego: $regfile = "m16def.dat" Config Portb = Output Portb = &B00000000 $crystal = 16000000 $baud = 9600 Config Serialin = Buffered , Size = 20 Dim Uart As String * 10 Enable Interrupts Do Uart = Inkey() If Err = 0 Then If Uart = "12345" Then Portb.0 = 1 End If If Uart = "1" Then Portb.0 = 0 End...
Witam... Przyznaję na wstępie - mam zaćmienie umysłu (nowa dziewczyna) i morduję się cały wieczór z pewnym problemem. Zapewne jedna podpowiedź, któregoś z doświadczonych "kontrolerowców" rozwiąże mój problem. Nadaję do magistrali RS487 ciąg zmiennych typu Byte następującym algorytmem: Config Portd.2 = Output Config Serialin = Buffered , Size = 15 Kierunek...
Mnie ktoś pomógł to teraz się tym podzielę Nadawanie: -----konfiguracja------- $baud = 2400 Config Serialin = Buffered , Size = 20 Config Serialout = Buffered , Size = 20 ---------jakiś tam program----- Print Temperatura ; Chr(13) ; 'Wyślij po RS wartość zmiennej temperatura Odbiór: $regfile = "m8def.dat" $crystal = 8000000 $baud =...
Witam, spróbuj tej wersji, mi działa :) [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 $baud = 9600 Config Lcdpin = Pin , Db4 = Pordc.3 , Db5 = Pordc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Config Lcd = 20 * 4 'Config Serialin = Buffered , Size = 15 Config Pind.2 = Output Kierunek Alias Portd.2 'zmienia kierunek transmisji...
Ja używam innej konfiguracji portu bo też miałem problem i wszystko zadziałało Config Serialin = Buffered , Size = 100 , Bytematch = 10 ' bo telefon odpowiada 0D0A = 13 10 = ClLf Echo Off Config Input = Crlf , Echo = Crlf bytematch = 13 (0Dhex) nie jest dobrym pomysłem bo końcowy znak to 10 (0Ahex), spróbuj tak jak wyżej. Ważna jest też config input...
Po wczorajszym, (zamknięcie tematu, i itp) Postanowiłem że postaram się coś samodzielnie wyklecić w bascomie (w końcu to mój projekt) narazie to tylko przykładowy kod, w którym chodzi tylko o wyjaśnienie zagadnienia, i ewentualne poprawki. MASTER : $regfile = "attiny2313.dat" $crystal = 4000000 Config Serialin = Buffered , Size = 15 Const...
Witam. Proponuje tak jka kolego radzi uzyc bufora, który automatycznie działa. tu przykład: Config Com1 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 Config Serialin = Buffered , Size = 7 -------' wielkośc 7 znaków Enable Interrupts -------' musisz włączyć przerwanie później w programie dajesz Bufor_rs = Bufspace(1)...
Gdy napisałem prosty program do testowania tego przerwania: $crystal = 11059200 ' czestotliwosc kwarcu $baud = 19200 ' predkosc transmisji Config Serialin = Buffered , Size = 20 dim znak as byte Enable Interrupts On Urxc Przerwanie Enable URXC przerwanie: disable URXC do Znak = Inkey() If znak = chr(13) Then End If Loop Until _rs_head_ptr0...
Nie wiem czy dobrze kombinuje i trochę mi nie pasuje co zrobiłem. Do tego celu wykorzystuje polecenie Config Serialin które po konfiguracji wygląda tak: [syntax=basic4gl] Config Serialin = Buffered , Size = 20 Config Timer0 = Timer , Prescale = 256 Dim A As String * 10 Dim Odczyt As Bit Dim I As Word On Timer0 Przerwanie Enable Interrupts Enable Ovf0...
Zrób prosty test - wgraj taki program i powiedz co się dzieje [syntax=basic4gl] $regfile = "m32def.dat" $crystal = 16000000 $baud = 9600 Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2 Config Serialin = Buffered , Size = 20 Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits...
Witam. Mam mały problem z przepisaniem wartości z DANE do zmiennej CZAS. Potrzebuję by po odczycie z UART wartość CZAS=DANE. Oczywiście żle to robię bo BASCOM pokazuje błąd. [syntax=vbnet] Config Serialin = Buffered , Size = 4 Enable Interrupts Declare Sub Kas_bufor Dim Uart As String * 1 Dim Buf As Word Dim Dane As String * 4 Dim Czas As Word Cls Locate...
Da się w bascomie zrobić to wszystko co Ci radzimy o rsie. Poczytaj o Config Serialin = Buffered i Bytematch All. Powinno się nieco rozjaśnić. Dodano po 5 Dodano po 45 A głównym problemem i tak pozostają zakłócenia, niezależnie czy zmienisz te przerwania czy nie. Więc tak, czy ta skretka idzie w pobliżu 230vac? Czy na każdej płytce masz elektrolity...
Problem rozwiązany 1. na co nie zwrociłem uwagi to brak odpowiedniej konfiguracji UART $regfile = "m8def.dat" $crystal = 8000000 $baud = 4800 $hwstack = 160 $swstack = 40 $framesize = 120 Config Serialin = Buffered , Size = 200 2. Sprawdziłem 11 szt atmegi8 i ani jedna nie działała na PORCIE C!!! zmieniłem na PORT D, i działa idealnie: Open "comd.2:4800,8,n,1"...
config serialin bascom config serialin przerwać serialin
sygnalizator alarmowy 405nm laser router dwr116
toshiba 17mb211s toshiba 17mb211s
Podłączenie pływaka alarmowego w sterowniku Preskpol Schemat podłączenia impulsatora prędkości Renault Kangoo 1 – czujnik Halla, piny, kolory przewodów