Zamiast 'Print' użyj 'Printbin'
Teraz nic nie wyświetla. W nadajniku nadaje tak: [syntax=basic4gl] Print Chr(42) ; 12345 ; Chr(13) [/syntax]
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...
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
Dokładnie nie wiem, ale wydaje mi się że RS485 to tosamo co RS232 tylko ma inne poziomy napięć (jeżeli się mylę to niech ktoś mnie poprawi). Jeżeli tak jest, to do wysyłania danych zastosuj instrukcję (w Bascomie) Print, a do odebrania danych instrukcję Input. Musisz jeszcze oczywiście zastosować konwerter napięć UART na RS485 za pomocą np układu Max485.
Niby to proste ale spędziłem 2h bez jakichś specjalnych efektów. Robię tu jakiś głupi błąd - zapisywałem to na wiele sposobów Print , Makemodbus(&H01 , 16 , &H0004 , &H010400040002300A); ale to co zwraca mi terminal to jedynie 20 30. Prośba o jakąś podpowiedź
dzięki wielkie - naturalnie Twoja uwaga jest słuszna i to zmienię jednak rozwiązanie było bardziej prozaiczne - aż wstyd się przyznać ale obrócone były przewody do rs485 :oops: pozdrawiam Przemo
Również nie jestem Bascomowcem ale być może moje uwagi okażą się cenne. Po instrukcji Print "{008}5r", dane jest 10 ms opóźnienia. W tym czasie slave mógł już przesłać wszystkie swoje dane - a master jeszcze nie rozpoczął nasłuchu. Inną sprawą jest to, że 100 obiegów pętli w procedurze Odczyt_zn może trwać krócej niż transmisja jednego znaku przez UART...
Łap bo jak zaczniesz z tym Multimaster to się nigdy z tego nie wygrzebiesz a odkrywasz tu koło na nowo :D Po pierwsze nie zauważyłem wcześniej, że już skonfigurowałeś Serial in 0. Błędem natomiast jest jest używanie Serial out 0 a potem zamiast to wrzucić do bufora to wycinasz po jednej literce ze stringa i nadajesz pojedynczo... Po prostu napisz Print...
Patentów jest wiele, ale chyba najleprzy to zastosowanie RS485, który z założenia jest zrobiony dla sieci do 32 urządzeń. RS485 opisuje elektryczną stronę komunikacji, a nie protokół, który jest z regóły identyczny z RS232, jedyne czym się całość różni z punktu widzenia procesora, to transmisja ma sterowany kierunek, czyli jest half-dupleksowa, procesor...
Przerwanie od portu szeregowego przy odbiorze jest generowane po napłynięciu JEDNEGO bajtu. Wykonywanie więc całego ciagu instrukcji za każdym razem mija się z celem.Każdy podprogram obsługujący przerwanie musi być maksymalnie krótki. Czy sprawdzałeś ile razy komunikuje ci, że napłyneło > niż 50 bajtów i nie nastapiła poprawna transmisja? Policz ile...
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.
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...
Spróbój ustawić kierunki portów TxD i RxD w attiny na odpowienio wejściowy i wyjściowy-może to to. Po 2 spróbój dać większe opóźnienie po: [syntax=basic4gl]Print "MOD001" ; I1 ; "," ; I2 ; Chr(13); Waitms 1 [/syntax] Nie 1ms a może 10ms...nie liczyłem czasu wysyłania danych, ale może w ciągu 1ms dane nie zdążą przejść?
Witam wszytkich, Od kilku dni próbuję się nauczyć obsługi modbus rtu w bascomie i na podstawowym programie z helpa się wyłożyłem. Poradźcie dlaczego wpisując mój procesor w poniższy kod wywala mi błędy? Czy ta biblioteka jest tylko pod dany procesor? Proszę podpowiedzcie. https://obrazki.elektroda.pl/7527367800_... [syntax=vbnet]'-------------------------...
W Bascom jest to załatwiane automatycznie kiedy skonfigurujesz sobie pin który jest odpowiedzialny za przełączanie. Kiedy masz włączone IDE Bascom naciśnij klawisz F1 na klawiaturze i w nowo otwartym oknie Helpa wpisz "Config Print" Alternatywnie możesz to samo zobaczyć Online pod tym linkiem [url=http://wiki.mcselec.com/bavr/CONFIG... albo...
Problem w tym że nieprawidłowo sterujesz portem , uart jest urządzeniem peryferyjnym i print coś tam sprowadza sie do wysłania do właściwego rejestru wartości kodu ASCII przestawiając port na odbiór wyłaczysz nadajnik zanim skończy gadać ... tak samo trzeba odpowiednio sterować nadajnikiem od strony komputera . Przerobiłem to zagadnienie w bascomie...
Co do transmisji, w bascomie jest Banalna (przez wielkie B) i składa się z poleceń print (zmienna, tekst, cośtam) i input (input zmienna) przejżyj help bascoma, tam są przykłady i opisy. RS485 nada się do tego zastosowania idealnie, ze względu na prostote i odporność na zakłócenia, poza tym do jednej lini RS485 (dwa kabelki) można podłączyć do 32 urządzeń...
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...
przełączenie na nasłuch rozumiem, że to ustawienie sn75176 w stan wysokiej impedancji tak?? chcialbym zrobic cos takiego, że jeden z mikroprocesorów byłby masterem, a pceta podłączałbym raz na jakiś czas. Czy musiałbym wtedy odłączać zasilanie, czy można to zrobić w locie?? I teraz jeszcze takie pytanie, jak master wyśle komendę print 0103, to wysyła...
Jakby ktoś szukał gotowego rozwiązania wklejam to bazujące na obsłudze UART w przerwaniu zamiast Input. W pełni działający kdo poniżej: [syntax=basic4gl] $regfile = "m32def.DAT" $crystal = 8000000 $baud = 4800 Nadawanie Alias Portd.7 Config Nadawanie = Output Enable Interrupts Enable Urxc On Urxc Odbierz Dim Kod_znaku As Byte Dim Tekst As String * 1...
Dosyć odważnie sobie poczynasz na mikrokontrolerze mającym 2kB Flash i 128B SRAM :D ale do odważnych świat należy. Odchudziłem Ci trochę kodzik. Obsługa przerwania timera została stuningowana moim programem NoSave Tool. Teraz mikrokontroler nie odkłada na stos większości rejestrów a tylko te potrzebne - w tym przypadku tylko jeden :D Przekłada się to...
Dziekuję za odpowiedź. Czyli rozumiem, że kupuję MAX485 podłączam do Atmegi tak jak pokazano na rysunku bez żadnych innych elementów i mam już układ do nadawania/odbierania w standardzie RS485? :D Odnośnie punktu 1 - chodzi Ci o linie X1-1 oraz X1-2 tak? Połączone powinny być faktycznie z tego co widzę to między kolejnymi odbiornikami? http://www.roboternetz.de/wissen/index.p...
Witam. Robię trzycyfrowy wyświetlacz led sterowany przez rs 485 (na razie 232) i zastanawiam się nad sposobem przesyłenia danych , poczytałem posty na tym forum + specyfikację gotowego protokołu i postanowiłem że chciałbym przesyłać: 1 bajt startu , 2 bajty adresu , 1 bajt rozkazu , 2 bajty danych , 2 bajty sumę kontrolną , 1 bajt koniec ramki . Pytania:...
Witam, od jakiegoś czasu opracowuję urządzenia komunikujące się po RS485 w protokole PELCO-D. Urządzenia komunikują się albo jedno albo dwukierunkowo-tutaj to nie istotne... Wszystko działa wyśmienicie i komunikuje się bez najmniejszego błędu gdy nadaje jedno z urządzeń. Urządzenie to nadajnik i odbiornik. Gdy nadają 2 nadajniki jednocześnie (jednocześnie...
Niektóre radiolinie mają wbudowane kodowanie transmisji, ale większość z nich nie. W Bascomie można kodować dane za pomocą Xtea, ale zobacz, co się dzieje, gdy wysyłasz te same dane. Zakodowany ciąg Hexstring zawsze wygląda tak samo. Jeśli więc ktoś nagra twoją transmisję, to gdy zostanie ona odtworzona, urządzenie zareaguje tak samo. https://obrazki.elektroda.pl/7576017000_...
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ć...
$regfile = "m128def.dat" $crystal = 16000000 $baud1 = 38400 Config Com2 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 Dim Znak As String * 5 Open "com2:" For Binary As #2 Print #2 , "start" Wait 1 Pg: Input #2 , Znak Waitms 500 Print #2 , "Odebrano znak : " ;...
Witam. Miałem dwie atmegi spięte przez port szeregowy. Full duplex. Master, wysyłał do slave znak "Q" a w odpowiedzi otrzymywał stan wszystkich ośmiu bitów wybranego portu. Master odebrany komunikat wysyłał na port i zapalał LEDy. Ukłąd prosty. Wszystko działało przepięknie. Odbieranie znaków w układach master i slave realizowałem przerwaniem od URXC...
Witam Mam następujący problem: Posiadam w swojej sieci RS485 kilka pracujących modułów. Znajduje się w niej jeden Master i 6 Sleave-ów . Problem jest następujący. Jeden z modułów działa prawidłowo zaraz po podłączeniu do zasilania , tzn. odpowiada poprawnie na zapytania Master-a ale po kilku minutach zaczyna krzaczyć. Ale co śmieszniejsze krzaczenie...
Witam serdecznie. Pisać w Bascomie zacząłem w lipcu br. To mój pierwszy program. Oto mój problem. Sieć Master-Slave na platformie RS485. Master - PC z dedykowaną aplikacją Slave - ATmega64 [syntax=basic4gl]'----------------------... Dim Tmpstr As String * 50 'dane odebrane Dim Tmpout As String * 50 'dane do wysłania '------------------------------------...
Dzieki za radę, nie miałem pojęcia ze to jest istotne, sugerowałem się tym schematem http://www.elektroda.pl/rtvforum/topic21... a tam nie są nigdzie podłączone. Jak połączę te nóżki to po prostu omijam układ 4053 i wtedy działa więc programowo jest ok. Ale podczas prób z układem zrodził się inny pomysł na zwiększenie ilość urządzeń połączonych...
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ą...
jeżeli mam transmisje miedzy wieloma uP na jednej płycie, to używam dodatkowych pinów i robie synchroniczną transmisje, sposób z dioda jest powszechnie stosowany w takich sytuacjach, zresztą podpatrzyłem to dawno temu w naświetlarce gdzie na jednej płycie siedziało kilka Z-80 i właśnie tak gadały ze sobą. kod który wkleiłem jest terminalowy, serwerowy...
W tym urządzeniu pętla główna jest praktycznie pusta. Obsługuje tylko wyświetlanie na LCD na którym na razie wyświetlam tylko to co odbiorę z Uart-a. Jeśli chodzi o tą pętlę Do Loop to wiem że to chore. Ale działa. Wiem że tak być nie może i muszę uruchomić "Config Serialin". Ale mam spore problemy. W tej chwili nic się nie wiesza i wszystko funkcjonuje...
Witam. Mam małe pytanie, chciałbym sterować kartami przekaźnikowymi przez PHP (www) Karty które mam to są klony KITu [url=http://sklep.avt.pl/p/pl/487832/uni... pracuja na RS485 spięte są za pomocą KITu [url=http://sklep.avt.pl/p/pl/481894/klo...
Witam Andy74 zakupiłem dzisiaj nawet nowego uP i jest to samo, błą weryfikacji. Jak mi przyjdzie jeszcze budować nowy programator, to się chyba zastrzelę, jakiś nie fart pod koniec tego tygodnia? A było tak pięknie RS485 działał, na SLAVE dałem wartość która się zmieniała i wysyłał ją do ATmegi, wszystko łądnie i pięknie, aż do momentu następnego proghramowania,...
Sprawdziłem problem kolizji i też nie działa jak ma działać. Otóż sytuacja ma się dokładnie tak: Jeśli nadaje jakikolwiek znak do slave-ów to reagują na znak tak jak chce. Podam kod którym realizuje to co pisze: (dodam, że pisze w Bascomie) Kod centralki: ... Do print "q"; wait 1 loop ... kod slave-ów : ... Dim A as Byte Do A = Waitkey()...
Witam! Usilnie próbuje opracowąć protokół komunikacji miedzy wieloma węzłami w sieci RS485 multimaster. Ramka wyglada tak: 1 bajt - długosć ramki 2 bajty - adres odbiorcy (word) 2 bajty - adres nadawcy (word) x bajtów - dane właściwie 1 bajt suma kontrolna z wszystkich poprzednich Transmisja odbywa się na prędkosci 19200bps przy użyciu transcieverów...
Ma ktoś jakieś pomysły jak to przeskoczyć? Zainstalować najnowszą wersje BASCOM'a (2.0.7.6.001) :). Tak z ciekawości uruchomiłem program na swoim zestawie, dane odbierał terminal. Za pierwszym razem skompilowałem program wersją 2.0.7.5.003, program wysyłał jedną ramkę (printbin) i stanął. Przy drugiej próbie użyłem BASCOM'a 2.0.7.6.001 i ramki zostały...
Witam, Na własne potrzeby chciałem zbudować monitor temperatury z 4 dallasami 18B20. Dane są odczytywane z czujników po RS485 i wysyłane do mastera. Kiedy odpytuję czujniki po kolei, muszę czekać standardowe 750ms na odpowiedź każdego z nich, co nie zadowala mnie. Zależy mi na tym, aby po wysłaniu komendy odpytującej, każdy z czujników bezzwłocznie...
Witam Mój problem wiąże się z zaprogramowaniem "Echa" które obijało by sygnał w standardzie RS. Układ buduję w celu sprawdzania poprawności działania konwertera USB-RS485. Aby nie programować układu dla każdej szybkości transmisji chcę użyć pinów PB0-PB3 gdzie za pomocą zworki możliwy byłby wybór jednej z 4 przygotowanych szybkości transmisji: 921600,...
Panowie, Panie potrzebuję pomocy bo siedzę i siedzę i nie mogę sobie dać rady z kodem BASCOM. Jestem początkujący, a raczej raczkujący w AVR, programowaniu itd. :( Próbuję zbudować sterownik do pokoju który ma wykonywać: -sterowanie światłem (8x) -sterowanie piecem/kotłem gazowym (temperatura noc i dzień-dwie różne temperatury) -każdy przycisk ma dwie...
Racja! Dzięki! Właśnie zobaczyłem w Bascomie 2.0 i jego nowym helpie piękny przykład obsługi RS485 wraz z automatycznym sterowaniem kierunkiem transmisji. edit: Automatyczne sterowanie działa rewelacyjnie i znacznie upraszcza kod. Dla potomnych: Config Print0 = Portd.2 , Mode = Set ' use portd.2 for the direction Rs485dir Alias Portd.2 Config Rs485dir...
Witam! Usilnie próbuje opracowąć protokół komunikacji miedzy wieloma węzłami w sieci RS485 multimaster. Węzły zbudowane są za pomocą AtMega8. Ramka wyglada tak: 1 bajt - długosć ramki 2 bajty - adres odbiorcy (word) 2 bajty - adres nadawcy (word) x bajtów - dane właściwie 1 bajt suma kontrolna z wszystkich poprzednich Transmisja odbywa się na prędkosci...
Bo jak ja zacznę coś tworzyć to mi flash-a w procku nie starczy a pewnie potrzeba do tego dwóch linijek kody aby coś wysłać i odebrać z tego nieszczęsnego FT232RL :) ale dlaczego nieszczęsnego FT232RL - przecież komunikacja za jego pomocą to dokładnie to samo co przez MAX232 - tyle że tu masz o wiele lepszy samochód - mercedes - bo pozwala łączyć się...
pgnige --> tak patrzę sobie, patrzę - temat się toczy - a ty sam nie dość, że nie wiesz czego chcesz to nie masz pojęcia o żadnych sposobach transmisji. Dlatego snujesz jakieś fantasmagoryczne plany o rozjeżdżająych się kwarcach, zegarach i tym podobnych banialukach. Dlaczego tak sądzę - bo wystarczy poczytać o twoich pomysłach na komunikację między...
Witam forumowiczów ... Piszę dość zaawansowany program na Atmege64, większość rzeczy wykonywane jest w przerwaniach programowych i jest wszystko OK. Komunikację zrobiłem na RS485 i działa dobrze (protokół MODBUS RTU) ale mam problem z wysłaniem danych: - jak wiadomo RS485 - więc na czas wysyłania muszę uruchomić nadajnik - wysyłam dane - po ostatnim...
Witajcie Z bootloaderem na 485 to nie tak prosto... :-( Trzeba oczywiście bootloadera przerobic by obsługiwał TX/RX - należy pamiętać że z tym RS mam SIMPLEX a nie DUPLEX. Deklarujemy który pin steruje transceiverem RS485 Config Print0 = Portd.4 , Mode = Set Config Pind.4 = Output Trzeba zastrzec z zwykłym protolole pewne znaki które są zarezerwowane...
Witam Napisałem program, który dekoduje sygnał DCF77 ( ustawia flagę ), następnie zapisuje ( przy pierwszym uruchomieniu ) wartości zmiennych do PCF8563 i cztery razy na dobę wysyła przez RS485. do tego dwa razy na dobę koryguje czas w PCF8563. I to działa bez problemu. Do celów testowych mam podłączony LCD. Chciałem dołączyć możliwość pomiaru i wysyłania...
Jest tego sporo, DCF77, 7 x DS18B20 i DHT11 ( akurat jeśli chodzi o niego to mam wątpliwości, czy ten kod działa, bo jest na obydwu płytkach podpięty i zdarza się zawieszenie ) Nadajnik Atmega328p Dodano po 16 Odbiornik Atmega644P - trochę zmieniłem obsługę przerwania, wydaje mi się, że w przerwaniu nie powinno się wykonywać dużych obliczeń. [syntax=basic4gl]...
Sporo tego ( obsługa SD, PCF8563 + menu do ustawiania daty, obsługa PCF8574 w przerwaniu INT1 )- ale nie ma problemu - zmieniła się tylko zawartość podprogramu Pomiar była taka, jak w pierwszym poście oraz wyłączyłem w wyświetlanie na LCD tych wartości wskazań z DS18B20, oczywiście dostosowałem pozycje wyświetlania do LCD 4*20 - załączniku spakowany...
zmieniłem kod w następujący sposób #define F_CPU 1000000UL // 1 MHz // prędkość transmisji 9600 #define UART_BAUD_RATE 9600 #include <stdlib.h> #include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> #include <avr/pgmspace.h> #include <util/delay.h> #include "uart.h" // częstotliwość CPU w...
No właśnie jak mówi help wystarczy ta linia aby bascom wiedział że ma sterować kierunkiem przez ten pin Config Print0 = Portb.0 , Mode = Set Specjalnie studiuję teraz nowego helpa i z tego co widzę nic więcej nie potrzeba. Używam tej konfiguracji w moim testowym module i w połączeniu z PC "gada" bezbłędnie. Ale jak połączę kilka takich modułów to dzieją...
Witam, chciałem spróbowac komunikacji na RS'sie - Atmega8 <-> Atmega8, ale przed tym spróbowałem zobaczyć, czy jak połącze linie transmisyjne TXD i RXD to czy transmisja będzie się odbywała dobrze. Po napisaniu poniższego programu ukazuje się napis “hello” ale oprócz tego jeszcze dwa inne znaki (niechciane) na symulacji w terminalu...
Witam. Mam problem z protokołem MODBUS RTU na ATMega644, który błędnie interpretuje mi ramki. Kod w BASCOM wygląda następująco: a właściwie nie komunikuje się) się z urządzeniem zewnętrznym przy pomocy MODBUS'a. Chciałbym to zrobić wykorzystując MODBUS RTU (teoretycznie zostaje mi jeszcze ASCII),a do zestawu mam podpięty jeszcze skaner nasłuchujący...
Witam Mam problem z przesyłaniem kilku zmiennych po RS485, tzn. wartość zmiennych przesyłana jest prawidłowo, ale w odbiorniku zmienne zamienione są miejscami. A mianowicie nadajnik wysyła np. zmienne a=504 b=129 c=292, a odbiornik odbiera je tak a=292 b=504 c=129. I nie mogę dojść dlaczego tak mi się dzieje. NADAJNIK [syntax=basic4gl]$regfile = "m32def.dat"...
Witam W głównej mierze dzięki Waszej pomocy zbudowałem urządzenie na bazie Atmegi8 do tego kwarc 16 MHz i Max485. Urzadzenie ma przyciski i wyswietlacz LCD 2x16 Kod w bascomie: $regfile = "m8def.dat" $crystal = 16000000 $baud = 9600 Dim Tryb As String * 14 Dim Trybp As String * 14 Dim Takt As Integer Dim Dane As String * 5 Dim Dane1 As String...
bascom print rs485 print bascom bascom print
odkurzacz gniazdo łożysko suzuki kontrolka silnik synchronizacja czasu windows
dobre sklepy elektroniczne online dobre sklepy elektroniczne
Hecht 587 – brak iskry po złożeniu, nowe zabezpieczenia, czujnik oleju, pałąk bezpieczeństwa HP ProBook 6545b – optymalizacja Roblox, brak lagów, upgrade RAM i SSD, Radeon HD 4200