a tak z ciekawości zapytam - po co ci czyszczenie buforów
INKEY i INPUT stricte nie czyszczą bufora. Od tego jest CLEAR SERIALIN. Jednak korzystanie z INKEY i INPUT pobierają dane z bufora i przesuwają wskaźniki, co także powoduje, że bufor jest "opróżniany" - choć dane w pamięci dalej są.
Witaj. Nie wiem, czy dobrze Cię zrozumiałem - ale czy odpowiednio użyta dyrektywa Config Input = .... nie załatwi Twojego problemu? Pozdrowienia - teedd
Działa elegancko. Żeby było wiarygodnie to nawet wygrzebałem Ardu Leonardo z m32u4 na pokładzie. Na jedną rzecz bym jeszcze uważał. Twój kod nie jest w żaden sposób synchronizowany. Może się kiedyś zdarzyć, że jedna z wiadomości nie dojdzie. Z nie będzie miało wartości 3 i przy nastepnej wiadomości procesor zacznie przypisywać wartości innych zmiennych...
W taki sposób, że zaraz po zakończeniu nadawania właściwej zmiennej, z powrotem startuje nadawanie znaków NULL. Tak więc moje rozwiązanie "wyłuskuje" wszystko z pomiędzy tych pustych znaków ;) [EDIT] A jednak mój sposób zawiódł. Nie tyle że nie działa, co po prostu przerwania od bufora są zbyt częste i mam problemy z napisaniem dalszej części programu...
Bufor ten ma 3 znaki ale po pojawieniu się pierwszego znaku od razu jest on przesuwany bo bufora programowego. Czyli działa to jak jak by bufor sprzętowy miał tylko 1 znak.
Witam. Włącz przerwania, inaczej dane nie wpadną do bufora.
Czy jest funkcja szukania samych cyfr z buforu rs232? To są odpowiedzi z modułu SIM800. Bazuję na czymś takim: If Pinc.3 = 0 Then Waitms 750 Print "AT+CCLK?" ; Chr(13) ; 'zapytanie o datę i czas Waitms 50 Date_str = Mid(odb_txt , 20 , 8) Time_str = Mid(odb_txt , 29 , 8) End If Ale coś się dzieje i nawet wyświetla litery z odpowiedzi modułu. Da się jakoś...
Jeśli był timeout to w buforze odbioru nie powinno nic być.
Konwersje byte->string otrzymuje się przy użyciu funkcji Str. W drugą stronę działa funkcja Val.
Rzuciłem okiem w HELPa i funkcja "inputbin" czeka na znak, program dalej się nie wykonuje. Może lepiej użyć przerwań wykonujących się, gdy w buforze UART jest znak ?
Gdzies juz chyba widziałem, jak napisałeś coś w stylu, że "ogólnie wiadomym jest, że bascomowe SPISLAVE nie konfiguruje tak jak potrzeba" . Ja o tym czytałem pierwszy raz... Mogę wiedzieć której wersji Bascom używasz jeśli nie najnowszej 2085? W SPI najważniejsze jest to, że to master taktuje slave`a. Dlatego nie bez powodu w komendzie konfiguracyjnej...
Co będzie jak jednym z kodów przesłanych do mikrokontrolera będzie znak o kodzie 0? Odp: Nie zostanie zauważony. Dlatego INKEY() powinno się poprzedzać operacją sprawdzenia zajętości bufora UDR.
Ja bym nie ufał i dopisał przed skopiowaniem bufora [syntax=vbnet] If Flaga Then Return[/syntax] a [syntax=vbnet] In_pos = 1 'Zmniejszamy wskaźnik bufora do 0 (usuwamy ramkę)[/syntax] przeniósł przed ten warunek.
P.S. Oczywiście, że przerwania lepsiejsze:) Zwłaszcza z buforem :)
Skoro z kompa umiesz to powinienes tez umiec z atmegi... z tego co wiem, bascom ( :/ ) zwraca czas w BCD. Ale mniejsza o to... Musisz zrobic tak: 1) Zdefiniuj wlasnego fonta (cyfry 0..9) 2) Zrób sobie bufor ramki, najlepiej JEDNOwymiarowy 3) Napisz parę funkcji które wyrenderują cyfry do bufora ramki 4) No a jak przeslac taki bufor na matryce to juz...
Witaj, Po pierwsze w Bascomie możesz zadeklarować programowy bufor USARTA w dodatku z wieloma sygnałami sterującymi Twoją ramką a po drugie pamięć EEPROM możesz zapisywać stronami bodajże po 32 bajty co oczywiście nie zmienia faktu, iż zapis strony potrwa tyle co zapis bajtu, nie mniej. Pozdrawiam... robiw
Masz bufor softwareowy w Bascomie, instrukcjami które kolega podał możesz się do niego "dobrać", z drugiej strony masz instrukcję input która stoi w miejscu póki w UDRze nie znajdzie CR.
Oczywiście miałem na myśli 7,8us. Jeszcze jedno pytanie. Czy dobrze rozumiem, że w przykładowym kodzie wydanie rozkazu C001 informuje moduł, że ma wysłać to co jest w buforze a następnie pójść "spać"? Ile danych maksymalnie mieści bufor?
Może się pomyliłem, ale chyba przerywasz sobie odbiór co 2ms. Dlaczego nie użyjesz wyższego preskalera? Np. 1024? Możesz nawet po ustawieniu Flagi wyłączyc Timer i po odbiorze włączyć ;) Timery można dowolnie konfigurować podczas pracy programu. Druga sprawa ustaw sobie odbiór do bufora w tle (Config Serialin = Buffered, Size..)
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
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ż...
No coś w ten deseń :P Ten reaguje kiedy na końcu pojawi się znak 13 [syntax=vbnet]$regfile = "m644pdef.dat" $crystal = 16000000 $hwstack = 64 $swstack = 100 $framesize = 200 $baud = 38400 $baud1 = 38400 Config Submode = New Open "COM1:" For Binary As #1 Open "COM2:" For Binary As #2 Config Serialin0 = Buffered , Size = 100 , Bytematch = 13 ' from ESP8266...
Miże to pomoże: Config Serialin = Buffered , Size = 200 Size ustala wielkość bufora.
Ja bym jednak polecał programatory z buforem (np. 74hct244) zabezpieczają port LPT przed uszkodzeniem, a to naprawde nie jest trudne ;)
Ponieważ to jest Bascom to chyba szybciej będzie wstawić na linii E np w szeregu 6 jakiśch bramek, np inwerterów lub zwykłych buforów.
Digitrace używa tylko wejść portu. Bascom potrzebuje wyjść i wejść. Jeżeli programator to tylko kupa drutów, bez bufora, spróbuj podciągnąć wszystkie linie wejściowe i wyjściowe opornikami ok. 10kOhm do +5V. Jeżeli z buforem to zasil bufor z układu, podciągnij również wszystkie użyte wyprowadzenia portu LPT takim samym opornikiem do zasilania bufora.
Witam kolegów. Pierwszy temat: potrzebuję odbierać poprzez UART ciągi znaków wysyłane z urządzenia. Urządzenie wysyła taki ciąg bajtów: GZ GZ A0 A1 Cm Sc -tu dane- EN gdzie: GZ GZ to jest stały początek zawsze taki sam, A0 A1 podaje kierunek transmisji, Cm Sc komendy według wzorca, -dane- może być od jednego do pięciu bajtów, EN koniec transmisji. Jak...
Witam ! Jeśli masz problem ze scalaczkiem do programatora t zrób inny programator bez buforu, jednak tu trzeba uważać aby nie uszkodzić portu LPT. Schemat zaczerpnąłem z pliku pomocy Bascom AVR, poniżej schemat. http://obrazki.elektroda.net/47_12361589... Pozdrawiam. Stefan ps. W Bascomie AVR w opcjach - programer ustaw Sample Electronics Programmer....
Cześć Po pierwsze wgraj sobie programator Dybkowskiego, tam masz pełną jasność co do końcówek, możesz ustawić z której końcówki LPT wystawiasz poszczególne linie programatora. Jak nie pomoże to spróbuj na starym komputerze, mnie po wymianie płyty głównej przestał działać taki programator jak Twój, dopiero programator z buforem na scalaku zastartował,...
Napotkanie Inkey() powoduje zatrzymanie pracy programu aż do odczytu znaku z bufora UART.
mirekk36 podoba mi się to Twoje rozwiązanie. Właśnie o to mi chodziło kiedy z Tobą rozmawiałem w moim temacie. Pytanie tylko co się dzieje ze znakiem <LF> nadawamym po <CR> ?. Trzeba go pewnie odfiltrować lub oczyścić bufor ?
Ja nie wiem z jakiego powodu taki zachwyt... :| Sieć-->step down na 5V--> uP z prostym programem choćby w Bascomie--> Bufor--> LED RGB Nawet można zrobić identyczną wkręcaną przy odrobinie zaparcia...
Oczywiście próbowałem ale bez efektu, sprawdzę jeszcze na tych tranzystorach. Jak nie zatrybi to zostanie mi chyba tylko dobudować bufor.
Dobra mały błędzik jest tu: For I = 1 To 32 I2crbyte Bufor , Ack If I = 17 Then ' to zmień Lowerline End If Lcd Chr(bufor) Next I oj jakoś się motam ostatnio.
Nie znam Bascoma, nie używam go i nie planuję. Ja bym użył wskaźnika na początek pliku i zapisał dane z offsetem po zakończeniu akwizycji. Tworzyłbym też plik samodzielnie zamiast kombinacji z pustym plikiem na PC. Proponuję szukać w helpie do Bascoma jak zdefiniować wskaźnik na początek pliku albo bufor dla danych z pliku i jak je później nadpisać.
Witam, proszę o pomoc w rozwiązaniu problemu w tym programie, bo już nie wiem co jest nie tak. Program ma sprawdzać stan portu pind.2 do którego podłączony jest odbiornik podczerwieni w odstępach 444µs i zapisywać wyniki do eepromu w bajtach. Zrobiłem to tak: $regfile = "m8def.dat" $crystal = 16000000 Config Lcd = 16 * 1a ' lub Config...
przerwanie od portu szeregowego obsługujesz w ten sam sposób jaki i każde inne przerwanie. Ale to nie wszystko ;) Jeśli skonfigurujesz seriala do pracy z buforem , to Bascom sam "podłoży" przerwanie i będzie za Ciebie odbierał znaki z uarta i zapisywał do bufora kołowego.Instrukcję obsługi Bascoma trzeba czytać , czytać , czytać... , a nie tylko pytać...
Zrób to jako dwie pętle bo wielkość tabeli w bascomie to max 255 bajtów poza tym nie wiem czy bascom sprawdza zajętość bufora transmisji co za tym idzie może gubić bajty . Zatem w pętli dodaj opóźnienie potrzebne na czas wysłania informacji przez interfejs.
PC wysyła wszystko co ma w buforze bajt za bajtem bez czekania. Można zwiększyć odstęp między bajtami, z tego co pamiętam to jest do wyboru szerokość przerwy 1, 1 1/2 lub 2 bity. A jak odbierasz dane? AVR'y nie mają buforu (no jest na 1 bajt, ale to nie bufor), najlepiej umieścić w przerwaniu wywoływanym przez USART podprogram który zapisze kolejne...
Problem w tym, ze musze napisac ten kod w basicu. W zasadzie mam ten kod napisany, ale chyba nie dziala jak powinien. Nie wiem czy to nie ma zwiazku z ustawieniami fusebitow, bo sekunda trwa ekstremalnie dlugo. Czy ktos wie jak zapisac cos do buforu odczytac lub sprawdzic czy jest cos w buforze? (bascom i attiny2313)
Witam, Proponuję resetować diody poprzez wysyłanie zer, czyli ustawić wszystkie bajty w buforze na "0" i wysłać je. Ja tak robię w swoich projektach. Też działam w Bascom-ie. Zawsze wykorzystuję wewnętrzny oscylator RC 8MHz, prędkość transmisji do diod WS to 800kHz. Poniżej kilka moich projektów. [youtube]https://www.youtube.com/watch?v...
Nie, jeszcze nie testowałem bo zwinąłem na dzisiaj "warsztat". Czy Twój sposób wymaga jakiejś wcześniejszej konfiguracji bufora UART'a?
Czy liczba jest zawsze siedmiocyfrowa? Nie mówie że to jedyny sposób ale podam jeden z możliwych. Deklarujesz zmienną tekstową siedmioznakową. Taka zmienna ma w rzeczywistości osiem bajtów. Nie chcesz wysyłać ósmego NULL. No i OK :D Na te zmienną nakładasz bufor siedmiu bajtów. Kiedy zmienna Dword każesz zamienić Bascomowi na string to on zapisze komórki...
Tak mógłbyś odbierać wszystkie znaki aż do wystąpienia CRLF Po wystapieniu znaku CR program skoczyłby do obsługi przerwania i poczekał na LF. Możesz sprawdzać z pętli głównej ilość znaków w buforze. Acha no chyba że w odbieranym ciągu przewidujesz nie zamierzone wystąpienie po sobie CRLF
Z całym szacunkiem to jest to po prostu wioska. Nie zadałeś sobie trudu sprawdzenie biblioteki o której pisałem. Powinienem to tak zostawić , ale nie mogę na to patrzeć. Nie dość, że nie możesz używać standardowych instrukcji Bascom takich jak Lcddat, Showpic itd to jeszcze potrzebujesz 512 Bajtów na bufor.. Dyskwalifikuje to ten kod dla mniejszych...
A po co to Enable/Disable w obsłudze ? no i druga sprawa - ideą przerwań jest, że nie mogą być w nich pętle, przemyśl konstrukcję obsługi tak, aby przy każdym czytaniu UDR dany znak był zapisywany pod kontrolą programu do bufora. To chyba się nie przyda : Config Serialin = Buffered , Size = 20
Tutaj: If Licz_znaki = Max_znakow Then Licz_znaki = 0 End If brakuje ci czyszczenia bufora. Z doświadczenia doradzę ci abyś wykonywał czyszczenie bufora co jakiś czas. Do tego celu możesz uruchomić timer który będzie generował przerwanie w którym będziesz czyścił bufor.
A jeśli chodzi o AVR to: ON źródło_przerwania nazwa_podprogramu [ NOSAVE ] gdzie: źródło_przerwania - symboliczna nazwa źródła przerwania, nazwa_podprogramu - etykieta określająca gdzie znajduje się podprogram obsługi przerwania. jako żródło przerwania można: URXCprzerwanie układu sprzętowego UART – odebranie znaku UTXCprzerwanie układu sprzętowego...
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...
jeżeli użyłeś config serialin=buffered, size=10 to musisz podawać dane powoli bo jak ci się przepełni bufor uarta to kich. rozwiązanie: albo zwiększysz wielkość bufora uart albo będziesz przesyłał bez bufora. przy tylu danych proponuje zrezygnować z bufora.
Wyłącz echo w telefonie. ale jak mam to zrobic ? ATE0 nie dziala :| Czyszczenie bufora nic Ci nie da.Aby "opróżnić" bufor , wystarczy wyrównać lub wyzerować indeksy _rs_head_ptr0 i _rs_tail_ptr0 . pytanie jak to zrobic pod Bascomem ? Obecnie jest tak jak by to co wysyla telefon ladowalo sie do bufora w roznych miejscach , raz na pcozatku, raz w srodku...
Tablica Bufor() jest typu Byte więc to nie Stringi i konwersja Hexval do niczego się nie przyda. Bajty są zamieniane niejawnie we Frame tylko na potrzeby wyświetlania na LCD. Coś w ten deseń powinno działać. Ogólnie to można to mocno poskracać, ale nie chciałem zaciemniać. [syntax=vbnet]Dim Arr(4) As Byte Dim Test As Single At Arr(1) Overlay Dim Bufor(9)...
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...
Ok, już sobie poradziłem z problemem tego krzaka :D Teraz mógł by mi ktoś powiedzieć, jak wyczyścić bufor uarta w bascomie??
Dzięki Koledzy...problem rozkminiony. Napisanie nowej procedurki z trzema inkeyami podstawiającymi pod kolejne zmienne poszczególne znaki z bufora rozwiązało problem.
witam pisze pewien programik pod bascomem i potrzebuje zaimplementować w asemblerze bufor FIFO dla przychodzących danych. Napisałem pewną procedurkę, lecz nie wiem czemu często coś się w nim zamiesza. sprawdzałem go troche w debugerze ale nic nie mogę wyczaić. Oto kod procedurki zapisującej i odczytującej z bufora: Save_to_fifo: 'Const Wielkosc_bufora...
Witam, mam następujący problem: na komputerze PC napisałem program wysyłający przypadkową liczbę co 500ms przez port com do mikrokontrolera. W uKonrolerze ATmega16 program wygląda następująco: $baud = 9600 $crystal = 11059200 Dim Danewej As String * 12 Cls Lcd "reset" Waitms 500 Do Input Danewej Cls Lcd Danewej Waitms 100 Loop Wszystko działa,...
Nie, ponieważ odczytuję z maszyny, którą znam i wiem co tam jest, buforu nawet nie można edytować.
to co kolega zrobił, to jest bufor kołowy. Takie algorytmy średniej kroczącej robi się właśnie w ten sposób, więc pomysł kolega miał dobry. W buforach kołowych operuje się na wskaźnikach, tworząc tak na prawdę listę kierunkowa. Niech sobie kolega poczyta jak to się dokładnie koduje.
wyświetlacz na sterowniku ks0108 nie wysteruje bezpośrednio przez i2c, możesz podpowiedzieć jaki bufor dodatkowo musiałbym zastosować ?
Tak jak to kolega Adam opisał cały nasz problem pojawia się przy funkcji get która nie wiedzieć czemu czyta całkiem inne dane. Prosty przykład Open "test.txt" For Binary As #4 Do Get #4 , bufor Print chr(bufor) Loop Until Eof(#4) <> 0 Daje nam całkiem inne znaki niż zawarte w pliku test.txt EDIT: problem rozwiązany, wszystko...
Witam Mam następujący problem po przekompilowaniu programu pojawia się kilka błędów Error 5 oraz Error 320. Błędy te wyświetlają się wyłącznie po zadeklarowaniu bufora Config Serialin=Buffered, Size=254 Config Serialout=Buffered, Size=254 W załączniku przesyłam zrzut ekranu. Proszę o pomoc pierwszy raz z czymś takim się spotkałem Pozdrawiam Michał [/img]
Poczytaj o instrukcji Config Serialin. To jest bufor wejściowy w USART w bascomie.
Nie wiem na czym polega problem kolegi. Poza tym o porcie RS232 mówimy tylko po stronie komputera, koledze chodzi jak mniemam o to, że z komputera są wysyłane dane do procesora i ten powinien je odbierać. Zatem jak kolega napisał po pierwsze należy użyć bufora (dostępny z poziomu BASCOM - poszukaj w helpie) a potem w danym miejscu programu sprawdzać...
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
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...
Powinieneś mieć funkcje niskiego poziomu która buforuje przyciski, a następnie API, które wyciąga przyciski z bufora. Sama funkcja konwertująca powinna wyglądać mniej więcej tak: void convert(void) { float_t val = 0; val = get_key() * 100; val += get_key() * 10; val += get_key(); val += get_key() / 10; }...
Twoim podstawowym błędem jest to że ciągle czyścisz ekran. Ta operacja zajmuje prawie 2 ms Nie wiem po co to robisz ? Wystarczy zdefiniować bufor w który bedziesz wpisywać swoje wyniki i ten bufor cyklicznie wyświetlać ale tylko wtedy kiedy to będzie konieczne czyli w zależności od ustwienia ew. flag sygnalizujących np. zmianę czasu. Inna sprawa czy...
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...
Może gubisz przesyłane znaki bo gdzieś pętla jest za wolna. Jeśli taką komunikację wrzucisz do większego programu to problem się tylko pogłębi. Lepiej skonfiguruj bufor i Bascom będzie odbierał wszystkie znaki w przerwaniu. Nie przegapi żadnego znaku. ->Config Serialin0 Widać, że dodajesz Enter na końcu stringów. Możesz to monitorować i parsować dane...
Nie ma znaczenia jaki tranzystor zastosuje i tak nie uniknie przedostawania się zakłóceń od kolektora na bramkę tranzystora przez jego pojemność, jeśli nie zastosuje "sztywnego" bufora problem nie zniknie.
To można rozwiązać na wiele sposobów. Jeśli tylko cześć ramki jest stała a zależy Ci na wartościach odebranych to można użyć bufora kołowego i kiedy wykryjesz koniec ramki to wciągasz z bufora poprzednie siedem bajtów. Tutaj jednak sprawa jest prostsza. Poniższy mikroprogram powinien sprawdzać po kolei nadchodzące bajty. Jeśli się zgadzają to wskaźnik...
Do czyszczenia bufora można użyć: [syntax=basic4gl]CLEAR SERIALIN[/syntax]
Witam! Gratuluję autorowi ciekawego sposobu komunikacji z WS2812B! Ja jeszcze bawię się AVR-ami, a nawet Bascomem ;) W układzie z filmiku [youtube]https://www.youtube.com/watch?v... wykorzystałem ATTiny85. Bufor danych do wysłania oczywiście w pamięci RAM. 3 bajty na diodę (RGB). Każdy bajt bezpośrednio określa jasność świecenia...
Właśnie w tym problem że nie mogę sprawdzić czy poprawnie odbiera dane ponieważ mam w tej chwili jedynie wyświetlacz led 3 cyfry i nawet nie mam jak wysłać danych na PC bo czekam na bufor (max232)
Jak zaprogramować przerwanie od pojawienia się bajtu w buforze usart.
Witam. Myślę, że w tym przypadku przed odczytem bufora RS sprawdź czy jest w pełni zapełniony, czyli czy cała wiadomość 7 znaków wpadło do bufora.
http://obrazki.elektroda.pl/4780964300_1... Witam Chciałem przedstawić moją konstrukcję odtwarzacza plików SID. Jest to moje protopywowe urządzenie zbudowane na dwóch płytkach uniwersalnych.Wszystkie połączenia są wykonane kabelkami.Sercem układu jest ATmega32 który jest prostym emulatorem procesora z C64 6502.Oryginalny układ SID'a...
W zasadzie to trzeba wyłączyć bufor FIFO o odbiorniku (Output and FIFO mode Command --> "fe" na 0). Do tego trzeba rodzaj filtru ustawić na OOK (Data FIlter Command --> "s0" i "s1" na 0). W nadajniku trudno powiedzieć. Pisze coś o trybie bez sybchronizacji, ale tylko drogą dedukcji można dojść że to jest właśnie tryb z wyłączonym buforem FIFO (Low Battery...
Acha no tak, za szybko napisałem. Wszystko przez to, że WAITKEY() czeka na znak - zatrzymuje program. W takiej sytuacji trzeba użyć INKEY(), ale wcześniej sprawdzać, czy jest odebrany jakikolwiek znak. Dodatkowo zastosowałbym buforowanie transmisji. CONFIG SERIALIN = BUFFERED , SIZE = rozmiar (c) Zbigniew Gibek, 2002-2005 (c) MCS Electronics,...
Zakup mikrokontroler, np ATTiny2313. Zbuduj programator, na kilka razy wystarczy funcard programmer, bez bufora. Ściągnij program Bascom AVR. Czujniki podłączasz tak jak tu : http://www.elektroda.pl/rtvforum/viewtop... Pozdrawiam
Napisanie $crystal = 1000000 spowoduje, że Bascom dostosuje opóźnienia do aktualnej częstotliwości pracy zegara i program zacznie zachowywać się normalnie. Aby przełączyć procek na zewnętrzny oscylator kwarcowy trzeba go podłączyć do programatora obsługiwanego przez Bascom. Kliknąć ikonkę programowania w Bascomie, wybrać programowanie ręczne, co pozwoli...
Możesz zdefiniować tablice 8-elementową ładować do niej dane i wysyłać poleceniem Printbin . [syntax=basic4gl]Dim Bufor(8) As Byte ' tablica 8 elemetowa .............. Printbin Bufor(1) , 8 ' wyślij 8 bajtów zaczynając od Bufor(1)[/syntax]
Jak czytałeś lub nie :) karta ma sekwencje "startu" , nie pamiętam teraz jaki ma format, jest to jakiś 5bit znak, ja najpierw z czytuje cały bitstream od czytnika i potem funkcją szukam startu jak nie znajdę to "przekręcam" bufor (znaczy ostatni bit staje się pierwszym w strumieniu) i jeszcze raz szukam znaku startu, potem już tylko na podstawie tablicy...
PWM możesz obniżyć spokojnie do 30Hz, pojawią się lekkie szarpnięcia, MOSFET to na prawdę dobre wyjście, a wysterujesz go już 6V/1mA (np.BUZ11). W takich warunkach pracuje bez radiatora. Najlepszy bufor między nóżkę uK a tranzystor to OP amp pracujący jako komparator. Nie zapomnij też o szybkiej diodzie tak jak to sugerowano, np 1N5822 i wydajnym układzie...
Za punkty - nie, przynajmniej nie ja. Ale cos pomóc mogę. Zrealizowałem już parę projektów uC + vb6 i jakoś one działają. Może zacznijmy od samego uC. Jeżeli był by to asm (bascom + zaawansowany bascomowiec) to zrobiłby to na dwuch tablicach które wyrażały by bufor odbioru i nadawania np rs_tx_bufor(12) as byte i rs_rx_bufor(12) as byte Można by to...
McRancor: nie zgadzam sie, moim zdaniem to dioda jest na linii VCC miedzy 74hc244 a programowanym ukladem. A prawda jest taka ze poprzez bufor przechodzi napiecie z portu LPT (w moich programatorach bez tej diody dalo sie nawet zaprogramowac 2313 zasilajac go wlasnie z portu LPT przez ten bufor). Poprostu przez bufor "przecieka" napiecie (nie sprawdzalem...
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...
No przypomniałem sobie, że można definiować w bascomie rozmiar bufora. Rozumiem, że gdy np. zdefiniuję go na 200B to gdy program będzie zajęty i nie będzie mogło dojść do przerwania to tam się będą gromadzić dane? A gdy znajdzie się czas i dojdzie do przerwania to będę te dane "normalnie" odbierać jakby teraz przyszły? Czemu Master musi przełączać slave'y?...
To możesz zrobić tak: [syntax=basic4gl] Odczytaj_sprzetowy_uart: Dane = "" Do 'Odbierz znak po znaku Kod = Inkey() Dane = Dane + Chr(kod) 'Zapisz w Dane If Dane = "Obroty1" Then Obroty = 1 If Dane = "Obroty2" Then Obroty = 2 If Dane = "Obroty3" Then Obroty = 3 Bufor = Ischarwaiting() 'Zakoncz jeśli brak znaku Loop Until Bufor = 0 Return [/syntax] i...
Witam Cieszę się, że mój program, który defakto nie jest szczytem programowania, kogoś zainteresował. Ogólnie działa on dość fajnie ale mógł by lepiej hehe. Teraz co do programu, to nie mam czasu na dokładną analizę całości (sesja :/ ), nawet swojego kodu już dobrze nie kojarze, ale zauważyłem jedną rzecz: kolega, w tym co dopisał używa zmiennej wynik_o...
Hm, rzeczywiście obsługę "dekodowania" zawartości odebranego stringu można przenieść poza przerwanie. Choć - to akurat rzeczywiście działa :) Ale - to raczej nie zmieni problemu z "ginącą" częścią odebranego stringu, bo przecież zawartość bufora się nie zmienia od momentu "poskładania" go w serial1charmatch. Kiedy następuje wywołanie serialcharmatch...
1$ - to juz lepiej dorwac specyfikacje techniczna i napisac swoje (przynaj- mniej bedziesz mial to co potrzebujesz). Inna sprawa: czy I2C wymaga buforów trójstanowych??
chcę nawiązać komunikację z urządzeniem które wysyła i odbiera dane na jednej linii protokół standardowy jak w rs232 użyłem poleceń SERIN i SEROUT w bascomie ale po wysłaniu ramki odbiera jakieś śmieci podkreślam że transmisja podsłuchiwana była w terminalu i urzadzenie odpowiada poprawnie , ale procesor odbiera śmieci .Czy trzeba stosować jakiś bufor...
ale można if _rs_head_ptr0<>_rs_tail_ptr0 then coś w buforze jest else nic nie ma end if
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...
Jakież to przerwanie muli ci PC-ta mógłbyś rozwinąć ? Użyj zwykłego terminana od windows i zobacz co dostajesz, może masz niedopowiednie prędkości transmisji dla PC i uP ? Uzyj przerwania odbioru znaku z bufora UART nie będzie się nic mulić bo twój program większkośc czasu poświęca na oczekiwanie na odbior znaku z PC-ta. O I2C zapomnij bo nie masz takiego...
Jaki masz programator? Z buforem? Sprawdź na innym komputerze. W programie wykorzystujesz sprzętowe SPI?
Nic skomplikowanego. Najlepiej zdefiniować np. 10 rejestrów typu Integer. Na to nałożyć Overlay Buffer * 20 (bo po dwa bajty na kazdy Word lub Integer). Odbierasz bajty do bufora, sprawdzasz CRC i przepisujesz do swoich danych ;)
bufor bascom czyścić bufor bascom bufor rs232 bascom
peszel ziemia komunikat mercedes klasa wyjęcie szyby
telefon czysty hwinfo64 sensor
AsProgrammer software download: official GitHub links, dregmod fork, CH341A, CH347 support TCL 50P615 Power Supply ICs: NCP1653B, NCP1397B, OB2269CP (283N20) on R51MW1-MPC2HG Chassis