...a tak z ciekawości zapytam jak długi zadeklarowałeś ten string LINIA ??? skoro jak rozumiem obsługujesz zapewne SMSy. To chyba długość co najmniej 160 hmmm ??... U mnie , zmienna Line ma rozmiar 30B , ponieważ pobieram do niej tylko ... jakby tu powiedzieć ... mnemoniki komend AT i ich parametry , a SMS-a dekoduje "w locie" , w czasie przerwań od...
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ą.
Tak, są to znaki NULL (o kodzie ascii 0). Są na pewno nadawane, ponieważ mam jednocześnie uruchomione dwa odbiorniki - jeden podłączony do mikrokontrolera, drugi przez przejściówkę USB-UART do komputera. Wszystkie transmisje obserwuję jednocześnie w terminalu i w urządzeniu odbiorczym. Kombinuję i kombinuję... Doszedłem do takiego rozwiązania: [syntax=basic4gl]...
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..)
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()...
Użyć przerwania. A dokładnie config serialin z funkcją Bytematch. Ewentualnie po każdym odebranym znaku zerowym Chr(0) dać Clear Serialin Wtedy bufor będzie zawsze ustawiony na początek.
Poczytaj o instrukcji Config Serialin. To jest bufor wejściowy w USART w bascomie.
Profesjonalnie to można programować w każdym języku, tylko trzeba go po prostu znać i umieć stosować w praktyce co najważniejsze. Dla takich początkujących jak ty Bascom powinien być jednym z lepszych języków tym bardziej, że nie rozumiesz jeszcze przerwań. Bascom daje ci gotowe rozwiązania w tym zakresie na maxa - popatrz sobie na Config Serialin ........
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
Po co ci takie wielkie bufory ilku bajtów. Bufor wyjściowy Serialout jest nie potrzebny. Zakomentuj go (i to już może Ci od razu pomóc). Zamiast flushbuff możesz spokojnie napisać Clear serialin Proponuję też przejść na odbiór tego znaku w przerwaniu za pomocą Config serialin z opcją BYTEMATCH=ALL Poczytaj na temat tej opcji w helpie (angielskim)
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...
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...
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
Zwiększ bufor odbiorczy, a do sprawdzenia czy jest nowy bajt w buforze użyj Ischarwaiting() : [syntax=basic4gl] Config Serialin = Buffered , Size = 20 ' bufor 20 bajtów ........ Do If Ischarwaiting() = 1 Then P = "" Input P Gosub Przelicz End If Loop[/syntax]
Niby odbiera. Niestety jak używam przerwania Urxc nie mogę używać bufora wejściowego(Serialin.....). No nic, napisze go samemu. Zobaczymy co z tego wyjdzie.
Witam Wie ktoś może (no może poza datasheet-em :D ,gdzie nie znalazłem lub przeoczyłem ) w jaki sposób czyścić "ręcznie" bufor wejściowy i wyjściowy danego uarta? Czy instrukcja : _RS_BUFCOUNTR4=0 załatwi sprawę? Czy można ręcznie czyścić każdy z buforów wejściowych i wyjściowych dla każdego uarta z osobna? Jak to z tym jest? Na pytanie z pierwszego...
użyj sobie po pierwsze bufora wejściowego dla RS'a (zobacz w helpie dokładnie co i jak to się używa) Config Serialin = Buffered , Size = 20 to po pierwsze, potem możesz stosować sobie polecenie Ischarwaiting w programie dzięki czemu nie będziesz musiał zatrzymywać programu i czekać z poleceniem INPUT gdy nie nadlatują żadne dane. Dzięki Ischarwaiting...
Do czyszczenia bufora można użyć: [syntax=basic4gl]CLEAR SERIALIN[/syntax]
no tak włączenie bufora serialin musi być dla tego portu na którym działa u cienie instrukcja INPUT i tak chyba jest bo przecież napisałeś serialin1 a dla pierwszego portu czyli UART0 byłoby samo serialin ale rozumiem, że tak jak teraz pokazałeś kod to nadal tylko po resecie leci cały wyraz ALA a potem tylko AL tak? i tak jeszcze przy okazji jesteś...
:arrow: Mictronic: Predkosc transmisji to 9600! Ponizej wklejam wycinki mojego programu do obslugi tego modulu: '------------------------------- ' modul RFiD ' ' 9600.1.0 ' dane 0xff,x,x,x,x,x,crc8 '------------------------------- {...} $baud = 9600 ' predkosc transmisji Config Serialin = Buffered , Size = 100 ' rozmiar bufora {...}...
Nie zauważyłem na początku programu następującej konfiguracji. Przeznaczenie: Konfiguruje sprzętowy układ UART by używał bufora wejściowego. Składnia: CONFIG SERIALIN = BUFFERED , SIZE = rozmiar gdzie: rozmiarliczba określająca ile bajtów SRAM przeznaczyć na bufor wejściowy. UART jest odczytywany kiedy program chce, a nie kiedy przychodzą dane. Może...
mirekk36 . Na razie nie wiemy jakie kolega ma długieee te transmisje danych. RAM nie jest z gumy, a powinno jeszcze starczyć na całą masę zmiennych i trzy stosy, a zwłaszcza na HWStack, który by tu mocno puchnął. Kolega używa GETRC5. Nie zapominaj o nim, bo połączenie przerwania z INTx (słynne GETRC5 w przerwaniu) + dwa z USART-u (via bufor SERIALIN)...
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...
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...
tak wygląda sam kod do odczytu predkośći "trochę nie ogarnięty sorki" [syntax=basic4gl] $regfile = "m16def.dat" 'wew rezonator $crystal = 8000000 'jest włączony wew rezonator $baud = 9600 'szybkosc ibusa Config Lcd = 16 * 2 'używany wyświetlacz i piny do jakich jest podłączony Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7...
Miże to pomoże: Config Serialin = Buffered , Size = 200 Size ustala wielkość bufora.
To nie jest konfiguracja sprzętowego UARTu tylko programowego. Sprżetowego nie trzeba konfigurować. Użycie Print,Inkey,Input bez numeru kanału domyślnie używa sprzętowego Uart. Jedynie można sobie ustawić bufor wejściowy i wyjściowy poleceniami Config Serialin/Serialout
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]
Bart : Dziękuję za podpowiedz z Config input. Faktycznie teraz nie ma że widze w prawym stringu gdy jego wartość jest wysyłana jako 4 miejscowa. Inkey niepotrzebny nie widać LF czy CR ( te 3 poziome kreseczki). Ale odbiornik potrafi zamienić lewo na prawo i tak wyświetla ( czasami 4 krotny reset trzeba wykonać aż załapie odpowiednio ramke)-- nie znam...
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,...
$crystal = 8000000 'częstotliwość kwarcu $baud = 38400 Dim Zmienna As Byte , Zmienna2 As Integer Dim Ignorowane As Byte , Id As Byte , Dane As Byte Dim A As Byte , B As Byte 'Config Serialin = Buffered , Size = 20 Zmienna = 5 Do Waitms 500 Cls Lcd Id ; " " ; Dane ; " " ; Zmienna ; " " ; B Inputbin Id , Dane , Zmienna ,...
Witam, a po choinkę wyłączać Timer przy organizowaniu wymiany danych z PC ??? poczyta sobie kolega o takich poleceniach jak np: Config Serialin - dzięki któremu można ustawić sobie bufor wejściowy, do tego proszę zobaczyć co przy tym poleceniu robi Bytematch - dzięki, któremu można sobie ustalić po nadejściu jakiego znaku ma się zainicjalizować np jakaś...
Oooops! sorki nie zauważyłem tej linii Config serialin - a masz rację to jest buforowanie sprzętowe w bascomie i to buforki cykliczne .... Spróbuj może z dużo większym buforem niż 255 bajtów - masz przecież w m32 sporo RAM'u
Dlatego, że wysyłasz dane z ATmega8535 ciągle proponuję odczytywać przy pomocy poleceń WAITKEY() lub INKEY(). INPUT akurat do tego nie jest najlepsze. Proponuję też skonfigurować bufor UARTA. Config Serialin = Buffered , Size = 8 O tych wszystkich poleceniach znajdziesz w pomocy.
Witam ponownie! Problem faktycznie leżał w buforze odbioru danych. Należało powiadomić kompilator o chęci użycia takiego bufora: Config Serialin = Buffered , Size = 200 Przyznam, że próbowałem to zrobić wcześniej i uP nie odbierał już niczego, a to przez to, że nie włączyłem obsługi globalnych przerwań ;) Enable Interrupts Teraz już wszystko działa...
zapomnij w takim prostym przypadku o przerwaniu Urxc (wywal z tego swojego kodu wszystko co masz związane z tym przerwaniem), zamiast tego - to co wpisałeś w przerwaniu - daj w pętli głównej - i wszystko w cudowny sposób ci ruszy. Co więcej - zainteresuj się takim poleceniem jak Config serialin - dzięki czemu włączysz sobie sprzętowy bufor RS232 - który...
Myślałem nad tym ale ...... Instrukcja CONFIG SERIALIN Przeznaczenie: Konfiguruje sprzętowy układ UART by używał bufora wejściowego. (c) Zbigniew Gibek, 2002-2005 (c) MCS Electronics, 1999-2005 Jest procedura , która pozwoli mi na dowolny pin wysłać dane w standardzie uart ? Żeby sprzętowy w attiny 2313 to poprawnie odebrał ?
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.
Spróbuj odbierać przy użyciu : Config Serialin Bytematch = ALL zamiast Urxc. Jeszcze lepiej gdybyś ustawił bufor i odbierał z bufora całe linie zakończone CRLF
Ma się dobrze jeśli ma odbierać dane z bufora. Jeśli Twoje Print Komenda ; Chr(13); zmieniłbyś na Print Komenda To z powodzeniem mógłbyś odbierać w przerwaniu Pozostało by ci tylko ustawić: Config Input = Crlf , Echo = Crlf Config Serialin = Buffered , Size = 80 , Bytematch = 13 a przy odbieraniu: Input Odczyt Noecho
Cóż, pewnie takie rzeczy są w tym prymitywnym języku ciężkie do osiągnięcia. Fragment pomocy do bascoma: Konfiguruje sprzętowy układ UART by używał bufora wejściowego. Składnia: CONFIG SERIALIN = BUFFERED , SIZE = rozmiar gdzie: rozmiarliczba określająca ile bajtów SRAM przeznaczyć na bufor wejściowy. Opis: Gdy w programie użyta zostanie instrukcja...
Dodatkowo w Bascomie bardzo łatwo zrobić bufor danych, pogoglaj na temat poleceń Config serialin oraz Config serialout .
Próbowałem wcześniej Config Serialin, ale help Bascoma nic nie wspomina Bytematch dopiero na forum coś więcej jest Config Serialin = Buffered , Size = 7 , Bytematch = 13 ( czyli rozmiar bufora, oraz znak po którym zostaną wpisane znaki do stringu, później Input, który ładnie wytnie znak określony w Bytematch i od razu jest gotowy do badania warunków...
Witaj, Używam programowej obsługi wejściowego bufora FIFO USARTa zaimplementowanego w Bascomie oraz następującej konstrukcji do jego obsługi umieszczonej w głównej pętli programu: 'Konfigurujemy programowy bufor sprzętowy Config Serialin = Buffered , Size = 128 Enable Interrupts ......... 'W pętli głównej: If _rs_bufcountr0 <> 0 Then Do Dana...
A po co wogóle kol. Stepel pisze sobie bufor we własnym zakresie, skoro jest coś takiego jak CONFIG SERIALIN, działający na przerwaniach. Potem trzeba tylko umiejętnie wykorzystać INKEY() i ISCHARWAITING().
Ło matko! ludzie co wy tu opowiadacie? Jarosław J - odnośnie twojego problemu ale już konkretnie: 1. Możesz najspokojniej w świecie przy komunikacji dwóch procków zrobić tak, że jeden będzie taktowany wewn oscylatorem a drugi np. kwarcem (Żaden problem) !!! 2. ale używaj sprzętowego UARTA w Bascomie a nie to co tutaj wszyscy razem wyczyniacie ;) 3....
Nie wiem czemu ma służyć ten kod. Napisany jest tak "dziwnie" że trudno nawet zgadnąć o co mogło autorowi chodzić :P Funkcja Ischarwaiting() zwraca 1 jeśli w buforze odbiorczym są jakieś odebrane znaki. Kiedy ich nie ma zwraca 0. Wynika z tego że ten kod "sprawdza czy w buforze nie ma żadnego odebranego znaku i Printuje tylko kiedy bufor jest pusty/czysty"....
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...
...I jeszcze stałe wyławiane z odebranego tekstu. Dzwtxt = ": +48" A ja się na tym "przejechałem" , bo Era we własnej sieci , nie wysyła przefiksu kraju , czyli owego +48. Wracając do "techniki" odbierania transmisji z telefonu , stosuję ... Config Serialin = Buffered , Size = 254 , Bytematch = 13 ... oraz Serial0charmatch: lds r24,{event}...
Witam. Proponuje tak jka kolego radzi uzyc bufora, który automatycznie działa. tu przykład: Config Com1 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 Config Serialin = Buffered , Size = 7 -------' wielkośc 7 znaków Enable Interrupts -------' musisz włączyć przerwanie później w programie dajesz Bufor_rs = Bufspace(1)...
A dlaczego nie odbierasz w przerwaniu? Użyj bufora np tak: Config Serialin = Buffered , Size = 50 , Bytematch = 13 Oczywiście Bytematch musisz sobie dobrać wg. siebie. Potem w przerwaniu ustawiasz sobie jakąś flagę sygnalizującą że coś już czeka w buforze , np tak: Serial0charmatch: Rs_flaga = 1 Return a potem w pętli głównej najzwyczajniej odbierz...
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ć...
Podstawowy błąd w programie odbierającym dane to za mały bufor, dane mogą być nadpisywane. Bufor powinien mieć minimum 14 bajtów, zmienne są wysyłane w postaci łańcucha np. "-32768,-32768",$0D. Do prawidłowej pracy bufora wymagane jest globalne włączenie przerwań (Enable Interrupts). [syntax=basic4gl]Config Serialin = Buffered , Size = 28 , Bytematch...
Tych znaków jest trochę więc proponuję bufor wejściowy. Wyświetlacz przyjąłem 16*2: $crystal = 4000000 $baud =4800 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.4 , Db6 = Portc.5 , Db7 = Portc.6 , E = Portc.2 , Rs = Portd.6 Config Serialin = Buffered , Size = 32 Dim Znak As Byte Dim I As Byte Cls Enable Interrupts I = 1 Do Do...
Jeśli nie przeszkadza Ci Bascom to wklejam poniżej fragment programu, który daje sygnał na telefon i rozłącza się. Dzwon: Print "ATE0" ; Chr(13) Print "ATD602111111;" ; Chr(13) 'Po ATD numer telefonu Wait 15 Print "ATH" ; Chr(13) Wait 1 Gosub Oproznij_bufor Return Oproznij_bufor: 'Opróżnia...
Niestety pomimo wielokrotnych prób nie udało mi się uruchomić układu. Pomiędzy TXD atmegi a RXD telefonu dałem rezystor 260 Ohm oraz diodę zenera 3V9, a program w bascomie jest następujący: [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 $Baud = 19200 Config Serialin = Buffered , Size = 200 Dim Kod As Byte Dim Bufor As Byte Do Print "ATE0"...
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ż...
Czemu w nadajniku komfigurujesz bufor wejsciowy? Po co wogole to konfigurujesz? Kolega mógł po prostu się pomylić, i zamiast CONFIG SERIALOUT napisał CONFIG SERIALIN. Przy wolnych prędkościach transmisji lub przy wolnym zegarze kontrolera tak jest nieco lepiej.
Serialin3 to raczej COM4. Może w tym problem ;) COM1 - Serialin0 Com2 - Serialin1 Com3 - Serialin2 itd....
... 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
Najistotniejsze pytanie: DLACZEGO GDY NADAJĄ 2 NADAJNIKI, TO PROCESORY LUB PROGRAMY Z POWODU ŚMIECI "IDĄ W KRZAKI" PODCZAS ODBIORU TYCH ŚMIECI? Bo program jest źle napisany (źle "wymyślony" algorytm odbioru). Niestety nie jestem w stanie pomóc...nie znam Bascoma. No to żeś się popisał...to że coś jest źle to chyba wiadomo ;P Niestety kontrola musi...
Znalazłem coś takiego, czy oto chodziło ?? Config Serialin = Buffered , Size = 32 , Bytematch = 13 '... If Flaga = 1 Then Input String_var Reset Flaga End If '... Serial0charmatch: Set Flaga 'można odczytać znaki z bufora poprzez np. Input String_var Return
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ę...
Witam !! Instrukcje Config Serialin = Buffered , Size = 50 'Konfiguracja UART IN Config Serialout = Buffered , Size = 50 'Konfiguracja UART OUT służą do konfiguracji bufora wejściowego i wyjściowego. Jeżeli UART odbierze bajt to jest on dostępny w SBUF. Jeżeli nie pojawi się instrukaca Input, któr de fakto czyta z SBUF'a, a UART odbierze kolejny bajt...
Witam, mam problem z SL45i. połączenie jak na obrazku i nic się nie dzieje. (napięcie obniżone tylko na TXuc>>RXtel). Tel nawet nie mignie. http://obrazki.elektroda.net/89_12784375... $regfile = "m32def.dat" $crystal = 8000000 $Baud = 19200 Config Serialin = Buffered , Size = 200 Dim Kod As Byte Dim Bufor As Byte Config Porta = Output 'cały...
dziwna sparawa pierw podpialem tak http://obrazki.elektroda.net/35_12524329... i oczywiscie zle podpialem zgodnie z twoim opisem M. S. i co zadzwonil heeh ale tylko raz odpalem zasilanie podpialem i cisza nic nie idzie dalej hehe tel sprawny bo podpialem go jeszcze pod kompa i dziala program $regfile = "m8def.dat" $crystal = 8000000...
Az dziwne że programista pyta. https://obrazki.elektroda.pl/7890092900_... [syntax=vbnet]Clearserialin0 Clerserialin1 ...itd[/syntax] Proszę przynajmniej wcisnąć F1 i poczytać o Config Serialinx.... potem jak tego uzywać.
Witam, mam problem z podstawową obsługą siemensa CX65 przez atmegę. Proste sterowanie siemensem c35i w miarę opanowałem, ale mam tylko 1 egzemplarz tego telefonu, w dodatku w marnym stanie, więc postanowiłem powalczyć z trochę nowszym. Przez hyper terminal telefon działa znakomicie, po podpięciu do atmegi nie dzieje się nic. Próbowałem z zasilaniem...
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...
kurczę jeszcze gorszy jest ten problem bo okazuje się że wysłanie jakiegoś dłuższego stringa z PCta do Bascoma graniczy z cudem no chyba że znowu wysyłam znak po znaku i robię pomiędzy tymi znakami znowu przerwy po np 200ms czyli tak jakby symuluję wpisywanie znaków jak z klawiatury gdy jestem podłączony terminalem gdzie robię błąd ??? Dodano po 55...
Generalnie mam ten sam problem. Modem reaguje poprawnie na wysyłane komendy ale nie odbiera potwierdzeń z modemu. Zuważyłem, że gdy zastosuję następującą procedurę uruchamiania to działa poprawnie: 1 zasilanie mikrokontrolera 2 odłączenie TxD modemu do kontrolera 3 zasilanie modemu (PWRKey do GND) 4 połączenie ponownie TxD modemu do kontrolera Dodano...
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......
Jeszcze mam jedno -może dwa pytanka. Otóż dla mnie najwygodniejsze było by zrobienie odbioru danych wszystkich czterech uartów w przerwaniach. Tak aby jeśli przyjdą jakieś dane, z któregoś z moich czterech modułów komunikujących się właśnie poprzez rs232 , to działo by się mniej więcej coś takiego że: 1.Po pierwsze dane przesyłane są w postaci "paczek...
Co do prób wysyłania napisów, to były to na pewno łańcuchy znaków String :) Zmiana programu na test odbierania przez ATmege8 znaków po RS232: [syntax=basic4gl]Config Serialin = Buffered , Size = 16 'dodanie bufora (bez działa tak samo) Config Serialout = Buffered , Size = 16 'dodanie bufora (bez działa tak samo) Dim A As String * 16 Enable Interrupts...
Ja robie to w ten sposób: Ustawiam buforowanie: Config Serialin = Buffered , Size = 150' ilość odbieranych znaków Enable Interrupts' trzeba zezwolić na przerwania W pętli głównej daje warunek: B = Ischarwaiting() If B = 1 Then Gosub Odbierzuart A dalej procedura odczytu: Odbierzuart: C = "" Do A = Inkey() C = C + Chr(a)...
Witam wszystkich mam taki problem.Potrzebuję z aplikacji android wysłać cztery zmienne typu Word do procesora Atmega 32 i zapisać je w Epromie.Dane wysyłane w Srtingu. Na razie wysyłam dane z terminala z Pc-ta.Aplikację na Android pisze mi ktoś inny.Potrafię wysłać jedną zmienną nadaną jako String przekształcić na Word i zapisać ją w Eprom na procku...
Witam! Podłączyłem telefon komórkowy marki Siemens C35 do AtMega16 za pomocą układu konwertera napięć zamieszczonym poniżej: http://obrazki.elektroda.net/37_12462051... Jestem w połowie drogi ponieważ uP komunikuje się z telefonem (mogę zadzwonić oraz wysłać smsa), jednak nie mogę uzyskać podłączenia w drugą stronę. Na przykład prosty program...
Urządzenie nadawcze i odbiorcze ma kwarc RC: [syntax=basic4gl] $baud = 9600 Config Serialin = Buffered , Size = 15 [/syntax] Zmienne: [syntax=basic4gl] Dim Bufor_flaga As Byte Dim A As String * 10 Dim C As String * 8 Dim Tempcwu As String * 2 Dim Tempcwu_a1 As String * 2 Dim Tempcwu_a2 As Byte [/syntax] W nadajniku wysyłam dane *123456789 W terminalu...
w funkcji Getline() jest użyte Input String_uart, natomiast nie wiem jak "przełączyć" tak, aby po odebraniu znaku końca linii ( lub 47 znaku, bo tyle zawsze przychodzi ) zaczął zapisywać do drugiego stringu Może tak ? [syntax=basic4gl] If Uart_ciag = chr(13) then Input Uart_ciag1 , Noecho End if [/syntax] Próbowałem takiego "potworka" [syntax=basic4gl]...
No nie wiem czy musi być 4x szybszy. Chyba, że inaczej będą się gubić dane, ale chyba jest coś jak bufor...? Czemu master ma się przełączać (czytałem o SPI w książce i jakoś nic o tym nie znalazłem). Jedyny problem to chyba gubienie informacji przez mastera. Pojawił się kolejny problem, bo z tego co widzę muszę mieć crystal=16MHz bo inaczej odbiera...
Poopuszczałeś trochę, a do tego literówki i dlatego wyrzucało błędy. Ten program kompiluje sie poprawnie. $regfile = "attiny2313.dat" $crystal = 11059200 $hwstack = 32 $swstack = 10 $framesize = 20 'DEKLARACJA ZMIENNYCH I PROCEDUR Dim Flaga As Bit , Flaga1 As Bit Dim Wylacz As Byte , Znak As Byte , Adres As Byte , Licznik As Byte Dim Znak1...
Te przerwania muszą być włączone do buforowanego trybu odbioru danych. Ale co jest podpięte z drugiej strony do procesora? Dalej zidentyfikuj, na której instrukcji procesor staje (podpowiem żeby szukać przed czy po Inputbin). Witajcie, program staje na inputbin, Do Waitms 25 Printbin &H00 ; &H00 ; &H00 ; &H00 ; &HE7; ' Printbin &H00 ; &H00 ; &H00 ;...
Witam, postanowiłem trochę pobawić się z odczytywaniem danych z telefonu za pomocą atmegi. Docelowo ma to być prosty netmonitor. Niestety napotkałem przeszkodę z ktorą nie mogę sobie poradzić. Telefon podłączony jest bezpośrednio do linii TX,RX i GND procesora, komunikacja jest ( sprawdzalem wybierjaąc numer). Przez chwilę wszystko dziala OK, ale po...
Dziekuję za wszystkie dotąd udzielone mi porady. Jeśli chodzi o transmisję binarną printbin, inputbin to próbowałem wyszło super przede wszystkim zmniejsza liczbę byte ramki chodzi mi o to, że gdy wysyłam parametr do pwm np. 255 to używam 3 znaków ASCII czyli 3 byte a binarnie wyśle byte 255 i to tyle ale w transmisji nie mogłem korzystać z przerwania...
Podsyłam prosty programik z polskiego helpa do bascom-avr. Bardzo dobrze obrazuje zasade wysylania i odbierania sygnalu szeregowego. Wiem, że niby temat jest zamknięty, ale może kolega jeszcze tutaj zerknie, a jak nie, to będzie dla innych :) '---------------------------------------... ' RS232BUFFER.BAS ' (c) 2000-2002, MCS...
Heh ..no niestety a ja jakos olalem stroen sprzetowa myslac ze na defaultowych ustawieniach powinno smigac ;) To teraz żałuj :D mam rozumiec ze nie ma znaczenia czy cos wysylam czy pobieram to to jest jeden buffor ? Nie :!: Bufory są oddzielne :idea: Ja rozumiem ze jest to cos w postaci tablicy ktora przelatuje w kolko po indexach ale chyba to jest...
Witam Mam pytanie dotyczące transmisji RS232 w atmedze8 do komputera. Chodzi o wielkość bufora w USART. Realizuje komunikacje z komputerem w sposób: wysyłam w petli znak, mikroprocesor w odpowiedzi wysyła ciag znaków po 10, po odebraniu w komputerze wysyłam nastepny znak i tak 10 razy obecnie. Z moich obserwacji wychodzi na to ze bufor moj musi miec...
Sprawa jest banalnie prosta (pomijam tu już połączenie sygnałów na krzyż bo to zrobiłeś chyba prawidłowo) , tylko po 1. Włącz sobie w Bascomie w obu prockach sprzętowy bufor RS232, który działa na przerwaniach - służy do tego polecenie Config Serialin - poczytaj sobie o tym i jak ustawić sprzętowy bufor wejściowy 2. to co chyba ci rozwala całą koncepcję...
U mnie poszło coś takiego: $regfile "m16def.dat" Config Lcd = 16 * 2 $crystal = 1000000 $baud = 9600 Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5 , E = Portb.1 , Rs = Portb.0 Config Serialin = Buffered , Size = 12 Dim X As Integer , Y As Integer Config Pind.1 = Output Enable Interrupts ' Musisz włączyć...
podłączyłem mój układ do kompa (telefon działa bez zarzutu w kompie) i pojawił się problem... $regfile = "m8def.dat" 'dyrektyw mikrokontrolera $crystal = 1000000 'informuje kompilator 'o częstotliwości oscylatora 'taktującego mikrokontroler $baud = 200 'informuje kompilator 'o prędkości transmisji Config Lcd = 16 * 2 'konfiguracja typu LCD...
kamyczek Czy możesz mi pomóc? Testuję teraz programik (sorki za bałagan, ale próbuję to zrozumieć) https://obrazki.elektroda.pl/6271535900_...
Witam Zbudowałem układ oparty o uC ATmega32 i połączyłem ją z Siemensa C35. Nie będę opisywał połączenia i wrzucał schematów bo to mi działa. Udało mi się odczytać z komórki: *Stan naładowania baterii *Siłę sygnału antenowego *Date i godzinę *Numer osoby dzwoniącej i zawiesiłem się na odczycie SMS-a. Wykrywam nowego sms-a poprzez zapytanie: Nowysms...
Jestem świeży w temacie i mam elementarny problem. W sposób właściwy podłączyłem telefon z µP (dzięki temu forum). Do przetestowania dwukierunkowej komunikacji (zapytanie-odpowiedź) z Siemens S35i wykorzystałem program użytkownika arkadius - delikatnie zmodyfikowałem wyświetlanie komunikatów na lcd µP. Kod cały programu zamieszczę poniżej...
Zrób prosty test - wgraj taki program i powiedz co się dzieje [syntax=basic4gl] $regfile = "m32def.dat" $crystal = 16000000 $baud = 9600 Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2 Config Serialin = Buffered , Size = 20 Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits...
listing programu w Bascomie : $regfile = "m8def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera $crystal = 12000000 'informuje kompilator o częstotliwości oscylatora 'taktującego mikrokontroler $baud = 19200 'informuje kompilator o prędkości transmisji Config Lcd = 16 * 2 'konfiguracja typu LCD Config Lcdpin = Pin , Db4 = Portc.3...
Witam!!! Wykonałem układ ze strony http://mirley.firlej.org/wyswietlacz_lcd... Ale mam kolejny problem. $regfile = "m32def.DAT" $crystal = 16000000 $baud = 9600 Config Portd.0 = Output Config Porta.0 = Output Porta.0 = 0 Printbin 27 Do Print "1234567890123456" Wait 2 Printbin 27 Printbin 66 Waitms 5 Printbin 66 Waitms 5 Printbin...
Witam, mam dziwny problem, SIM900 nie wysyła sms-ów. Program w Bascomie napisał mi kolega, nie należał do najkrótszych i wszystko działało, odbierał sms-y z komendami i włączał urządzenia, wysyłał sms, dzwonił, odrzucał połączenia itd. Kiedy wyodrębniłem z tego programu fragment który miał tylko wysyłać sms kilka razy zadziałał, a później przestał,...
Witam. Po pierwsze nie zauważyłem wcześniej, że już skonfigurowałeś Serialin0. Błędem natomiast jest jest używanie Serialout0 a potem zamiast to wrzucić do bufora to wycinasz po jednej literce ze stringa i nadajesz pojedynczo... Po prostu napisz Print String i zapomnij. Bascom sobie to sam wyśle. Tobie radzę na razie nie korzystać z Serialout0 w ogóle....
Próbowałem podłączyć ATMEGE8-16PU do telefonu komórkowego SIEMENS S35 za pomocą sprzętowego UART i poniosłem klęskę. Nic nie działa, próbuję wysłać na telefon prostą komendę wybrania numeru i nic się nie dzieje. Może troszkę więcej szczegółów. Mikrokontroler jest podłączony do telefonu wg poniższego schematu: http://obrazki.elektroda.net/44_12386816...
zrobiłem tak: Atmega328 - Master Do Config Serialin = Buffered , Size = 24 Enable Interrupts If Ischarwaiting() = 1 Then ' sprawdź czy jest jakiś znak do odebrania w buforze lub HW UART Gosub Odczyt_rs End If '***************************** wysyłanie żadania danych do modułu 001 If Flaga_001 = 1 Then Set Re_de Waitms 2 Print "MOD001"...
przerwać serialin serialin przerwanie bascom serialin
toroid zasilacz impulsowy regulator napięcia przewody honda zmiana kodowania
szorowanie bębna pralki używana pralka miele
Problemy z dźwiękiem w Yamaha Tyros 1: subwoofer i satelity Wymiana gąbki w drukarce Epson Stylus SX115