Nic nie musisz (jeśli chodzi o Bascom - sam robić w przerwaniu) Bascom ofruje ci za free - pełną sprzętową obsługę RS232. Zapoznaj się tylko z poleceniem Config Serialin oraz z parametrem Bytematch tego polecenia - a wszystko stanie się jasne. Nic nie będziesz musiał sam oprogramowywać w przerwaniu bo to jest bez sensu. po prostu będziesz wysyłał paczki...
Profesjonalnie to można programować w każdym języku, tylko trzeba go po prostu znać i umieć stosować w praktyce co najważniejsze. Dla takich początkujących jak ty Bascom powinien być jednym z lepszych języków tym bardziej, że nie rozumiesz jeszcze przerwań. Bascom daje ci gotowe rozwiązania w tym zakresie na maxa - popatrz sobie na Config Serialin ........
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...
EEEEEEEj kolego - teraz to żeś zamieszał ;) .... sorki że się uśmiecham ale to nie z ironii tylko z pomysłowości ;) A co ma piernik do wiatraka czyli co ma jakieś INT2 do UART1 ???? no jak można tak odczytywać znaczenie opisu różnych funkcji nóg procesora To tylko oznacza, że ten pin może pełnić rolę albo zwykłego pinu I/O albo rolę RxD1 (czyli wejście...
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...
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 ,...
No, coś mi się wydaje, że jednak może nie do końca rozumiesz właśnie to wszystko i stąd takie podajęcie. Co to w ogóle dla ciebie znaczy, że: Bo niby po czym innym program ma poznać czy odczytane dane pasują w tym określonym miejscu ? .... toż twoja próba obsługi tego przerwania - pokazuje, że w 1000% mógłbyś wykorzystać mechanizm z Bytematch Ustawiłbys...
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...
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ę...
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...
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...
Spróbuj: Config Serialin = Buffered, Size = 10
Witam. Po pierwsze nie zauważyłem wcześniej, że już skonfigurowałeś Serialin0. Błędem natomiast jest jest używanie Serialout0 a potem zamiast to wrzucić do bufora to wycinasz po jednej literce ze stringa i nadajesz pojedynczo... Po prostu napisz Print String i zapomnij. Bascom sobie to sam wyśle. Tobie radzę na razie nie korzystać z Serialout0 w ogóle....
$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
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...
Ustawiłeś w programie bufory? Config Serialout = Buffered , Size = ? - liczba znaków Config Serialin = Buffered , Size = ? - liczba znaków
Bytematch znajduje sie na stronie http://avrhelp.mcselec.com/ pod config serialin , zastosowałem inny patent "case" zaczerpnięty od xury , jeszcze pracuje nad ukończeniem programu ale pomysł trafiony . Co do Bytematch nie zabardzo mogę to powiązać z przerwaniami
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]
Trudno tak wypowiedzieć się bez całości kodu, ale czytałeś/widziałeś temat helpa "config serialin"? Serial0charmatch to raczej powinien być sub z etykietą i return a nie Sub i End Sub. Jest jeszcze jeden niuans. Znaki sa pobierane do bufora w przerwaniu i kiedy wykryty zostanie enter chcesz skoku do tej etykiety. To jest jednak kod który jest doklejany...
Nie wszystko w tej chwili jest używane, bo to testy. Na przykład Dim Napis As String * 15 Const Koniec = &HFF itp. [syntax=vbnet]$regfile = "m8adef.dat" $crystal = 8000000 '---------------------------- $hwstack = 128 $swstack = 128 $framesize = 128 $baud = 9600 Dim Napis As String * 15 Const Koniec = &HFF '------------------- Declare Sub Oproznij_bufor...
Compiler --> proponuję żebyś najpierw potrenował sobie samą transmisję RS232 bez użycia modułu BT - bo w twoim przypadku - winę za dziwne zachowania, które opisujesz nie ponosi moduł BT - tylko napisany przez ciebie soft. On tak samo by źle działał na kablu. Nie stosujesz buforowania sprzętowego - to twój podstawowy problem a Bascom ma piękne i proste...
Witam, mogli byście spojrzeć na poniży kod czy dobrze kombinuje bo nie mam złącza LPT( laptop) i muszę na boku z starych części składać komputer żeby zaprogramować. Więc jak się poświecę to chciałbym mieć pewność że zatrybi. Założenia są takie: z terminala wysyłam jakąś komendę mikrokontroler atina2313 ją odbiera i podejmuje odpowiednie działanie. Kod...
Manual BASCOM-a, w opisie instrukcji SERIALIN mówi że bufor danych wejściowych przechowywany jest w wewnętrznej tablicy bajtów _RS232INBUF0 . Oprócz tego są dwa wskaźniki, na początek tych danych oraz na ich rozmiar. 'Using the CONFIG SERIAL=BUFFERED, SIZE = 10 for example will 'use some SRAM memory 'The following internal variables will be generated...
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 :/
Siema. Otóż mam taki problem, podczas gdy kod ładowania i zerowania data DACx działa, np DACB1 = 0 waitus 500 DACB1 = 4095 (full zakresu) waitus 500 daje jakieś 2Khz pisku w słuchawkach co jest oznaką działania , to gdy ładuję próbki muzyki wav z karty na zasadzie DACxx = pwm nic się nie dzieje. Tu całt kod xmega: [syntax=basic4gl] '=======================================...
Witam. Poczytałem i napisałem takie coś. [syntax=basic4gl][/syntax] $crystal = 8000000 $regfile = "m1284def.dat" $baud = 19200 Dim A As Byte Dim B As Byte Dim C As Byte Dim Flaga As Byte Config Serialin = Buffered , Size = 20 , Enable Interrupts Wait 1 Print " test " Do If Flaga = 1 Then Print "flaga" Flaga = 0 End If If _rs_bufcountr0 >= 6 Then Inputhex...
U mnie poszło coś takiego: $regfile "m16def.dat" Config Lcd = 16 * 2 $crystal = 1000000 $baud = 9600 Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5 , E = Portb.1 , Rs = Portb.0 Config Serialin = Buffered , Size = 12 Dim X As Integer , Y As Integer Config Pind.1 = Output Enable Interrupts ' Musisz włączyć...
Poradziłem sobie z odczytem. Mam dane tak odebrane jak chciałem ale powstał inny problem. Odczyt z uart-a zajmuje strasznie dużo czasu. Blokuje to strasznie pozostałą część programu. Jak sobie z tym poradzić? [syntax=vbnet] Config Serialin = Buffered , Size = 33 , Bytematch = 39 ........ ........ ........ 'W pętli głównej If Got_match = 1 Then Input...
Zaproponowana instrukcja Config Clockdiv=2 działa prawidłowo. Tak samo jak wstawka ASM i operacje na rejestrach (mea culpa tylko z jednym - przy zapisie prescalera oczywiście bit CLKPE ma być równy zero) Problem u mnie nie występuje, Bascom 2.0.7.6 FULL. Zapytam więc jaką wersję ma Autor wątku? [syntax=basic4gl] $regfile = "m328pdef.dat" $crystal =...
Witam Jeśli ktoś szuka rozwiązania programowego aby wykorzystać czujnik temperatury i wilgotności DHT11 zamieszczam rozwiązanie . Program na którym pracuje poprawnie. [syntax=basic4gl] $regfile = "m128def.dat" $crystal = 16000000 $hwstack = 32 $swstack = 8 $framesize = 24 Config Lcd = 20 * 4 Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6...
Witam serdecznie!!! Od długiego czasu walczę z Bascomem Atmega 128 i Uartem. Wysyłam komendy AT do modemu GSM i odbieram odpowiedzi. Wszystko jest ok, chodzi bez problemu tak z jakieś 2-3 (różnie to bywa) godziny a później ni z gruszki ni z pietruszki zaczynają sie śmiecie. Odpowiedzi wyświetlam na LCD. Bascom wersja 1.11.9.1 Oto część kodu odpowiedzialna...
zapomnij w takim prostym przypadku o przerwaniu Urxc (wywal z tego swojego kodu wszystko co masz związane z tym przerwaniem), zamiast tego - to co wpisałeś w przerwaniu - daj w pętli głównej - i wszystko w cudowny sposób ci ruszy. Co więcej - zainteresuj się takim poleceniem jak Config serialin - dzięki czemu włączysz sobie sprzętowy bufor RS232 - który...
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...
Ello Mozecie mi powiedziec czemu jak sobie napisze prosty programik w BASCOM AVR. To pokazuje mi caly czas 1023. Nie podpiąlem pod AVCC ATmega32 tego dlawika 10uF... , ale nie sadze zeby to mialo taki wplyw ?? w ogole nic sie nie zmienia wiec mysle ze to problem programowy.... pomocy :( $regfile = "m32def.dat" $crystal = 1000000 $baud = 1200...
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
Niestety pomimo wielokrotnych prób nie udało mi się uruchomić układu. Pomiędzy TXD atmegi a RXD telefonu dałem rezystor 260 Ohm oraz diodę zenera 3V9, a program w bascomie jest następujący: [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 $Baud = 19200 Config Serialin = Buffered , Size = 200 Dim Kod As Byte Dim Bufor As Byte Do Print "ATE0"...
Witam i dla wszystkich zainteresowanych a widziałem że było wielu działający kod wymaga jeszcze paru poprawek. Dzięki za pomoc. a poniżej kod: $regfile = "m128def.dat" $crystal = 16000000 $baud = 115200 Dim I As Word Dim A As Byte Dim B As Byte Dim C As Byte Dim D As Byte Dim S As Long Dim Rok As Byte Dim Dzien_tygodnia As Byte Dim Dzien As...
Problem był w odbiorniku. Napisałem coś takiego jak poniżej i było OK. Ale będę próbował tą drogą którą proponujecie,bo z tego co wyczaiłem to instrukcja Print przesyła zmienną np. 467 po jednym znaku, a na końcu CR, ale tak mogę przesłać jedną zmienną, zastanawiam się jeszcze jak w najprostszy sposób przesłać kilka zmiennych. [syntax=basic4gl]$regfile...
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...
Komenda Print jest łatwa do zastosowania ale jak odebrać dane? Znalazłem, że odpowiada za to Input zrobiłem tak Input = +CMTI: "SM",1 then Print "AT+CMGR=1" ; Chr(13) ; Input = (jeśli w odebranej wiadomości występuje OFF) then Pk_syrena = 0 Print "AT+CMGD=1" ; Chr(13) ; ale nie działa "Print "AT+CMGR=1" ; Chr(13) ;" po odczycie "Input = +CMTI: "SM",1...
Witam, potrzebuję zrobić komunikację miedzy 2 procesorami ATmega16. Jeden wysyła zmienną typu Byte (Status) z informacją o stanie wejść, a 2 to odbiera. Natomiast 2 będzie wysyłał do 1 także zmienną Byte (Settings) z informacjami konfiguracyjnymi. Dodatkowo chciałbym wysyłać sumę CRC w obu kierunkach. Transmisja w obu kierunkach jednocześnie! Bity będą...
Cóż, pewnie takie rzeczy są w tym prymitywnym języku ciężkie do osiągnięcia. Fragment pomocy do bascoma: 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. Opis: Gdy w programie użyta zostanie instrukcja...
Witam, na wstępie uprzedzę, że jestem początkującym programistą bascom. Tworzę projekt, który jest połączeniem dwóch tematów tj. http://www.elektroda.pl/rtvforum/topic22... oraz ]http://www.mp3car.com/forum/mp3car-tech... . potrafię już odczytać dane z szyny i-bus w bmw i...
Mam wielką prośbę a mianowicie z dokończeniem poniższego softu w bascom. Jestem początkujący w Bascom i programowaniu. A więc do rzeczy, zbudowałem sobie wyłącznik oświetlenia na module bluetooth hc05 i kontrolerze mega8. Napisałem soft i nie mam żadnego pomysłu jak go skończyć. Najpierw omówię działanie sterownika i jego logikę: po włączeniu zasilania...
Bardzo dziękuję! teraz jest ok Może Ty będziesz wiedział bo nadal mam problem z odebraniem czegokolwiek z kompa na mojej Atmedze i LCD Atmega8 16 MHz LCD 2*16 MAX485 (ST485CN) podłączony do konwertera 232/485 a konwerter do kompa przez USB (zainstalowany usb-to-serial bridge) To co Atmega wysyla odbieram bez problemu natomist nie wiem jak odebrac to...
Witam, Jak sprawnie odebrać dane bajty lub znak ascii z przedziałów: - 1..32 - 126..255 Gdyż program sprawuje się rewelacyjnie i NIEZAWODNIE jak odbieram tylko znaki z klawiatury, a ja chcę przesłać z PC do uC ok 1MB danych z zakresu Bajt = 1..255 Rozwiązanie jakie jest poniżej - rewelacja! Lecz moja ramka danych jest 128bajtowa i docelowo 128bajt jak...
$regfile = "m2560def.dat" $crystal = 11059200 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 ' Inicjalizacja wyświetlacza LC Cls ' Czyszczenie $baud = 9600 Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 Config Serialin...
Witam Mam pytanie wysyłam przez RS232 daną typu np. 255$0D lub 0$0D itd.... chodzi mi o to by , po odebraniu w BASCOM-ie ten string widzieć w formie zmiennej o wartości 255 , a nie jaki trzy pojedyncze znaki ASCI wysyłam 255$0D odbieram 2 , 5 , 5 , $0D Jak to ułożyć w 255 i zrobić z tego LICZBĘ 255 "znienną" by ją pobrać ? Proszę o Waszą pomoc 'Przykład...
Wyczytałem, że do sterowania zestawem startowym modułu potrzebuje całego rs232 8 linii. no tak, czytanie instrukcji i not zawsze na końcu a potem nie dziwne, że nie działa ;) skoro już jednak coś wyczytałeś to poczytaj dokładnie jakich linii potrzebuje - tzn których sygnałów sterujących i czy to jest jedyna opcja - bo aż mi się wierzyć nie chce Dodano...
Witam. Podłączyłem mikrokontroler ATMEGA16 pod złącze RS232 w manipulatorze INT-KLCD od centrali alarmowej SATEL INTEGRA. Na złączu tym cały czas wysyłane są dane o aktualnym stanie systemu i zdarzeniach. Podglądając równolegle na wirtualnym porcie COM-ETHERNET co na tym złączu jest wysyłane otrzymuje takie dane jak na poniższym screenie: http://obrazki.elektroda.pl/1772576300_1...
config serialin serialin bascom config serialin buffered
router dwr116 dioda bs170 ustawienie bębenka
bateria parkside toshiba 23el933
Zetor Proxima HS 110 – kod błędu FMI 2 52 31 21, niestabilny sygnał potencjometru gazu ESPHome i RS232: Konfiguracja i Obsługa