Teoria powiadasz. Ciekawe co czytałeś... Mimo iż wyczuwam lekki roszczeniowy charakter wypowiedzi to postaram Ci się coś jednak wytłumaczyć. Kiedy pisałem o podpisywaniu zmiennych to miałem na myśli takie wysyłane osobno. Od razu uściślijmy, że dla takich wartości dwubajtowych jak Word łatwiej to przesłać jako Hexstring. Długość stringa zawsze będzie...
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ż...
Nie lepiej zerować przez RS'a zmienną która zlicza impulsy ?
Wykorzystałem pętlę główną z twojego programu , trochę zmieniłem , wykrywam początek danych a potem składam stringa , działa tak jak chciałem . Dzięki !
Przy instrukcji Input "odebranie znaku <CR> (kod 13) kończy wprowadzanie danych dla bieżącej zmiennej." A co jeśli znak <CR> nie zostanie nadany? Wtedy program stoi i czeka!
Znaki terminujące - czyli "\r\n", ewentualnie NULL, zazwyczaj kończą zmienne typu string. Nie sądzę, żeby były wysyłane po każdym znaku. Nie programowałem w C#, ale wydaje mi się, że kompilator dodaje Ci te znaki automatycznie. Spróbuj odbierane znaki zapisać do zmiennej innego typu, np "byte" lub "char". Jak wygląda Twoja procedura odbierająca znaki...
Ja ci radzę jednak wysyłać hexem stałej długości. Np coś takiego: #F,FFFF(enter) Następnie w obsłudze rs'a sprawdzasz jaki przyszedł znak i jeżeli jest # to reset licznika wejścia i zapisujesz dane do bufora. Jak przyjdzie koniec (czyli enter lub podobne) sprawdzasz sobie adres(odpowiedni znak) i przepisujesz sobie zmienne do innego bufora. Dodatkowo...
Dobrze, że chcesz to przesyłać w trybie tekstowym. Zatem od strony mikrokontrolera poczytaj sobie w Bascomie o poleceniach: Config Seriallin INPUT Config INPUT Ischarwaiting a także do operacji na łańcuchach znaków: MID LEFT RIGHT itp to powinno cię naprowadzić.
Musisz w Bascomie zmienną wysłać przez RS232 do PC-ta a w PC-cie w języku Basic (Bascom to taki Basic na mikrokontrolery) napisać program który zapisze zmienną do pliku.
Jak to nie? 1)$baud = 9600 - predkosc transmiji 2)Pk1 = Udr - rejestr buforu 3)Print "T1 " ; Ss - wysylanie na port do komputera zmiennej ss
Witam W jaki sposób można zmienić w Bascomie zmienną typu WORD na dwie zmienne typu BYTE. Chcę wysłać wynik zmierzonego przez mikrokontroler napięcia portem RS232 do komputera. Pozdrawiam
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ż...
Nie. Wiem co to jest. Umiem zrobić komunikację między nimi i wysłać np. tekst na LCD drugie Atmegi. Nie wiem tylko w jaki sposób zrealizować wysyłanie kilku zmiennych przez rs232.
... bo dobrze znam ten wyświetlacz. Ale z Bascomem już gorzej :D Co to jest za twór :?: [syntax=basic4gl] Data "Poniedzia" ; &h9D ; "ek" ; [/syntax] Do umieszczenia w zmiennej tekstowej dowolnego kodu ASCII, służą nawiasy klamrowe :idea: [syntax=basic4gl]Data "Poniedzia{157}ek" [/syntax]
Witam Na port rs232 dostaje pewne dane chciałbym je wszystkie zebrać i wrzucić do zmiennej. Coś na zasadzie bufora. Jak powinienem podejść do rozwiązania tego problemu. Pozdrawiam
Witam. Chciałem połączyć dwa układy 89c51 przez RS232. Program robie w Bascomie. Niby jest to proste ale.... Muszę przesłać z jednego do drugiego zmienną typu WORD. Połączyłem na krzyż TXDi RXD procków i dołączyłem trzeci przewodzik (EN). Celem jego jest zasygnalizowanie początku transmisji. Stan niski wprowadzany przez procek A , procek B wysyła aktualny...
Jedźmy dalej incr pomiar powoduje zwiększenie zmiennej Pomiar o 1. To był przykładowy podprogram, który za każdym razem kiedy był wywołany instrukcją gosub zwiększał wartość zmiennej - nic prostszego na próbę nie da się wymyśleć. Myślałem bardziej, że za pomocą tego programu sprawdzisz czy to wszystko działa i jak będzie działało to napiszemy coś bardziej...
mirekk36 Niestety to co koledzy podają nie sprawdza się. Programuje w Bascom już którąś aplikacje i ciągle są problemy po RS'ie przy odbieraniu wiekszej ilości bajtów i przypisywaniu ich do zmiennych
Poleceniem Print jak i przy RS232.
Po prostu nie możesz korzystać z instrukcji Input tylko z instrukcji np. Inkey i odbierać 128 bajtów o dowolnej zawartości (nawet bajtów zerowych) Po odebraniu 128 bajtów sprawdzić sumę kontrolną, tak jak pisał kolega mirekk36. Jeśli odebrałeś wysłasz ack spowrotem np. z sumą crc ramki Instrukcja Input się nie nadaje do tego celu. Tylko odbieranie za...
rozkaz(1)10, Nag(1)5 to są zmienne tablicowe w których mam rozkazy
Mógłbyś wytłumaczyć, bo nie bardzo zrozumiałem? ps>Ja nie przesyłam znaków ASCII tylko zmienne.
jak zadeklarować te zmienne? A np. tak dim Bufor as string * 16 ' 16 - maksymalna długość odebranych danych dim Bufor_znak as byte dim Bufor_flaga as byte
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...
Właśnie z funkcją "Val" również nic nie wychodzi, ale zamieniłem "nm" na zmienną typu "byte" i problem rozwiązany. Nie wiem dlaczego tak czepiłem się tej zmiennej przyjmując ją za tekstową. Problem rozwiązany, dzięki za odpowiedź.
Witam, chciałbym się doradzić w jaki sposób mogę odebrać dane z modemu SIM900A przez RS232 atmegi8 i zapisać je do zmiennej nie przerywając działania programu. Jakich funkcji użyć? Programuję w Bascomie.
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...
Możesz mi to wytłumaczyć bardziej łopatologicznie jestem początkujący z vb v bascomie programowałem odbiór danych i przypisywanie do zmiennych z rs232 i szło mi to dużo lepiej a w drugą stronę jest już problem.
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...
Witam, Mam takie pytanie. Mam układ sterujący który zbiera dane i wysyła je do PC. Chciałbym sterować uC także z PC podając mu pewne wartości zadane typu temp, wilgotność. Jakiej procedury lub funkcji użyć żeby uC poprawnie ją zinterpretował. NP. wysyłam takie coś "RHzad=20" przez rsa i chciałbym żeby uC wpisał do zmiennej np. I (tylko) te 20. Pozdrawiam.
Napisz sobie funkcję, która jako parametr przyjmie odebrany ciąg, w pętli będzie przeglądać kolejne znaki aż do końca ciągu źródłowego (napotka znak o kodzie 0) i jeśli napotka taki z zakresu "0"-"9" to wtedy taki znak dopisze do zmiennej wynikowej. I na koniec funkcja ją zwróci. Myślę jednak, że Tobie potrzebna będzie znacznie bardziej rozbudowana...
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ę...
To jest odczyt z UARTu. W pierwszej pętli program czeka na pojawienie się litery "R" Potem w drugiej pętli zapisuje wszystkie odebrane znaki do zmiennej K3 aż do momentu pojawienia się znaku nowej linii CR (czyli chr(13)
Witam mam pytanie odnosnie programowania transmisji szeregowej w bascomie: 1. prędkość ustawia się za pomocą $baud $crystal 2. jak sprawdzić czy do SBUF coś dotarło czy zostało nadane?? 3. $serialinput -> określa nazwe zmiennej do której trafia zawartość Sbuf?? z poziomu assemblera obsługa uart'u nie stanowi większego kłopotu, ale bascom ciągle jest...
Przesiadłem się na arduino więc nie wiem cze mogę pisać w tym temacie bo to BASCOM. Uruchomiłem wyświetlacz OLED na szynie I2C. Powiedzcie mi tylko tą zmienną rx jak wstawić jako zmienna zamiast tekstu ? [syntax=cpp]u8g.drawStr( 0, 32, "TEXT"); [/syntax] A chciał bym tam mieć zmienną rx. Samo wpisanie rx nie działa :(
Mam procesor z podpietym 24c01 i po rs232 przez windowsowy terminal chcę zapisać (polecenie wyslij plik tekstowy) np taki kod: 059923B8F20101000001000000000022 00000000000000000000000000000000 00000000000000000000000000054700 00000000000000000000000000000000 00000000000000000000000000000000 00000000005436700000000000000000 00000000000000457000000000000000...
Mam jeszcze jedno małe pytanie. W BASCOM chcę odbierać ciąg znaków z portu RS232 i przypisać je do jakiś zmiennych. Jak mam to zrobić ppoprawnie bo robie tak i nie za bardzo mi to działa Wysyłam ciąg znaków w Delphi 7 jako PChar: #145#123#150#78 A w BASCOM odczytuje tak: A,B,C,D = są jako Byte do A = Input() if A=145 then B=WaitKey() C=Waitkey() D=Waitkey()...
No dobra. Ale co to jest ? Bo nic nie rozumiem. Po co tak wachlujesz tymi zmiennymi ? Chodzi mi o to czy jest może jakaś procedura krótsza aby wyświetlać te diody. Incr I dałem tylko do sprawdzenia czy działa. Założenie jest takie ze jak odbiorę zmienną I= 600 po RS232 to ma zapalić ileś diód.
Waitms 500 dodałem dopiero teraz, jest znacznie lepiej. Jeśli kod c# "nie pyta" o zmienną z RS za szybko (dorzuciłem oczekiwanie w kodzie) wszystko śmiga ładnie i nie wykrzaczył mi się do tej pory :)
Witam Chciałbym odnowić temat ze zbliżonym problemem. O tuż mam Atmegę32 oraz czujnik z RS232 BAUD 38400. Na chwilę obecną próby przeprowadzane są na PC. Aby dokonać pojedynczego pomiaru wysyłam następującą komendę do czujnika /020D0059. po czym czujnik odpowiada np: /0B0D00+020000um18. /0B0D00+020001um19. /0B0D00+019999um1B. /0B0D00+020002um1A. /0B0D00+020003um1B....
... b) przez uC mega16 - pierwsza transmisja ok, kolejne tak jakby przesunięte coś w stylu ##001100 A słyszałeś kiedyś o takich dziwadłach jak CR i LF :?: ATMega32 wysyła te "krzaczki" , a ATMega16 je odbiera, upycha w zmiennej Liczba i to Twój cały problem :-P Pozbądź się tych kodów sterujących z nadajnika i masz kłopot z głowy ;)
balu mówisz ze głęboka woda masz racje nie znam 1-wire i i2c od zaplecza ale chyba pod spi nie nie było by tak trudno ??? ale skoro mówisz ze głęboka to sie nie będę pchał.... ale mam lepszy pomysł zaprogramować atmege jako rejestr SIPO i wtedy wystarczy mi 8 układów a nie 20 ! tylko jak to zrobić w bascom ? i chyba dalej pasowało by ze zmiennej "A"...
Czytałem jeszcze trochę o UART i jeszcze bardziej mi się pomieszało. Czy do komunikacji UART potrzebuję ustawiać jakieś Fusebity (oprócz tych odpowiadających za sposób taktowania zegara? przerobiłem układy na obydwa taktowane takim samym kwarcem, jednak dalej nie potrafię wysłać nawet wartości jednej zmiennej. Przeczytałem też, że zmiennych nie da się...
Witam Mam problem musze odebrac nieznana (zawsze inna) ilosc danych z Com-a i zapisac je do pamieci (a na koniec wyswietlic na LCD) i jak to zrobić ?????? 8O procek : 90S8515 bascom : AVR 1.11.6.4
Zacznij od poprawnego pisania, nie bytów tylko bajtów. Czy tak nie jest bardziej po polsku. Byt to raczej coś innego:) Algorytm jest bardzo prosty. Na początku szukasz nagłówka, więc czytasz bajty aż 4 kolejne będą miały wartość A. Potem czytasz kolejne i przypisujesz sobie do odpowiednich zmiennych. A potem to już robisz z nimi co chcesz.
Witam Na początku zaznaczam że jestem początkujący w zakresie pisania programów , a właściwie bardzo początkujący. Piszę co prawda programy dla uP w Bascomie, jednak to co chciałbym teraz zrobić jest dla mnie całkiem nowe. A mianowicie: Chcę zrobić wizualizację w PC procesów zachodzących podczas sterowania ogrzewaniem w domu /coś na kształt BMS/ uP...
String zakończony jest 0, a znak enter to 0x0D musiałbyś to rozwiązać Gdzie kolega tam widzi zero ? , 0 to wartość zmiennej ! REASUMUJĄC Wielkie dzięki za podpowiedz kolegi mirekk36 PIWKO SIĘ NALEŻY :-) Dokładnie funkcja funkcja VAL() to jest to o co chodziło !!! :-) kod zmodyfikowałem i już działa POPRAWNIE zmieniłem nieco dyrektywę zmiennej z Dim...
... W jaki sposob mam wrzucić dane do bufora i później je odczytywać? Ty nic nie musisz wrzucać , o wszystko zadba kompilator.Zainteresuj się dyrektywą Config Serialin , funkcją Ischarwaiting() ,zmiennymi systemowymi _RS_HEAD_PTR0,_RS_TAIL_PTR0,_RS232INBUF0 . Bascom rulez :D Piotrek
Witam. jak to podłączyć , to chyba nie muszę tłumaczyć ? (RX<->TX,TX<->RX) :) Co do zmiennej prędkości, to zadeklaruj sobie znacznik, po wysłaniu którego , przez jeden z procesorów, i otrzymaniu odpowiedzi od drugiego, odczekujesz chwilkę zamykasz porty i otwierasz je na innej prędkości.
Witam, Mam problem z wysłaniem zmiennej Long przez RS232. Wszystkie inne zmienne 2-bajtowe (Word) pięknie przechodzą natomiast Longa już na 1 rejestrze nie wyślę. Rejestry mam 16-bitowe - chciałbym wykorzystać 2 rejestry 16 bitowe żeby wysłać zmienną 4 bajtową. Czy może mi ktoś podpowiedzieć jak rozbić liczbę np 250000 w Bascomie aby przesłać ją na...
Spróbuj z tym programem: $regfile = "m32def.dat" $crystal = 8000000 $baud = 9600 Dim I As Byte Dim Znak As String * 1 Do Input "podaj wartosc I:" , I Print "wartosc I wynosi:" ; I If I = 1 Then Do Znak = Waitkey() Print "odebrano znak:" ; Znak Loop Until Znak = "k" End If If I = 2...
Ja sobie zdaję sprawę z tego, że gdy program się rozbuduje to może dać znać o sobie takie traktowanie zmiennych. Dlatego we właściwym programie zadeklarowałem zmienną tekstową o właściwej długości i kontroluję czy tekst wpisywany czy to z EEPROM czy też z RS232 ma właściwą długość. Nie mam zamiaru wykorzystywać tego dziwnego zachowania w finalnym programie...
Witam ! Pytanie pewnie trywialne, ale ja odpowiedzi nie znam. Chce nawiązać komunikację pomiędzy dwoma AVR'ami. Programowane w Bascomie. Czy to się robi tak, że w przypadku SPI, jak i UART, jeden uC nadaje, a ten odbierający po odebraniu wywołuje przerwanie które odbiera bajt z bufora i przypisuje do jakiejś zmiennej ? Bo jeśli nie i odbiór następuje...
Nie, Autorowi chodzi o to że wysyła do urządzenia po RS232 komendę np. PB0 PD7 i w tym monecie procesor odczytuje wartość logiczną na PB0, i wystawią ją na PD7.
Dlaczego do bufora 32 znakowego wpisujesz 64 znaki? Lekko zmodyfikowałem funkcję ReadUart, aby wypisywała zmienną buf: Jakbyś jeszcze kończył string w miejscu, gdzie skończyły się dane, to nie wypisywałyby się śmeci. Coś w tym stylu: [syntax=cpp] ret = ReadFile(hPort, buf, len,&retlen, NULL); buf[retlen] = 0; cout << buf; [/syntax] Tak w...
Witaj w jakim programie chcesz odbierac dane chyba ,że tylko w HTerminalu. Sprawa jest prosta wystarczy tylko Print #1 podaj zmienną w której jest wynik pomiaru. Jeśli coś jeszce chcesz to mogę ci wysłać program w bascomie a wysyła do VB
Widać teraz jakie ludziom siano w głowie bascom robi. 3 diody o zmiennej częstotliwości? Przecież to można zrobić na PWMach, 2 timery mają PWM, do jednego można dorobić programowo, albo wsadzić atmegę88 która ma ich wystarczająco dużo. Nie trzeba robić żadnych pętli, nic nie puchnie... Na 89C2051 powstało tyle złożonych projektów, mam analizator stanów...
Witam Mam następujący problem, może znajdzie się jego rozwiązanie: Program napisany w bascomie. Deklaruję zmienną jako bajt i jej wartość ustawiam na 0. Następnie wysyłam ją po rs232. Na terminalu ustawionym na odbiór stringów mam prawidłowo odebraną daną - czyli 0. Jak ustawię odbiór hex'ów to wyświetla mi 30 30 0D 0A. Jak jest ta dana konwertowana...
Można, a w BASCOM-ie przerwanie od portu szeregowego nazywa się "serial" i to jego obsługą musisz się zainteresować. Przykładowy kod w BASCOM-ie 51: $crystal = 11059200 ' czestotliwosc kwarcu $baud = 2400 ' predkosc transmisji Dim X As Byte ' deklaracja zmiennych Enable Interrupts ' wlaczenie przerwan Enable Serial ' wlaczenie przerwania portu RS232...
To banalnie proste w petli głównej sprawdzasz klawiature i wpisujesz do zmiennej po znalezieniu wcisnietego klawisza zatrymujesz skanowanie czekasz np 20 ms (tu ustalisz minimalny czas nacisniecia klawisza i pozbedziesz sie drgania stykow ) i ustawiasz jeszcze raz ten port z kturego zbierasz dane i jeszcze raz odczytujesz wartosc tego klawisza jesli...
Jeśli w BASCOMie robisz konwersję do łańcucha i potem to wysyłasz binarnie, to idzie mniej więcej tak, jakbyś transmitował znakowo instrukcją PRINT. Jak dotąd wszystko OK. Jeśli dalej wchodzisz w DELPHI z funkcją konwersji CharToNum , która traktuje Twoje dane jako binarne, i wymnaża kolejne znaki przez 256^n dostaniesz bzdurę. Trzeba albo zapisać temperaturę...
Pracuje w obu przypadkach na zewnętrznym kwarcu 8 MHz. Jeden mikrokontroler narazie ma podpięty tylko przewód wyjścia Uart TX który idzie bezpośrednio do drugiego mikrokontrolera na wejście czyli RX w tym natomiast dodany jest jeszcze wyświetlacz LCD do podglądu. Konfiguracja ustawiona jest w Bascomie w opcjach Rs232. Prędkość 4800. Wyczytałem na forum...
Na AVR bez problemu można realizować transmisje o szybkościach rzędu setek kbps. Według mnie problem u ciebie polega na tym, że dane odbierasz pojedynczo (w procedurze obsługi przerwania odebrana daną wpisujesz do zmiennej - a co jeśli następny znak pojawi się szybciej niż zdążysz tę zmienna "obrobić" w programie?) - przez to gubisz część danych. Spróbuj...
Witam, Mam pytanie, czy jak w procesorze, którym odbieram dane wysyłane przez inny procesor przez układ UART, zrobię tak: zmienna_byte = inkey() to w zmiennej będę miał kod ASCII odpowiadający danemu znakowi? Np. wyślę przez RS232 znak a to będzie w zmiennej liczba 97 zmienna_typu_string = inkey() to mi program zamieni automatycznie...
do zmiennej typu integer nie zapiszesz liczby zmiennoprzecinkowej. Poprawiam się: wczytaną z pliku liczbę zmiennoprzecinkową przypiszę ZMIENNEJ typu Single ! Co chcesz pozniej z ta zmienna robic? Zmienna siedzi w pętli Do...Loop we wzorze , z którego obliczana będzie inna ZMIENNA. To tyle odnośnie sprostowania mojego wyjściowego postu. Problem zasadniczy...
Witam, jak wiadomo (przynajmniej mi narazie) z helpa Bascoma - zwykłe polecenie PRINT generuje na końcu dwa dodatkowe znaki CR i LF również jak wiadomo polecenie INPUT reaguje na znak CR ... co więc się dzieje ze znakiem LF po instrukcji INPUT jeśli mamy zdefiniowany jakiś bufor: Config Serialin = Buffered , Size = 80 Input String_var Noecho i przylatują...
Witam A w czym piszesz na uC ? W bascomie zadekalrujesz sobie powiedzmy jakiś bufor i jak coś do niego wpadnie to dostaniesz przerwanie. Daną z bufora przypisujesz do zmiennej (byte) i wysyłasz ją spowrotem. realizujesz w ten sposób coś wo rodzaju echa. To powinno zadziałać. Jeśli bedziesz to wyświetał na LCD to będzie trochę zamętu. co innego wyślesz...
Pamiętam jak kiedyś zrobiłem sterownik do podobnej drukarki z kasy i w Bascomie drukowałem pliki .bgf. Miał być z tego rejestrator coś jak EKG tylko do wolno zmiennych przebiegów. Mam taki terminal - używałem go do komunikacji rs232 gdyż jest tam taka aplikacja fabryczna, myślałem nad napisaniem jakiegoś softu ale brak dysku mnie zniechęcił a później...
Myślę że każdy potencjometr powinien być stereo. Jeden kanał powinien działać z urządzeniem audio a drugi powinien dostarczać informacji do ADC , Uc o pozycji potencjometru. Dane do PC mógł byś przesyłać za pomocą RS232 lub innego. To w programie Uc musisz uwzględnić kiedy i w jaki sposób dane będą przesyłane do PC. No i musisz mieć program który będzie...
Ogólne dostępne moduły radiowe są bardzo proste w obsłudze. Posługujemy się samymi przerwaniami nośnej. To tak jak by na sztywno połączyć ze sobą po RS232 dwa procki z tym że w tym przypadku tym "drutem" jest odbiornik oraz nadajnik radiowy. Do prostych projektów takich jak ten zamiast RS232 można bezpośrednio komunikować się po 1-WIRE. Osobiście wolę...
Plan jest taki do uC wysłać (byte) zapytanie o aktualną temperaturę, wrócić ma też byte. - funkcja to włączanie/wyłączenie pompy to znaczy wysłanie Byta--> uC. - funkcja to Wła/Wył sterowania automatycznego wysłanie następnego Byta --> uC - funkcja to powrót w formie tekstowej w jakiej fazie jest pompa czy "Stop" czy "Start". uC -->PC - funkcja ustawienie...
No ale pisałem, że chodzi o to, że główny program korzysta z komendy input, która odbiera polecenia via RS232. I w tym czasie nie ma możliwości "równoległego" odczytu z termometrów. A chodzi mi o to, żeby po odebraniu zapytania o temperatury pomiary były już "gotowe", co można zrobić tylko odczytując je w przerwaniu. Jest tylko kwestia prawidłowej obsługi...
Pozdrawiam wszystkich. Panowie, czy istnieje w Bascomie funkcja która odczytuje określoną liczbę zmiennych (np. z tablicy) typu liczbowego poddaje konwersji do postaci tekstowej (tu się domyślam że to bedzie char) i wysyła RS 232 (print) do komputera ale w ten sposób aby znaki były wyświetlane (np. w hyper terminal) jeden po drugim w jednym wierszu...
Wiem do czego jest funkcja stcheck i specjalnie ją tam umieściłem. To za jej pomocą ustalana jest wartość zmiennej error na podstawie której można określić czy stos nie został nadpisany. Niby jak mam sprawdzić czy stos jest ok? "$dbg" jest tu nieprzydatne bo rs232 jest za wolny żeby odebrać co 16ms dane i efekty jego działania w logu są żałosne. Najpierw...
ale po co bawisz się w odbieranie waitkey??? już pisałem wcześniej: 1. Utwórz sobie (sprzętowo obsługiwany) bufor wejściowy dla RS232 - za pomocą Config Serialin 2. Potem używaj gdzieś w kodzie (w pętli głównej czy gdzie chcesz) polecenia Ischarwaiting - aby dowiedzieć, się czy czeka coś na ciebie w buforze 3. Jeśli coś jest w buforze to odczytujesz...
Wracając do tematu... :-) 1. Jeżeli chcę mieć połączone urządzenia o równorzędnym statusie, DTE <-> DTE używam skrosowanego kabelka o żeńskich wtyczkach. Teraz problem... jak to oprogramować :-) Może jakiś króciutki programik w BASCOMie? Np. niech DTE2 czeka na daną spod DTE1, a jeśli ta dana ma wartość 100, to niech DTE2 odeśle do DTE1 wartość...
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...
Można zapisywać dowolne dane z dowolnej zmiennej. W pętli umieściłem odczyt adc, bo tylko w trybie jednoczesnej obsługi przetwornika i karty mamy możliwość rezygnacji z bufora. Oczywiście ta obsługa może dotyczyć kilku kanałów, łącznie z zapisem na karcie znaczników/wartości czasu. Analogicznie może się odbywać współpraca z rs232/485 (w procedurze odczytu...
No to zaczynamy po raz kolejny. Coś takiego jak stworzyłeś to niestety za szybko nie będzie działać. Mega z kwarcem rs 14 z groszami działa naprawdę szybko i można zrobić bardzo dużo w jedna sekundę. Do odbierania i wysyłania danych można sobie napisać własną procedurę - nawet w bascomie i jest ona sporo szybsza i działa rewelacyjnie. Deklarujemy przerwania...
próbuję sie nauczyć komunikacji AtMegi16 z kompem. używam bascomu i nie wiem jak mogę sprawdzić sygnal który dochodzi do wejścia komputera. Na mierniku pojawia sie zmiana impulsu ale chciałbym zobaczyc wynik tego na monitorze, zobaczyć program pokazujący co się przesyła??. Czy jest sposób żeby przesyłać zmienne z mikrokontrolera i zapisywać je do pliku...
Zwykła zmienna jest takim przerzutnikiem. Nie trzeba żadnych kombinacji. jak się tworzy zmienne to wiem i jak z nich korzysta także w sumie tak bp przecież przerzutnik to "licznik do 2" a zmienną mogę liczyć do ilu chcę i ją w każdym momencie "wyzerować" na zasadzie zmiena = zmienna + 1 jeżeli 2 to = 0 też to przyszło mi do głowy choć nie bardzo wiem...
Witam! Poniżej prezentuję najprostszy chyba z możliwych listingów odczytujący wskazania ADC i wysyłających je do PC przez RS232. Problem w tym ze nie da się wysłać nic z częstotliwością powyzej 4800 bps. zamiast konkretnych wartości jakieś krzaki przychodzą. ' osiągnieta rozdzielczosc: 5V/1024= 0,00488V= 4,88mV $regfile = "m8def.dat" $crystal...
Witam Starałem się wyjaśnić platforma AVR lub zadania jaki ma wykonać NIE JEST TAK WAŻNE jak zorganizowanie komunikacji na RS232 za pomocą paczek HEX! Mogę wykorzystać dowolną większą kość AT! AT90s2313 Akurat tą kość mam gotową do pracy i kompletną do komunikacji na RS232. Czy jest możliwe zorganizowanie takiej komunikacji.? Potem wykona zadania......
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...
Dzieki panowie za zainteresowanie. To o czym mowiecie to wiem. Startuje ADC i czekam okreslony czas (program caly czas sie wykonuje) albo czekam na przerwanie z zakonczenia konwersji. To jest jasne. Chodzi mi co i jak po kolei wpisywac do rejestrow aby uruchomic ADC. Bascom to taki prostacki jezyk w ktorym wpisujac zmienna=getadc(0) powoduje ze ta komenda...
Tak, program dla uP został napisany w Bascomie. Poniżej podaję fragment kodu: Declare Sub Naprzod Declare Sub Cofaj Declare Sub Wlewo Declare Sub Cofajlewy Declare Sub Wprawo Declare Sub Cofajprawy Declare Sub Zaczekaj Dim Komenda As Byte Portc = &B00000000 Portb = &B00000000 Do Inputbin Komenda Select Case Komenda Case "1" : Call Naprzod...
Da się to zrobić bez większych kłopotów W bascomie zajeło mi to dwie godziny w raz z wyświetlaniem na LCD i zapisem położenia do zmiennych w eepromie pozdr No tak, to że da się to zrobić wiem, dlatego proszę o pomoc jak to zrobić. ghambit, mógłbyś mi wytłumaczyć jak komunikować się z GPS w tym standardzie nmea? Co do odzyskania rs232 to myślałem wykożystać...
http://obrazki.elektroda.pl/5985056000_1... Witam. Od razu przepraszam za jakość płytki drukowanej, dopiero uczę się je robić. Moją nową "zabawką" jest urządzenie, zwane "PseudoComputerem". Pomysł Wpadłem na pomysł urządzenia, które będzie posiadało coś na kształt interpretera. Wczytuje ono komendę w postaci kodu, następnie argumenty...
Oczywiście trudno mi się z tym wszystkim nie zgodzić. I przepraszam że na Ciebie naskoczyłem ale nie rozumiem "durnej" rzeczy jak bufor. Ja to rozumiem jako jakąś zmienną w której przechowywane jest to co odbierze Uart. Pewnie znowu błędnie. Nie mam już siły do wałkowania tego tematu i pozostaje w moim programie z tym co działa. Może to lipne ale jakoś...
Mam taki kłopot; korzystam w programie z transmisji z PC do mikrokontrolera vis RS232 (Atmega 2561, sprzętowy uart, 115200 b). W tym celu używam funkcji SERIALIN z opcją BYTEMATCH (znak CR). Bufor o długości 200 znaków. [syntax=vbnet]' port szeregowy do komunikacji z PC oraz modemem GSM Config Com2 = 115200 , Synchrone = 0 , Parity = None , Stopbits...
Na początku serdeczne dzięki za odpowiedzi. ..w Twoim wypadku wystarczy rzeczywiście badać stan na nóżce... Tylko jeśli linii masz 40 i chcesz liczyć czas to hmmm..... mały kłopot. Można puścić powiedzmy 1 timer na 10 linii i osobno dla każdej linii zliczać "offset" w stosunku do wskazania timera, a za liczniki mogłyby robić dowolne komórki w pamięci......
to jak powinien wygladac prawidlowy kabel?? Wlasnie zabieram sie do tego tematu a kabla jeszcze nie mam... Przesyłam możliwy schemat połączenia w Eagle i jako plik jpg. A prosty program w Bascomie może wyglądać tak: Dim S As String * 15 'deklaracja zmiennej tekstowej Dim R As Integer Cursor Off 'wyłączenie migotania kursora Do 'początek pętli programowej...
Witam, Czy ktoś może mi powiedzieć czemu jak używam komendy print , na wyświetlaczu żadne dane się nie wyświetlają [syntax=vbnet] $regfile = "m644pdef.dat" ' specify the used micro $crystal = 16000000 $baud = 9600 ' use baud rate $hwstack = 32 ' default use 32 for the hardware stack $swstack = 10 ' default use 10 for the SW stack $framesize = 40 ' default...
Coś takiego tylko bez rs232 i bez koloru. Chodzi mi tutaj o coś prostego potem w programie. 320x240 wystarcza Dodano po 16 Załącz ten programik dobrze byłoby jak byś dał jeszcze schemat oraz przerobił to wszystko na cz-b i na moją potrzebę :-) Zrób tak abym mógł wpisać w konkretne miejsce tekst lub wstawić zmienną i żeby to mi się wyświetlało, jak sobie...
witam dioda miga co 1 sek ( na tyle co moge zmierzyć ) ale jak napisałem program na przerwaniach T0 preskaler 256 do Timera load 250 i to x 250 to ok miga co 1s T0 preskaler 256 do Timera load 250 i to x 25 to ok miga co 0.1s T0 preskaler 256 do Timera load 25 i to x 25 to nie miga co 0,01s i do tego z zmienną częstotliwością ??? może coś z tym kwarc...
Witam Mam problem z transmisją uC -> PC przez rs232. Problem polega na tym, że zamiast wartości wpisanych do zmiennych odbieram litery. Ustawienia portu com1, terminala i uC są zgodne. Według data sheeta uC przy transmisji danych 38400bps i taktowaniu 8Mhz błąd wynosi 0,2%. Poza tym sprawdzałem inne prędkości transmisji i efekt wciąż ten sam :/ Komputer...
Witam wszystkich, Projektuje układ opuszczania i podnoszenia windy do projektora jego funkcjonowanie widać w załączonym filmie. https://filmy.elektroda.pl/78_1378294480... Postanowiłem dopisać zabezpieczenie, przed zamknięciem półki w momencie kiedy projektor jest podłączony. Pracą steruje Atmega 32 a projektor to Benqu W1070. Projektor ma wyjście...
i nie musze na samym pocztku kodu pisac jakiegos configu??? Trzeba skonfigurować peryferia I/O RS232 (baud, crystal...) a mozna wysyłac 2 zmienne 1 instrukcja ??? chodzi o to zeby ustalic co w tej chwili wysyłamy i kazda zmienna miala by swoj odpoweidnik liczbowy w celu jej zidentyfikowania po odebraniu No to bym nazwał już zalążkiem protokołu, czyli...
Witam, po przesiadce z bascom do winavr piszę przykładowe programy w celu poznania C dla AVR, tym razem chciałbym wysyłać po rs232 odczyt z przetwornika analogowego. Używam a328p i po krótkim zapoznaniu się z dokumentacją układu ustawiłem transmisję i adc [syntax=c] #include <avr/io.h> #include <util/delay.h> int main( void ) { UCSR0B =...
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,...
zmiana zmiennej bascom bascom ustawienie zmiennej bascom zerowanie zmiennej
odbiorniki detektorowe kabel podtynkowy hydrofor wodociąg
sprężarka inwertorowa sprężarka inwertorowa
Hulajnoga Motus Pro 10 - silnik wyłącza się po kilku metrach, błąd na wyświetlaczu Skuter Piaggio zimny nie wchodzi na obroty - przyczyny i diagnostyka