Dzięki za pochwałę do wejscia RXD mam podłączoną diode i opornik jak w pierwszym poście tylko ze dioda to 1n4148 a opornik ten sam czyli 10k wpiołes sie dobrze w szyne ibus ale widze ze masz dużo błędów w programie np brak pętli itp osobiście robię projekt na atmega16 który będzie pracował w roli tempomatu i obecny kod mam bardzo rozkopany postaram...
Możesz użyć Inkey. Tylko funkcja ta ma taką cechę że nawet jak nic nie ma w UDR to zwraca 0. Także najlepiej zrób to w ten sposób że najpierw sprawdzasz czy jest znak (Ischarwaiting) a potem jeśli jest, to odbierasz Inkeyem. Można też zrobić to w przerwaniu. Jeśli początek odbieranego tekstu masz stały to można też zrobić pętlę w któej ciągle pytasz...
To wiele wyjaśnia. Spróbuj tak ;) [syntax=vbnet]$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 64 $swstack = 16 $framesize = 64 $baud = 9600 Config Lcd = 16x2 Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.6 , Db7 = Portb.0 , E = Portb.4 , Rs = Portb.5 Cursor Off : Cls Dim K1 As Byte Dim K2 As String * 20 Dim Id As String *...
Witam Jak wyłowić teraz dane XX z paczki B2 ??? Bascom: Array, Index e marcus
Skoro chesz przesyłać dane czyste dane binarne to chyba zrozumiałe, że odpada ci konstrikcja Bytematch z zastosowaniem dowolnego bajtu, który byłby końcem jakiejś tam ramki w związku z tym musisz je albo: 1. wysyłać czysto binarnie z kompa a w procku po prostu czekać na zakończenie transmisji - wprowadzając jakiś TimeOUT (ale to czasami mało eleganckie...
Kwarc wstaw w obu przypadkach nawet 16MHz. Baudrate jest zależna w zasadzie od jego dzielnika niż od kwarcu. Nie szalej też z dużą szybkością bo błędy mogą wyskoczyć, zacznij od 4800 bps. Połączenie po UART masz zrobić sprzętowo! Timer niech ci obsługuje multiplexing, główna pętla programu sprawdzanie czy w UART coś przyszło i przepisywanie do tablicy....
nie ma
Witam zakupiłem nadajnik i odbiornik (rr3,rt14) podłączyłem pod atmegi poprzez rs-a(uarta).Jedna atmega to termometr króry wysyła temperature a druga atmega ma odbierać i wyświetlać na LCD. Testowałem programy przy połączeniu kabelkiem i wszystko było ok gdy mam podłączony nadajnik rt14 i odbiornik do drugiego układu to wyświetlacz pokazuje za każdym...
http://obrazki.elektroda.pl/3089511800_1... Witam, dziś prezentuje swój bezprzewodowy termometr pracujący na częstotliwości 433 MHz. Urządzenie składa się z nadajnika i odbiornika. Nadajnik odczytuje temperaturę pieca C.O. i wysyła ją do odbiornika. W odbiorniku mamy możliwość ustalenia górnego i dolnego progu załączenia alarmu, który...
Może ktoś wie jak sterować i odbierać dane z tego układu w bascomie 8051. Prosze o pomoc. pozdrawiam
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...
Oczywiście, można w dowolnym języku i na dowolnej platformie realizować odbiór RC5. Nie mniej, nie spotkałem się z opisem standardu RC5 wysyłającego dwa komplety danych. Niejako pierwszy stanowi adres/klucz urządzenia, a drugi wywoływaną komendę. Na oscyloskopie bit przewodni miał długość 4,5ms (RC6 ma mieć 2,66ms). Sama transmisja danych odbiega od...
Jak XX i ZZZ to znaki przedstawiające liczbę, i dodatkowo ilość znaków jest zawsze taka sama to masz cztery proste operacje: s=MID(<parametry>), x=VAL(s), s=MID(<parametry>), z=VAL(s).
Witam w jaki sposób odbierać i wysyłać dane wysłane przez Rs232 w Bascom-ie ? Chciałbym z komputera wysyłać taki string np (R255G20B120) jak to odebrać i trzem zmiennym typu bajt przypisać wartości r=255 g=20 b=120 dokładnie chodzi mi o odpowiednik takiego czegoś w bascom -ie var s:string; r,g,b :byte; begin s:='R120G30B255'; r:=StrToInt(Copy(s,2,Pos(...
Ło Pani kochana! Chyba nie ma takich rzeczy (w sensie nie jest możliwe znalezienie w google już). Mi jedyne co się udało znaleźć co jest "jezykowo agnostyczne" to takie coś: https://www.picotech.com/library/oscillo... Tutaj jest niby prezentacja jakiegoś oscyloskopu i dekodowanie samych ramek. Na dole...
Napisałes że najwyższy priorytet mają informacje z PC więc do nich musisz podporządkować pozostałe kroki programu. Z drugiej strony obsługa w przerwaniu portu szeregowego i przepisanie danych do tablicy to raczej działanie "błyskawiczne" ;)...
Obecnie taki odbiór rozwiązuję inaczej, ale w Twoim wydaniu coś czuję że to nie odbiór danych przy taktowaniu 16MHz zajmuje dużo czasu a bardziej wyświetlanie tego na LCD. Jeśli by Ci to odpowiadało to możesz: odebrac dane, i zrobić z nich tą tablice stringów po czym ustawić jakąś flagę "Refresh_lcd" Potem w każdym przejściu pętli wyświetlać/odświeżać...
Tak tu jest błąd bo ack wystawia slave czyli czujnik , ale przy odbiorze danych z czujnika master powinien potwierdzać ACK odebrane dane . TU akurat dane kalibracyjne są 16 bitowe i nie wiem jak sie zabrać za to . Czy trzeba gdzieś pierwsze 8 bitów i zapisać je w jakiejś zmiennej następnie potwierdzić odbiór i odebrać kolejne 8 bitów i połączyć je w...
RS485 to magistrala, gdzie nadawanie i odbiór odbywa się ta samą linią (halfduplex), cała reszta ze strony oprogramowania wygląda identycznie jak w RS232 na poziomie nadawania i odbioru. Na wyższym poziomie wybiera się rodzaj protokołu, zawierający sposób porozumiewania się urzadzeń, sposób obsługi kolizji, adresowanie, itd. Możesz napisać własny protokól,...
Pytanie do kolegi WOBI, czy ten kod uzywałeś taże do dekodowania innych pilotów. Chodzi mi o ten fragment: W Keeylog najpierw nadawany jest LSB (część kodowana), a tutaj po 12 bitach przerywasz odbiór kolejnych bitów? Jak to u Ciebie wyglądało? Już testuje program oparty na Twoim kodzie, pojawiła się jednak mała niedogodność. Mianowicie procesor nie...
... ale jeśli dobrze się napisze procedury komunikacji RS485 to nie trzeba żadnych dodatkowych opóźnień po wysłaniu dodawać ;).... ;) Postanowiłem zmierzyć tego "delaya".... i okazało się że w BASCOM odpowiedź SLAVE po RS485 wysyła zanim jeszcze MASTER zdejmie TX_ENABLE. Możę to i drobiazg - ale na zakładkę 60us są na magistrali dwa TX. Generalnie...
wprowadz opoznienie przed skokiem do podprogramu odczytaj_sprzetowy_uart, powiedzmy jakies 100ms, daj czas mikrokontrolerowi na odebranie wszystkich znakow zanim odczytasz uart
Co do kodu, to wstawię coś wieczorem, jak wrócę z pracy. Jeśli chodzi o obsługę RFM12 to mam z tego wątku [url=http://www.elektroda.pl/rtvforum/to... z przed ostatniej strony ( jest tam też zresztą kilka moich postów ), natomiast nie ma tam ważnej linijki kodu, który odblokowywał kontroler w czasie pomiędzy odbiorem danych, a który...
WItam W projekcie na Atmega328p wymagane są dwa UARTy, próbuję zrealizować drugi jako programowy którego odbiór danych miałby być uruchamiany przerwaniem INT0, mam kłopot z zerowaniem flagi EIFR przerwania, odbiór 1 bajtu danych wywołuje 2x wejście do przerwania, kombinuję by wejście do przerwania kasowało rejestry flagi INT0 jednak obojętnie czy piszę...
130ms oczekiwania GETRC5 ale powinieneś wiedzieć dlaczego: - GETRC5 wywołane w przerwaniu traci pierwszy pakiet z pilota, ponieważ pierwszy bit ramki danych wywołuje przerwanie, więc GETRC5 zaczyna działanie gdy pilot śle już drugi bit. GETRC5 odczytuje więc błędną ramkę i oczekuje przez jakiś czas aż może nadejdzie nowa. I te 130ms (albo koło tego)...
Wiem że być może to nie to forum , ale postanowiłem zapytać mądrych ludzi bo już mam dosyć bezsennych nocy no i żona zaczyna dziwnie patrzyć w VB6 korzystając z kontrolki MSComm odbieram dane wysyłane z uP przez RS232, a następnie umieszczam je w labelu mniej więcej tak: dim dana as string dana=MSComm1.input Label1=labeel + dana Z procka wysyłane są...
Ni hu..hu... Mam programator z EP 6/2000 oparty na 74HCT244. Kombinowałem z taśmami, wtyczkami, chciałem zrobić 2 w jednym (równoległy i ISP). Działał - nawet przez jakiś czas a ATMega. Programował i w układzie i bez układu. Potem coś uC poprzestawiało i programował się tylko na wew. 1 MHz, tak ze za każdym razem musiałem mu przestawiać fusy przed i...
Witam, mam problem i proszę o pomoc. Posiadam czytnik RFID, który ma wyjście TX. W terminalu na komputerze odbiera ok. przykładowy odczyt (0A00A295DD). Dane wysyłane są w 10-ciu znakach i działa to dobrze, praktycznie żadnych błędów. Teraz opiszę mój problem. Chciałem zacząć od prostej obsługi. Czyli odbiór danych przez UART. Wpisanie jednego odczytanego...
Pisząc program stanąłem przed problemem odbioru kodu RC5 z pilota ale z użyciem przerwania. O ile w BASCOM 8051 GETRC5 w przerwaniu działa doskonale, to w BASCOM AVR jest to kompletna porażka. Wadą Bascomowej funkcji GETRC5 jest: 1) Dziadowskie działanie w przerwaniu (niby działa ale traci pierwszy pakiet z pilota) 2) Zastosowanie jej w programie powoduje...
Zgadzam się, jak wszystko jest podłączone ok to nie ma szans aby układ nie transmitował. Faktycznie ja też stosuję 11059200 i zawsze działa. SPRAWDŹ KABLE! 1. Po pierwsze kabel komp<->RS232 czy masz kabel z zamienionymi końcówkami Rx Tx tzn. przy kompie 2 przy Max232 3 i na odwrót! 2. Sprawdź schemat połączeń max 232 z noty aplikacyjnej - proawidłowe...
Starałem się trzymać jednego "standardu". W odbiornikach też mam PCF8563 i wszędzie używam tego zapisu. Dodatkowo, zaraz po odebraniu i zdekodowaniu sygnału DCF77 ustawiam flagę i wszystkie odbiorniki wtedy jednorazowo aktualizują czas. Jak ktoś z tym zaczyna, to nie należy się denerwować, jeśli nie odbiera. Najlepszy odbiór jest 1-5 w nocy, czasem...
Zgłupiałem już, skoro działa transmisja to i odbiór też musi :( Dodano po 33 Może coś jest w układzie co blokuje transmisję do uC ?? albo czegoś brakuje ?? http://obrazki.elektroda.pl/4022851500_1... to jest ten RS232 który też wykorzystałem do testów, zdjęcie z aukcji Dodaje jeszcze schemat układu w którym testuję Attiny : http://obrazki.elektroda.pl/1431126600_1...
no mi tez się wydawało, ze nic w tym skomplikowanego nie ma :) mierzenie mialo na selu sprawdzenie czy on w ogóle działa, te paczki danych działają trochę jak pwm, dlatego powinny byc zmiany napięcia :) O kodowaniu czytałem, przynajmniej podstawę, i przebiegi czasowe, bo miałem zamiar pisać od nawa odbiór danych :) a co do podłączenia, sprawdzę to jutro...
Te moduły nie są złe, a nawet bym ostrożnie powiedział, że dobre, tylko sposób transmisji jest inny niż sprzętowe kodowanie RS232. Można doskonale sterować np takimi systemami Tak przy okazji wywołam dyskusję odnoście tych lub podobnych modułów z modulacją ASK. Mianowicie od kilku dni zastanawiam się czy w/w moduły można wykorzystać do transmisji po...
Witam. Mam kłopot w okiełznaniu magistrali SPI w Bascomie. Podobno SPI jest tak samo łatwe jak I2C, jednak I2C już od dawna rozumiem na tyle, że umożliwia mi to korzystanie z tej magistrali. SPI to dla mnie czarna magia. Kompletnie nie rozumiem o co tu chodzi. I2C jest proste, a SPI w mojej opinii o wiele bardziej zagmatwane. Chciałem skomunikować ze...
pracownia z prockow:) odrazu implementacja z przesylaniem danych przez rs232. moze sie polapiesz bo kod jest troche zaspamiony pozdro bufor EQU 030h;adres początkowy buforu danych index EQU 02fh;index ostatniego bajtu w buforze index2 EQU 02eh;index pierwszego bajtu w buforze ORG 0H SJMP RESET org 023h;przerwanie od portu szeregowego JNB ri, serout;w...
ok panowie - poradziłem sobie nieoczekiwanie w nieoczekiwany , sprawny, szybki i łatwy sposób, przynajmniej jeśli chodzi o odczyt z układu mojego SLAVE i to bez żadnego softI2C itp... ... jak ? jesli to kogoś zainteresuje .... Bascom to jednak fajne "zwierzątko" otóż w kilku linijkach po obu stronach zorganizowałem softwarowy RS232 na dowolnie wybranym...
Witam. Od pewnego czasu zajmuje się wykonaniem sterowania na mikro-kontrolerach AVR. Nadajnik pracuje na atmega 8 a odbiorniki na atmega 16. Mój system to zestaw 15 odbiorników i 1 nadajnika. Połączone jest to wszystko za pomocą magistrali RS485 za pośrednictwem Sn75176 z przełączaniem odbiór nadawanie. To tyle odnośnie układu docelowego. Do celów diagnostycznych...
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...
no i smutek... - wydaje mi się, że chodzi o pomoc, a nie o słowa czy nazwy :( ..a do tematu: sposób zapisu danych trzeba rozwiązać programowo: np. wpisujesz 1 ( i to jest tekst) - enter - wpisujesz tekst (trzebaby programem rozwiązać buforowanie tekstu dłuższego niż 16 znaków) - enter --> i do nadajnika --> wysyła to w postaci I bajt - procesor nr 1,...
Absolutnie nie posiadam przykładów w Bascom, mam tylko Helpa i co nieco pamiętam, co było juz na forum... ;) Na codzień używam asm - ma mniej poleceń do zapamiętania ;) Pewnie w ATmega128 bedziesz potrzebował użyć URXC1 zamiast URXC . Ostatnio, jak oprogramowywałem odbiór USART, to zrobiłem bufor w RAM "okrężny", z którego w wolnej chwili procedurki...
$crystal = 8000000 $baud = 9600 Config Lcd = 40 * 2 Config Serialin = Buffered , Size = 20 Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0 Enable Interrupts Dim Command As String * 1 Dim Temp1 As Integer Dim Temp2 As Integer Dim Status As Byte Dim Numer As Byte Temp1 = 12.1 Temp1 = 30.1...
Napisałem program nadajnika i odbiornika, dla długich czasów trwania impulsu, np 1s wszystko jest w porządku. Odbiornik się synchronizuje, odbiera dane i dekoduje. Natomiast gdy impuls trwa 10ms już jest problem. Albo wyświetla się out of synchro, czyli brak synchronizacji, a jak już ma odebrać dane to błędnie je odbiera i wyświetla wartości dziwne...
atom1477 ---> dobre, dobre hyhy tego to jeszcze nie było: Program do obsługi trybu wielowątkowego w Bascomie, który jest tylko w asemblerze a dodatkowo można go dzięki temu przerobić na C. Troszkę pomieszanie z poplątaniem niestety. Z jednej strony chwała ci za to, że w ogóle próbujesz w jakikolwiek sposób ogarnąć opanowanie, że tak powiem pseudo-współbieżnego...
Tak właśnie mam tak zrobione. Ale wolałbym jednak móc podawać ID czujnika do odczytania do funkcji np tak: Declare Function Myfunction(Byval I As byte) As string Z = Dsid1(1) ' ID czujnika 1 T = Myfunction(z) Function Myfunction(byval I As Byte ) As String 1wreset 'Resecik 1wwrite &H55 'Będzie odpowiadało tylko urządzenie...
Mnie zastanawia jedna rzecz, skoro korzystasz z przerwań to po jakiego grzyba tam input? Zobacz jak mozna to rozwiazac: Odebrano: Disable Urxc ' wylaczenie przerwania na czas trwania aktualnego 'Jesli licznik znakow jest mniejszy od maksymalnego rozmiaru bufora to... If Licz_znaki < Max_znakow Then '...zwieksz licznik znakow, do buforu transmisji...
Ja wiem, ja wiem ! ;-) W Bascom masz gotowe komendy do nadawania i odbioru danych w standardzie np. RC5, więc możesz sobie zbudować zdalne sterowanie w kilka chwil.
Witam Mam taki moduł jak w tytule. Niestety praktycznie nic o nim nie ma, poza krótką dokumentacją techniczną. Moduł po podłączeniu zaczyna od razu pracować i wysyłać dane typu HEX 42 4D 00 14 00 88 00 D2 00 FD 00 5A 00 8A 00 A8 16 24 00 8E 91 00 05 DF gdzie: kolejność bajtów z czujnika pm_1_0_lsb - 12, Pm_1_0_msb - 11 pm_10_lsb - 16 , Pm_10_msb - 15...
Wygląda oki tylko, że ty drukujesz 6 znaków dla każdego odebranego łańcucha Print Mid(ciag , 1 , 6) Zrób Print Mid(ciag , 1 , 36) Powinno być ok.
Witam Właśnie dla tego żeby długość ciągów w ramce była taka sama to wysyłam to jako HEX. Deklarując zmienną jako np. Byte zawsze dane w HEX bandą zawierały się w zakresie 00-FF. I tak dla przykładu: -dla 5 stopni w HEX daje 05 -dla 25 stopni w HEX daje 19 -dla 125 stopni w HEX daje 7D Jak z tego widać ramka nie ma prawa się rozjechać. Wysyłam i odbieram...
Przede wszystkim zastanów się co będzie, jeśli wykryjesz przekłamanie danych? Piszesz, że masz transmisję jednokierunkową, czyli nadajnik nic nie wie o tym, że odbiornik nie odebrał poprawnych danych. Jeśli to nie problem i dane po prostu możesz gubić, to samo CRC jest wystarczające. Można łatwo je wyliczyć (w C są nawet gotowe funkcje, pewnie BASCOM...
Może twój problem występuje dlatego, że masz mnikrokontroler i swatch -a. Popraw pisownię.
Zawsze odbierasz przez UART dane binarne. Możesz je tylko sobie wyświetlić lub wypisać jako znaki, liczby dziesiętne lub szesnastkowe. Odbierasz bajty, masz z nich złożyć daną 16-bitową, np. tak: wartosc = bajt_mniej_znaczący + bajt_bardziej znaczący * 256
Tak na szybko, to powinieneś dorzucić do przerwania jakąś zmienną którą możnaby inkrementować i obliczyć ile takich inkrementacji jest potrzebne dla konwersji danych dla ds18b20. Potrzebujesz 750ms o ile się nie mylę, więc lepiej to dorzucić do przerwania niż stosować WAIT 1. Zlicz ilość przerwań aby Ci wyszło >750ms i daj IF'a dla odczytu DS'a. Z Wait...
Jak rozwiazałeś problem z odbiorem danych?
No dobrze, ale skąd te głupoty nawet w REALTERM że nie jestem w stanie zinterpretować danych?
Mama taki temat - potrzebuję przeliczyć dane z systemu hex na zmiennoprzecinkowy float (IEEE745). dane wejściowe hex np: 43 76 18 BA Po konwersji - wynik float: 246.1 Czy ktoś spotkał się z tym jak dokonać takiej konwersji w bascom. Przy odbiorze danych w PC i aplikacji to już coś innego tu nie ma takiego problemu. Pytanie również czy taka konwersja...
Sproboj zrobic tak, żeby procesor po odebraniu danych czekał na określony znak (przyslany z komputera przez RS), po jego odebraniu niech natychmiast odsyla dane, w prog. na PC trzeba oczywiscie odbierać dane zaraz po wyslanie tego znaku inicjującego odbiór... Upewnij się też, czy nie masz zapełnonenego bufora nadawczego w uC.
Najlepiej to dać znacznik początku ramki a na końcu jakieś CRC. Odbiornik powinien szukać znacznika początku i jak na niego trafi to zacząć odbierać pozostałe dane. Jak zbierze ich 513 to z 512-tu oblicza CRC i porównuje ze znakiem 513-tym. Jak dobre to zapisuje, jak złe to odrzuca. A sam odbiór to w przerwaniu, i zapis do bufora z jednoczesnym inkrementowaniem...
A jak kolega określił adresy Slave_adr_W i Slave_adr_R? Slave_adr_W ma być mniejszy o 1 od Slave_adr_R.
AT Mega 8 może mieć tylko różne obudowy i różne napięcia zasilania a co za tym idzie różne maksymalne częstotliwości taktowania. Do testów i prób najlepsza jest w obudowie DIL do montażu przewlekanego. Co do języka to jeśli masz ochotę zacznij od asemblera. Jak coś pójdzie nie tak to nie rzucaj tym wszystkim w kąt tylko spróbuj "C" lub najłatwiejszego...
A teraz jeszcze pytanie z innej beczki. Procesor steruje pilotem RC5 na przerwaniu INT0, chciałbym jeszcze dodać obsługę RS232 ale nie chcę żeby ciągle było sprawdzane czy coś jest przesyłane bo to mi tylko spowolni program, czy jest możliwość wykrycia ze jakieś dane dochodzą do procesora i wtedy ustawienia flagi po tym będzie wykonany odbiór danych...
trochę dziwnie to robisz: czekasz na znak w buforze - to jest oki a jak masz to po kolei odczytujesz 6 znaków - i to już może być złe bo skąd wiesz że jak odczytasz pierwszy to masz już następny ? a co jak nic tam nie ma ? (np. przyszło mniej znaków) może lepiej by było za każdym razem sprawdzać czy coś jest
Witam serdecznie, Czy już coś wiadomo na temat wysyłania i odbioru danych. Pozdrawiam
Kolego do odbioru danych najlepiej wykorzystać przerwania URXC i URXC1.
Problem rozwiązany poprzez użycie bufora i rozpoznawanie znaków "AT" i innych z początków odebranych danych.
Umieść odbiór danych w obsłudze przerwania od URXC.
Mnie się udało odpalić wake-up timer, ale nie potrafie jeszcze kontrolować czasu co jaki RF się budzi. nIRQ działa, w chwili obecnej odbiór danych mam zrealizowany własnie za pomocą przerwań.
To ja przepraszam. Kolega ma dobrze schemat. Taki błąd zrobiłem jak się zaczynałem bawić z CAN, dopiero koledzy z Elektrody mnie poprawili. Za dużo ostatnio robię z UARTem ( odbiór GSM ). Kolega robi magistralę do domu, czy zamierza sczytywać dane z samochodu ? Jeśli to drugie to gorsza sprawa, bo producenci samochodów mają swoje implementacje. Jeśli...
pewnie piszesz w bascom ,wiec masz kod odbierania danych (całych stringów ) w przerwaniu :) : Config Serialin = Buffered , Size = 20 do If Ischarwaiting() = 1 Then '1 - odebrano znak,0 - pusty bufor Call Read_rs232 End If loop Sub Read_rs232 Dim Bufor As String * 24 Input Bufor Noecho end sub
w VB6 korzystając z kontrolki MSComm odbieram dane wysyłane z uP przez RS232, a następnie umieszczam je w labelu mniej więcej tak: dim dana as string dana=MSComm1.input Label1=labeel + dana Z procka wysyłane są dane / program w bascom 8051 / print h;":";m;"_";d '/godzina; : ; minuta ; _ ; dzień Wszystko jest O.K. do chwili gdy godzina jest mniejsza...
witam chciałbym odebrać dane z odbiornika GPS i sytuacja wygląda tak : w pierwszej kolejności odbiera dane GPGGA następnie GPGSA, 3xGPGSV i na końcu GPRMC interesują mnie dane GPRMC i tu pojawia sie problem ponieważ pojemność bufora odbiorczego może mieć maksymalną wielkość 254 i przepełnia się zanim odbierze interesujące mnie dane. siedze nad tym już...
Dzięki lecz - NIE ZDA TO EGZAMINU Ja odbieram dane z przedziału 0..255 Jak zastosuje twoje rozwiązanie to jak wystąpi mi w ramce danych znak 13 to program wykryje że jest koniec transmisji - przerabiałem to Bascom jedynym sprawdzonym i profesjonalnym odbiorem danych jest mój zapis reszta to dla amatorów "zapal zgaś diodę" - Bez obrazy! Lecz to doświadczenie
Zrobilem cos podobnego, tyle ze zapis na karcie SD. Generalnie problem jest dosc prosty, tylko musisz zrobic bufor (np cykliczny) do odbioru znakow z uarta, bo bedziesz gubic dane. Mozesz zrobic tak, ze odbierasz np 30 znakow i dopiero cala paczke zapisujesz w eepromie, w tym czasie inne znaki sa zapisywane w buforze. Dlugosc bufora musisz tak dobrac...
Można użyć USART w trybie SPI, bufor działa, ale niewiele to zmienia. Jeśli obsługa przerwania (łącznie z czasem potrzebnym na obsługę hardwarową - to jakieś 4-6 taktów) zajmie więcej niż owe 32 takty, to problem będzie się kumulował, aż dojdzie do przepełnienia bufora i koniec zabawy. Można zrobić tak jak piszesz - w pierwszym przerwaniu czekać na...
I kolejna (chyba już ostatnia) wersja odbiornika - miganie kropki na pierwszej pozycji wyświetlacza sygnalizuje poprawny odbiór pakietu (ramki) danych. https://filmy.elektroda.pl/37_1420319606... Pozdrawiam.
...Jakie jest zatem rozwiązanie tego problemu (jeśli jest)? Bascomowy UART programowy działa jedynie wtedy , kiedy wywołamy funkcję z nim współpracującą. W pozostałych przypadkach ( kiedy działają funkcje/procedury nie związane z programowym UART-em ) , nadchodzące dane są "niewidoczne" dla procka :( Np. jeśli masz w kodzie Wait 1 , a w czasie działania...
czy nie potrzebna jest tutaj instrukcja INKEY() ? swojego czasu zrobiłem taki układ , że dwa procki atmega8535 przesyłały między sobą zmienną. program zajął dosłownie 3,4 linijki w odbiorczym użyłem instrukcji inkey() tzn , jeżeli było coś w buforze(różne od 0 ) to wyświetlało daną. oczywiście czasy w realizacji pętli były takie same oraz kwarce również...
Według mnie Input jest lepsze. By pozbyć się LF ze zmiennej wystarczy odpowiednio ustawić Config Input = CRLF Tylko technika odbioru jest inna. W podprogramie Serial0charmatch ustawiaj tylko flagę, a odbiór danych realizuj w pętli głównej.
odbior i nadawanie sa jednoczesne. W 75176 i innych mozesz jednoczesnie odblokowac nadajnik i odbiornik. Tego to nawet nie wiedziełem (człowiek się niestety całe życie uczy :) ) Czyli reasumują: urządzenie które chce wysłać dane sprawdza magistrale...jak jest wolna zaczyna nadawać i sprawdza czy wysyłania nic nie zakłóca. Co w przypadku jak drugie...
Zastosuj bufor: Config Serialin = Buffered , Size = 100 enable interrupts A oczekiwanie na znak zrób: Bufor_flaga = Ischarwaiting() : If Bufor_flaga = 1 Then Gosub Odbierz_uart Następnie procedura odbioru danych: Odbierz_uart: Bufor = "" Do Bufor_znak = Inkey() Bufor = Bufor + Chr(bufor_znak) Bufor_flaga = Ischarwaiting()...
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.
a pilot na pewno jest w kodzie RC5. Sprzet Sony (na przyklad) ma inny standard i takie jaja sie robia.
Pozostaje tylko sprawdzić rozwiązania o których pisałem wcześniej. Wysyłając nawet po 10 zyskasz bardzo wiele na szybkości. Nie napisałeś czy używasz przerwania do odbioru danych. Tak myśle że jak obniżysz trochę prędkość, a zaczniesz przesyłać po kilkadziesiąt bajtów naraz to i tak będzie szybciej niż teraz. Chodzi o to że teraz masz tylko 25% danych...
jeżeli już uzyjesz procka a dwoma uart'ami to budujesz procedure która odbiera od twojego urządzenia string'i jeżeli wykryjesz odbior pierwszego string'u (czyli nagłówka) np if odebrany="wzór nagłówka jeden" then ustaw flagę że nastepny string to będą pierwsze dane wtedy : if flaga1=1 then pierwsze_dane=odebrana:reset flaga1 z drugim nagłówkiem i drugimi...
Tak prymitywnie to wyślij to sobie ze spacją i potem podziel otrzymany string szukajac spacji [syntax=vbnet] Print V1 ; " " ; A1 Dim MyArray(2) As String * 5 , M As Byte M = Split(CalyOdebranyString , MyArray(1) , " ") 'podziel szukając spacji Locate 1 , 1 : Lcd MyArray(1) Locate 2 , 1 : Lcd MyArray(2)[/syntax] Radzę też napisać u góry w kodzie : [syntax=vbnet]Config...
1) Kwarc mają posiadać odbiornik i nadajnik, najlepiej o tej samej częstotliwości 2) Przestań kombinować z baud 9600 i zejdź do 1200 3) Dopisz $crystal na początku programu z odpowiednią liczbą zależnie od kwarcu i zrób to w nadajniku i odbiorniku 4) Przestań kombinować z przepisywaniem zmiennych tylko wprost wyświetl C tak jak napisałem Najprostszy...
Co się dzieje jak odbierzesz dane z portu komendą INPUT?
Witam, Jak można wykonać odbiór i nadawanie na Atmega transmisji FSK. Najlepiej jeżeli jest taka możliwość to z poziomu Bascom'a. Chodzi mi o możliwość wysyłania i odbierania danych z linii telefonicznej. Kości zapewniające transmisje i odbiór w FSK są bardzo drogie i z tego co wiem dość awaryjne lub po prostu już nieprodukowane. Proszę o pomoc
Po pierwsze to zajrzyj do pdf'a odbiornika IR, bo na Twoim schemacie brakuje konda i rezystora przy podłączeniu TSOP'a. http://pdf1.alldatasheet.com/datasheet-p... Ma być w programie: Wygaszacz (godzina + temperatura), - Czasomierz najprościej na programowym RTC: str. 244 w książce Wiązni, zaś temperatura - str. 293. Wszystko...
Pisze program w BASCOM AVR, a procedura odbioru danych wyglądaja nastęoująco: Sub Odczytajdane I2cstart I2cwbyte &HA0 I2cwbyte 2 I2cstart I2cwbyte &HA1 I2crbyte Sekundy , Ack I2crbyte Minuty , Ack I2crbyte Godziny , Ack I2crbyte Dni , Ack I2crbyte Miesiace , Nack I2cstop Sekundy=makedec(sekundy) Minuty = Makedec(minuty) Godziny = Makedec(godziny) Dni...
Generalnie, W Bascomie obsługa RC5 pozostawia wiele do życzenia dlatego też Mark w najnowszej wersji ma wprowadzić obsługę RC5 na przerwaniu ICP ("prawdziwie" w tle) według poniższego kodu, który udostępniam i polecam: [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 8000000 Config Timer1 = Timer , Capture Edge = Falling , Prescale = 8 '1 tick= 1...
masy się łączą, odległość na razie to jakieś 30 cm ale docelowo ma być ok 30 m Drogi kolego omen_s ;) Szkoda Twojego cennego czasu na komunikację pomiędzy prockami magistralą 1wire , przy pomocy Bascom-owych funkcji 1wire , bo tak się po prostu nie da . Te funkcje pracują w trybie MASTER , a procek który ma odbierać dane powinien pracować w trybie...
OK. Uznajemy hardware za działający prawidłowo. Na 500us zwieram DQ do masy, później czekam 40us i sprawdzam czy jest stan niski. Czekam kolejne 300us i sprawdzam czy jest stan wysoki. Jeśli tak - uznaje że czujnik jest i odpowiada. Ten kawałek działa (udaje się wykryć czujnik). Tu nie widzę błędu w rozumowaniu. Może tylko wydłużył bym czas oczekiwania...
skoro chcesz jeden znak to po co takie kombinacje dim bufor as string*1 dim jest_dana as bit przerwanie: bufor=chr(udr) set jest_dana return
Przeszło mi coś przez myśl. Możesz zliczać po prostu impulsy wysyłane przez nadajnik. Inkrementujesz zmienną "czas". Każdy odebrany impuls resetuje nam czas, a zmienna np "odebrano" zlicza ilość odebranych impulsów. Po zaprzestaniu nadawania czas osiąga jakąś wartość i po jej osiągnięciu zmienna "odebrano" zostaje zapisana. To tyle by było w BASCOM,...
CLS po każdej z nich jest marnotrawstwem pamięci. CLS po całym ciągu definicji może być, skasuje wyświetlacz i przełączy go na tryb odbioru danych pamięci obrazu a nie pamięci CGRAM.
Przejdź do #2. nie rozumiem. wiem że marudze ale to co dla was jest jasne dla mnie niestety nie, więc prosił bym chociaż o kawałek kodu który odpowiada za odbiór danych z rs232, kombinuje z samplem z bascoma serin_out.bas ale coś lipa :/
mirekk36 nie, nie uważam, ale jakbyś spojrzał na mój schemat zauważyłbyś, że mam tam część odpowiedzialną za nadawanie właśnie w systemie RC5. Odbiór jakichś danych z pilota od TV jest raczej potwierdzeniem sprawności czujnika i działania przerwania.
Nie wiem co Panowie wyczyniacie u siebie w tym basicu, używam C i odbiór w przerwaniach, dane są czyste bez żadnych śmieci czy krzaków.
rs232 odbiór danych odbiór danych klawiatury arduino odbiór danych
split podłączyć pilot chassis integra pamięć zdarzenie
licznik scenic licznik scenic schemat
Uziemienie regulatora MPPT Victron, Epever w samochodzie z plusową masą – jak podłączyć PE? Electrolux EWT13620W – zamiennik grzałki 1950W, numery części, montaż, kompatybilność