Nie wiem czy będziesz mógł ustawić Timeout bo jest od wersji 2076. Najwyżej zakomentuj. Reszta powinna działać. Poczytaj o "Config Serialin" i "Ischarwaiting" Tak dokładniej to Input czeka na Enter albo na to co ustawimy żeby czekał (Config Input) Jak Enter nie nadchodzi z powodu jakiegoś błędu to przydaje się Timeout. Najczesciej odbieram dane po jednym...
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()...
Musisz właczyć przerwania . Dodaj na początku programu sei lub inaczej enable interrupts
: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 {...}...
Config Serialin = Buffered , Size = 80 Enable Interrupts Dim _Flaga_1s as Bit _Flaga_1s = 0 Config Timer1 = Timer , Prescale = 64 Enable Timer1 : On Timer1 Co1s Cls Do If Ischarwaiting() = 1 Then Znak = Inkey() Print Chr(znak) ; End If if _Flaga_1s = 1 then ' ------> a tutaj wyświetlaj już sobie spokojnie co chcesz co...
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...
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...
Ischarwaiting() działa tylko w połączeniu z Config Serialin = Buffered i do tego Enable Interrupts .
Już nic mądrzejszego nie wymyśle. Czy chodzi o coś takiego ?? Konfiguracja Config Serialout = Buffered , Size = 20 Config Serialin = Buffered , Size = 20 , bytematch = 13 Enable Interrupts Serial0charmatch: A = Ischarwaiting() If A = 1 Then input temperatura End If Return Jeżeli to nie tak to proszę o pomoc
Temperaturę odczytaną z ds'a formatuję i wrzucam do zmiennej string poleceniem FUSING, np: Temp = Fusing(t1 , "#.#") gdzie Temp to string, a t1 to zmienna single z odczytaną temperaturą. Następnie mam kilka warunków if..then gdzie zmienna Temp jest uzupełniana znakami (np. spacji), tak aby fragment łańcuch z pojedynczą temperaturą miał zawsze tą samą...
Tutaj masz Baud Rate kalkulator http://www.wormfood.net/avrbaudcalc.php ] i dla 16MHz predkosc 19200 jest jak najbardziej odpowiednia, a mozesz nawet ustawic na 38400 lub 76800 i tez bedzie smigac! Odbior danych najlepiej zrobic wykorzystujac wskazowki ZbeeGin 'a: Dim jakas_zmienna As Byte Dim Uart_buffer As Byte Enable Interrupts {...} Do...
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)...
Jeżeli dobrze zrozumiałem Twój problem to spróbuj poniższy kod [syntax=basic4gl] $regfile = "m32def.dat" $crystal = 16000000 $baud = 19200 $hwstack = 32 $swstack = 10 $framesize = 40 Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2 '************************* Dim ***********************************...
Witam Odbieram po rs232 ramki , najdłuższa z nich ma 176 znaków a najkrótsza 44 znaki , kawałek kodu w bascomie wygląda tak : Dim Znaki As String * 176 Enable Interrupts Enable Urxc Do If Ischarwaiting() = 1 Then Inputbin Znaki . . 'tu wyświetlam na lcd . Loop Problem polega na tym że jak przyjdzie krótsza ramka to program stoi w miejscu , rusza...
Witam. Mam mały problem z przepisaniem wartości z DANE do zmiennej CZAS. Potrzebuję by po odczycie z UART wartość CZAS=DANE. Oczywiście żle to robię bo BASCOM pokazuje błąd. [syntax=vbnet] Config Serialin = Buffered , Size = 4 Enable Interrupts Declare Sub Kas_bufor Dim Uart As String * 1 Dim Buf As Word Dim Dane As String * 4 Dim Czas As Word Cls Locate...
Jak sobie z tym poradzić aby program nie czekał tej minuty na zmienną? Użyj funkcji Ischarwaiting() : nie bardzo działa bo tylko jedna zmienna Ts wygląda jak powinna a reszta jest z jakimiś śmieciami. W Bascomi'e jest możliwość zdefiniowanie bufora pierścieniowego dla przychodzących danych, do odbioru bajtów wykorzystane jest przerwanie USART. [syntax=basic4gl]Config...
Jest taki sobie programik: $regfile = "m16def.dat" $crystal = 16000000 $baud = 9600 Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0 Config Lcd = 20 * 4 Config Serialin = Buffered , Size = 10 Enable Interrupts Declare Sub Kas_bufor Dim Uart As String * 1 Dim Buf As Word Dim Dane...
Witam , problem polega na odczytywaniu tylko 2 bajtów z bufora uart , wysyłając 5 zaków np.12345 na wyświetlaczu pojawią się tylko 12 a reszty po prostu nie ma . Czy ktoś napotkał podobny problem ...[syntax=vbnet]$regfile = "xm32a4udef.dat" $crystal = 32000000 $hwstack = 32 $swstack = 32 $framesize = 32 Debug Off Config Submode = New Config Eeprom =...
Witam, Od wczoraj próbuję uruchomić symulację w Bascom-AVR i nic :( Oto mój kod do odbierania danych: $sim '----tylko do testu na kompie $regfile = "m8def.dat" $crystal = 8000000 $baud = 9600 Dim A As String * 1 Config Serialin = Buffered , Size = 20 Enable Interrupts Print "Start" Do If Ischarwaiting() = 1 Then A = Waitkey()...
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"...
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...
Łap. Przypomniałem sobie że miałem dwie płytki z RS485 na pokładzie i komplet kabli z innego projektu(most RS poprzez ETHERNET). W każdym miejscu gdzie podłączam RS`a mam zawsze dwa gniazda więc mogę je łączyć albo podglądać terminalem. W kodach Slave ustawiasz adres stałą My_ID. Z racji tego, że na szybko, miałem tylko dwa to testowałem adresy 3 i...
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...
witam mam zrobioną obsługę wyświetlacza led na przerwaniach i problem z odbieraniem znaków przez uart mianowicie uart "gubi" znaki podczas odbioru, jeżeli wyłączę przerwania przerwania problem znika, niestety wyświetlacz muszę mieć zrobiony na przerwaniach i nie wiem jak mam się z tym problemem uporać. poniżej zamieszczam wybrane fragmenty kodu. $regfile...
Nie wszystko w tej chwili jest używane, bo to testy. Na przykład Dim Napis As String * 15 Const Koniec = &HFF itp. [syntax=vbnet]$regfile = "m8adef.dat" $crystal = 8000000 '---------------------------- $hwstack = 128 $swstack = 128 $framesize = 128 $baud = 9600 Dim Napis As String * 15 Const Koniec = &HFF '------------------- Declare Sub Oproznij_bufor...
Masz rację Moja pomyłka Chodziło mi o liczbę 12345, której nie mogę zadeklarować jako BYTE Ten przecinek dorabiam sobie później poleceniem np takim Sds1 = Format(sds1 , " 0.0") Napisałem coś takiego NADAJNIK $crystal = 8000000 $baud = 19200 Cls Cursor Off Config Serialout = Buffered , Size = 6 Enable Interrupts Enable Utxc Dim A As single Dim B(2)...
Witam serdecznie!!! Od długiego czasu walczę z Bascomem Atmega 128 i Uartem. Wysyłam komendy AT do modemu GSM i odbieram odpowiedzi. Wszystko jest ok, chodzi bez problemu tak z jakieś 2-3 (różnie to bywa) godziny a później ni z gruszki ni z pietruszki zaczynają sie śmiecie. Odpowiedzi wyświetlam na LCD. Bascom wersja 1.11.9.1 Oto część kodu odpowiedzialna...
Proszę, łap. Miałem chwilę to sprawdziłem. W nadajniku przerwa co dziesięć znaków nie jest bez powodu. Teraz nadajnik nadaje znak "U" a to znaczy &H55, ale co ciekawsze &B0101_0101 czyli na przemian jeden i zero. Może się jednak zdarzyć, że jakiegoś bitu radio nie zauważy i lepiej jest zacząć od nowa. Nadajnik miałem na Mega8, ale pewnie sobie...
Mam problem z transmisją danych. Na PC mam uruchomiony terminal (terminal v1.9b), i jak wysyłam treść z AVR do portu RS232 to terminal poprawnie odczytuje wysłaną treść. Natomiast problem tkwi w transmisji w drugą stronę. Żeby sprawdzić czy poprawnie AVR odbierze dane wysłane z RS232, napisałem tak program żeby po odebraniu treści wysłanej z terminala...
Czy ktos widzi jakis problem w ponizszym listingu?? Gdy telefon dzwoni zapala sie diodka i gasnie znaczy ze przechodzi do "Odbierzuart:" i na tym sie konczy:( $regfile = "m8def.dat" $crystal = 8000000 Baud = 19200 Dim C As String * 200 Dim Syg1 As Byte Dim Syg2 As Byte Dim B As Byte Dim A As Byte Config Serialin = Buffered , Size = 150 Enable Interrupts...
Nie miałem tego nigdy w rękach, ale sprawdź tak. Powinno działać, tylko napisane tak w 10 minut bez jakichś większych przemyśleń. [syntax=vbnet]$regfile = "m32def.dat" $crystal = 8000000 $hwstack = 64 $swstack = 32 $framesize = 128 $baud = 9600 Config Serialin0 = Buffered , Size = 30 Dim Buff(24) As Byte , Wart As Byte , Postep As Byte Dim Dlugosc_ramki...
Problem polega na tym, że gdy mam ustawione 9600, data bits 8, stop bits 1, parity none jest wszystko w porządku.Ale jeśli ustawie np 4800 lub coś innego np data bits 7 już nie działa i nie wiem co jest grane. Jak używałem komendy input() wszystko pięknie działało a z inkey() nie chce. $regfile = "m162def.dat" 'Kwarc 14,7456MHz $crystal =...
Czekam na przesyłkę bo zamówiłem tego nieszczęsnego MAX232 o który takie nerwy :D. a w między czasie szperałem w necie i posklejałem w ten sposób: [syntax=basic4gl]$regfile = "attiny2313.dat" $crystal = 12000000 $baud = 19200 Config Portb.2 = Output Config Portb.3 = Output Config Portb.4 = Output Config Serialin = Buffered , Size = 30 Set Portd.3 Set...
Jak na razie to połączenie mam realizowane przez diodę zenera. Wiem że to nie eleganckie ale zdaje egzamin. Narazie jestem w fazie testów. Posprawdzam na Twoim kodzie i zobaczę czy nie będzie przekłamań. Jak coś będzie wiadomo to napiszę. Dzięki za szybką odpowiedź. $regfile = "m8def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera...
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ę...
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ć...
Witam Problem następujący: Dwa procki komunikują sie radiowo na modułach telecontrolli. Jeden procek nadaje string, drugi odbiera. Ogólnie all jest ok, ale gdy dopisze opcje wyświetlania czasu na LCD to sekundy idą tylko wtedy kiedy coś nadaje nadajnik, a jesli go wylacze sekundy sie zatrzymują. Oto kod: Odbiornik $regfile = "m16def.dat" $crystal...
Witam mam taki problem, przeszukalem troche archiwum po czym sklecilem sobie taki program: $crystal = 11059200 $baud = 9600 Config Serialin = Buffered , Size = 100 Config Lcd = 16 * 2 Dim Flaga As Byte Dim Napis As String * 20 Dim I As Byte , X As Byte Set Ddrd.1 '= 1 Enable Interrupts 'Echo Off Do Cls Print "AT+CSQ" I = 0 Flaga = 0 'Flaga = Ischarwaiting()...
Próbuję skomunikować atmege z urządzeniem typu NAS po obu stronach jest oprogramowanie które przy prawidłowym działaniu potrafi ustawic rtc po stronie mikrokontrolera i w druga stronę wysyłac date czas i info o jakims zdarzeniu. Mam tylko jeden problem otóż po wysłaniu z mikrokontrolera np. "uptime" zamiast odpowiedzi nasa dostaje z powrotem "uptime"...
Witam Napisałem program, który ma za zadanie odczytać właściwie SMS-a wysłanego do modułu [syntax=vbnet] $regfile = "m8515.dat" $crystal = 7372800 $baud = 9600 $hwstack = 64 $swstack = 64 $framesize = 64 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 , Db7 = Portb.0 , E = Portb.4 , Rs = Portb.6 Config Serialin...
Witam. Podłączyłem mikrokontroler ATMEGA16 pod złącze RS232 w manipulatorze INT-KLCD od centrali alarmowej SATEL INTEGRA. Na złączu tym cały czas wysyłane są dane o aktualnym stanie systemu i zdarzeniach. Podglądając równolegle na wirtualnym porcie COM-ETHERNET co na tym złączu jest wysyłane otrzymuje takie dane jak na poniższym screenie: http://obrazki.elektroda.pl/1772576300_1...
Podejrzewałem to jednak nie umiem zrobić detekcji 0 a mam jeszcze 4k wolne Coś bym zaadaptował z tego jednak nie rozumiem w pełni tego kodu a jak czegoś nie rozumiem nie stosuje Gdyby ktoś wypowiedzieć się mógł tak dla głąba jak to działa. Kod z tego forum nie mój. http://obrazki.elektroda.pl/3285358500_1... Pomoże mi jakaś dobra osoba , mogę...
Odbiornik RC5 działa. 1 na pilocie wyłącza diodę, 2 włącza $regfile = "attiny2313.dat" $crystal = 1000000 Config Rc5 = Pind.2 Config Pind.2 = Input Config Portb = Output Dim Address As Byte , Command As Byte Enable Interrupts Do Getrc5(address , Command) If Address = 0 Then Command = Command And &B01111111 Select Case Command Case...
Już prawie opanowałem ten odczyt. Nie jest to wina zbyt długiego zapisu na kartę. Zrobiłem to tak że stringa "dane" dzielę za pomocą funkcji split a później jeśli pierwszy człon stringa dane jest "$GPGGA" to następuje zapis na kartę. I taki sposób działa ale tylko raz. Raz zapisze poprawnie ramkę i tyle nie ma więcej zapisów. Oto nowy kod: [syntax=basic4gl]...
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...
Witam, Wiem że były podobne posty na ten temat ale nie wiem co z moim programem jest nie tak. Gdy dzwonię na telefon podłączony do uC nic się nie dzieje. Komunikacja z telefonem działa bo wysyłałem przez uC różne komendy AT i odpowiadał. $regfile = "m8def.dat" $crystal = 8000000 $baud = 19200 Config Serialin = Buffered , Size = 100 Config...
ok, spróbuję z tym odpinaniem choć i to wydaje mi się dziwne - dziś sprawdziłem na m32 i to samo, na m128 zmieniłem kwarc na 7372800 aby był lepiej podzielny, to samo. Znalazłem jeden brak: Enable Interrupts - dlatego bufor nie działał, teraz działa ale ale, po pierwsze komendzie AT+CMGF=1 na LCDku jest: >kwadracik, linia 3: >.OK kwadracik, linia 4:...
Jak bym chciał żeby mi ktoś pomógł to włożyłbym minimum wysiłku by przygotować kod na który można spojrzeć bądź skompilować. Nie musi być cały, ale taki który daje możliwość powtórzenia występującego problemu. Chcesz odbierać dane z UART a masz w pętli Waitms. Myślisz że te dane na Ciebie poczekają? Przy tak znikomej ilości informacji jakie zapodałeś...
Doszedłem do tego jak zamienić wartość np: 123 dla danych PWM ale mam problem przy kompilacji error 260. [syntax=basic4gl]$regfile = "attiny2313.dat" $crystal = 12000000 $baud = 19200 Config Serialin = Buffered , Size = 20 Config Portb.2 = Output Config Portb.3 = Output Config Portb.4 = Output Set Portd.3 Set Portd.4 Set Tccr0a.0 Set Tccr0a.7 Set Tccr1a.0...
Chyba czegoś nie rozumiem, a więc poprawiłem program według wcześniejszych zaleceń. Dzwonię na komórkę podłączoną do atmegi z telefonu o numerze 509509509. Na ekranie lcd podłączonym pod atmegę wyświetla się "509509509" a procedura select case przechodzi do pod programu "nie_dziala". Pomóżcie bo już nie mam pomysłu. Czemu wyświetla na LCD dobrze, a...
inkey ischarwaiting systick interrupts system interrupts
junkers analiza spaliny elektrozawór ekspresu delonghi kupić mikroprzełącznik
zmywarka siemens suszenie calormatic ustawienia
Pioneer MOSFET 50W x4 – brak dźwięku z przednich głośników, ustawienia fader, tryb Network Lark FreeBird 50.4 BT – uruchomienie Windows CE, zmiana ścieżki na explorer.exe, odblokowanie nawigacji