mnie akurat nie chodziło o takty na konwersje potrzebne a raczej o niepotrzebnie zajmowane bajty Jak wiadomo bascom jest pamięciożerny a program pewnie ma coś więcej do zrobienia niż tylko odbiór jednej liczby Poza tym po poleceniu inputbin jakas_zmienna jest odbierane tylko tyle bajtów ile ta zmienna zajmuje Ponieważ nie trzeba robić dodatkowych zabiegów...
Te Waity do diody Led żeby patrzeć czy program się zawiesił nie są szczęśliwym rozwiązaniem dla programowego portu :D Zobacz tak. Dioda błyśnie jak coś odbierze i oczywiście wyśle Ci to drugim portem software`owym. [syntax=vbnet]$regfile = "m328pdef.dat" $crystal = 8000000 $hwstack = 32 ' default use 32 for the hardware stack $swstack = 10 ' default...
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...
Dosyć odważnie sobie poczynasz na mikrokontrolerze mającym 2kB Flash i 128B SRAM :D ale do odważnych świat należy. Odchudziłem Ci trochę kodzik. Obsługa przerwania timera została stuningowana moim programem NoSave Tool. Teraz mikrokontroler nie odkłada na stos większości rejestrów a tylko te potrzebne - w tym przypadku tylko jeden :D Przekłada się to...
HELP powie CI wszystko... PRINT to PRINT Do odbierania masz INPUT plus jego odmiany INPUTBIN i INPUTHEX
Witam Wolę od razu napisać w dziale dla początkujących bo znając życie i tak mnie tutaj przeniosą ;) Do rzeczy Atmega skonfigurowana do odbioru pakietów po UART na pinie odpowiedzialnym za RX (asynchroniczna transmisja) Korzystam z punkcji INPUTBIN. Pytanie brzmi czy istnieje szansa aby pin TX użyć jako wyjściowy? ponieważ BASCOM gdy użyję funkcji INPUTBIN...
Printbin Inputbin.
Czemu nie zrobisz tego w ten sposób ? Dim Adres As Byte Dim Dana As Byte [...] Inputbin Adres Inputbin Dana I2csend Adres , Dana [...] Pozdrawiam...
Mam taki problem a mianowicie jak wykryć że wystąpił $timeout w Bascom'ie? dim B(100) as Byte do $timeout = 30000 Inputbin B(1) , 100 'Ideowo pokazuje co chcę uzyskać If $timeout = True Then Print "Wystapil timeout" Else Print "Transmisja OK" End If loop
Tak e.7 nie dodałem do listingu na forum ale mam skonfigurowane to akurat to szczegół nie istotny. Kombinowałem we wszystkie strony i INPUTBIN x, b - WSTRZYMUJE TIMER0 !!!!! Jak ktoś podważa moją teze to proszę dowody nie takie że tak ma być i już tylko dajcie kod taki co zadziała a ja już wiem że nie da się tego zrobić. Problem jest taki patrząc na...
Witam Potrzebuję odebrać dane w formacie HEX przez uart 64 bajty z czego 10 pierwszych bajtów chciałbym sie pozbyć i 54 bajty przesłać dalej uartem programowym. Jaką użyć instrukcje INPUTHEX czy INPUTBIN i do jakiego typu zapisać te zmienne. pozdrawiam
W nadajniku print zmienna umieściłem w przerwaniu co 1sekundę. W terminalu przykładowo wygląda to tak; 223 223 223 223 223 224 itd Jak wcześniej używałem printbin - inputbin to działało, czasem tylko gubiło dane. Dlatego próbuję doprowadzić transmisję do ładu.
Printbin i Zmienne A = &HE0 B = &H0C załatwiły sprawe :) Teraz kolejny problem otrzymuje z wyświetlacza w Hexie "00" i po otrzymaniu chcę zmienić stan portu próbuję tak> [syntax=vbnet] Dim Of As Byte Inputbin Of If Of = 00 Then Porta.2 = 1[/syntax]
Wysyłasz poleceniem: Printbin Bascom automatycznie wyśle 4 bajty z których składa się zmienna Long. A odebrać może poleceniem Inputbin Ale ta metoda nie jest zalecana bo program zatrzymuje i czeka do momentu aż odbierze 4bajty (jeśli odbieramy zmienna Long) Lepiej odbierać dane w przerwaniu i zapisywać je w tablicy a następnie użyć polecenia memcopy....
Spróbuj tak: $crystal = 7372800 $regfile = "m16def.dat" $baud = 115200 Dim D As Word Dim Ee_d As Eram Word Do 'Wybierz odpowiedni sposób pobierania danych z RS 'w zależności czy wysyłasz dane bez końca lub z końcem linii (Inputbin lub Input) Inputbin D Input "Bla bla:" , D Ee_d = D Waitms 20 Loop End
Jest różnica bo używasz InputBin w przerwaniu. Ono odbiera 4 bajty ale skoro są włączone przerwania to flaga od odebranego znaku jest ustawiana. Ręcznie skasować flagę to można chyba tylko bezpośrednim wpisem do rejestru. Tutaj BASCOM nie pomoże. Musowo zajrzeć do datasheeta.
Skoro kolega nie pokazuje jak tworzy na bieżąco ten program to skąd mamy wiedzieć, czy robisz to dobrze? To nie forum jasnowidzów. Zdawkowe informacje, że zastosowałeś się do propozycji nie dokumentując tego nie pozwala nam Tobie skutecznie pomóc. To samo dotyczy dyrdymałów, że to któryś program i akurat Tobie on nie działa. W ten sposób do niczego...
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...
Ramkę złożoną z 32 bajtów odbieram w poniższy sposób: Kod: If Ischarwaiting() = 1 Then Inputbin Mess_1 , Mess_2 , Mess_3 , Mess_4 , M0_1 , M0_2 , M0_3 , M0_4 , M1_1 , M1_2 , M1_3 , M1_4 , M2_1 , M2_2 , M2_3 , M2_4 , M3_1 , M3_2 , M3_3 , M3_4 , M4_1 , M4_2 , M4_3 , M4_4 , Chk_1 , Chk_2 , Chk_3 , Suma_1 , Suma_2 , Koniec_1 , Koniec_2 , Koniec_3 , 32 End...
Witam wszystkich. Mam następujące pytanie: Połączyłem dwa uP 89C2051 i 89C4051 następująco TxD jednego z RxD drugiego. Właczam Bascoma 8051 2.0.11.0 jednego programuje żeby wysyłał drugiego odbierał. Używałem różnych poleceń print , printbin, printhex; a do odbioru inkey, waitkey,inputbin. Żadnych efektów. Owszem kiedy wysyłam np.100 na LCD wyświelją...
No i paczka doszła. Szybko zrobione na stykówce, i wyświetlacz działa, ale coś jest nie tak, oraz nie widzę komunikacji. Nadajnik: [syntax=Bascom] $regfile = "m8def.dat" $crystal = 1000000 $hwstack = 40 $swstack = 16 $framesize = 32 Config Portb.1 = Input Portb.1 = 0 Config Portd.3 = Output Config Pind.1 = Output 'PIN TXD Set Portd 'PIN TXD Enable Interrupts...
Witam Zawsze bawiłem się z atmega32 ale od do projektu potrzeba mi 6 kanałów PWM 16bit (sterowanie 2 serwa i 4 regulatory z rewersem). Zastosowałem atmega128 T1 i T3 . Wszystko było było by OK ale na kanale OC1C jest brak sygnału , zapewne banalne rozwiązanie ale jakoś nie mogę zatrybić nadajnika: [syntax=vbnet]$regfile = "m32def.dat" $crystal = 16000000...
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...
Nareszcie twórcza odpowieć. Dięki wielkie myślę że coś z tym zrobię chociarz nie ukrywam że wolałbym ręczny ruch potencjometru jako priorytet lecz ten program a właściwie atmega musi zmieścić jeszcze więcej funkcji. A jak zrobić żeby flaga była ustawiana dopiero po odebraniu komunikatu? Dodano po 2 Przepraszam za odgrzewanie tematu, napisałem program...
Wysyłanie i odbieranie RC5 jest w Bascom kodowane automatycznie. Manchesterem swoje dane musisz więc zakodować sam. Poniżej masz wersję którą mam jeszcze w planie dopracować więc nie myśl o niej jak o finalnej. na pewno można coś poprawić. Po skopiowaniu ten kod powinien znajdować się w tym samym folderze co Twój kod. [syntax=basic4gl]$nocompile ' send_by_air...
No może w tym przypadku jakoś sobie poradzę. sei Enable Urxc On Urxc Odb_znaku Do Kod_kl = Getatkbd() 'odczytanie danej z klawiatury If Kod_kl <> 0 Then Gosub Klawiatura Printbin 144; '144 End If Toggle Portb.2 Loop End Klawiatura: If Kod_kl > 0 Then 'jeśli odczytany kod ma wartość większa niż 0, to If Kod_kl > 31 And Kod_kl...
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......
Witam, W żadnym temacie na elektrodzie z komunikacją bezprzewodowa nikt nigdy nie udostępnia kodów (nie wiem dlaczego). Męczę się od kilku dni z przesłaniem ramki. Mam moduły 433 MHz, te najprostsze, ale na razie próbuje to zrobić po kablu. Dane są kodowane w manchester, funkcja kodująca działa poprawnie, ale nie mogę się poprawnie zsynchronizować....
Witam, na wstępie uprzedzę, że jestem początkującym programistą bascom. Tworzę projekt, który jest połączeniem dwóch tematów tj. http://www.elektroda.pl/rtvforum/topic22... oraz ]http://www.mp3car.com/forum/mp3car-tech... . potrafię już odczytać dane z szyny i-bus w bmw i...
Witam Tak jak w temacie mam napisałem program w bascomie który ma za zadanie zapalać cztery diody led po odebraniu po RS232 cyfr od 1-4 i chodzi to bez problemu ,ale teraz gdy uczę się języka C postanowiłem ten sam program przenieść na C i już nie jest tak dobrze.Objaw jest taki gdy wyśle 1-Zapalają się i gasną diody "STROBO I KULA" gdy 2-Tak sama 3-Też...
$crystal = 8000000 $baud = 9600 Config Lcd = 40 * 2 Config Serialin = Buffered , Size = 20 Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0 Enable Interrupts Dim Command As String * 1 Dim Temp1 As Integer Dim Temp2 As Integer Dim Status As Byte Dim Numer As Byte Temp1 = 12.1 Temp1 = 30.1...
For Ax = 1 To Cx Inputbin A(1) , 1 Next Ax ?
A oby w bascomie nie można użyć polecenia BITWAIT?
Z Twojej poprzedniej wypowiedzi opacznie przeze mnie zrozumianej szukałem "Config Inputbin" :) a dopiero potem znalazłem ten $Timeout własnie.
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 ?
A zamiana Cls na Locate 1 , 1 ? Sprawdzałeś ? Spróbuj jeszcze wymiany (nadawanie i odbiór jako Word a nie String) za pomocą: [syntax=basic4gl]Nadajnik: Dim Wart1 As Word Printbin Wart1 Odbiornik: Dim I As Word Inputbin I Locate 1 , 1 Lcd I [/syntax]
To zamiast Inputbin użyj Inkey.
Tam nic nie ma o znakach CR/LF które to zakończą INPUT. Jeśli liczba bajtów jest stała (7 bajtów) skorzystaj z INPUTBIN.
Zobacz czy będzie działać: [syntax=basic4gl]Inputbin Ts , Tb , Tzew[/syntax]
Układ MCP2150 łączy się z uC za pomocą UARTa i kilku sygnałów pomocniczych. W BASCOM'ie wystarczy Printbin i Inputbin i masz całą transmisję.
Ja robiłem podobnie do twojego tyle że zamiast "waitkey" używałem "inkey" w przerwaniu . Odbior: B = Ischarwaiting() If B = 1 Then C = Inkey() If C = "Q" Then Inputbin Aa(1) , Aa(2) , Aa(3) , Aa(4) , Aa(5) , Aa(6) End If End If Return Czyli Q robi u mnie za bajt startu a resztę danych przypisuję zmiennym . W programie głównym obrabiam te zmienne. ps:...
Shift jest od przesuwania bitów. Ty musisz przesuwać całe bajty w tablicy Buffer_in. Użyj sobie mojej metody odbierania: [syntax=vbnet]Inputbin Dana Buffer_in(in_pos) = Dana Incr In_pos If In_pos = 9 Then 'Jak zmieści się co najmniej jedna cala ramka danych If Buffer_in(1) = &H01 Then 'To sprawdzamy czy jest prawidłowo rozpoczęta If Buffer_in(2) = &H10...
Dareks, dziękuje serdecznie. Printbin i Inputbin rozwiązał problem. Pozdrawiam
SERIN i SEROUT to nie jest do RS232. Do tego jest Print/Printbin i Input/Inputbin. Jest jeszcze Inkey.
Za 3-cim razem zrozumiałem. Tym konwerterem u mnie będzie MAX232 - jak zawsze :) dodatkowo będę mógł dokupić sobie konwerter USB -> RS232. A teraz studiuję helpa bascoma o URAT. EDIT: Czyli w BASCOMIE może to być polecenie INPUTBIN? np. INPUTBIN nr_led,1 INPUTBIN ledr,1 INPUTBIN ledg,1 INPUTBIN ledb,pozostale,1 ?
Bascom 51 przy instrukcjach input,inputbin itd. nie korzysta z przerwań lecz cyklicznie odczytuje rejestr SBUF .Dlatego bardzo rzadko to działa.Jeśli chcesz mieć pewny odbiór to korzystaj z przerwań. A-r.
Zrobiłem wszystko tak jak napisałeś, zadeklarowałem uC i połączyłem wszystko jak ma być i dalej nic. Zmieniałem funkcje inputbin na input i to samo.
Jak pisałem Ci wyżej Inkey nie działa na porcie wirtualnym. Przynajmniej na Atmedze8. Chyba jakiś błąd. Użyj funkcji Inputbin. Będzie hulać.
Nie stosowałem dotychczas więc nie wiem czy pomoże ale poczytaj o INPUTBIN, INPUTHEX
uC nie mają komend print i inputbin. uC nie mają, ale BASCOM i owszem. BASCOM uproszcza to wszystko do jednego "Config" i właśnie owych komend. Reszta to tylko interpretacja co się otrzymało i konfiguracja tego co chcemy odesłać.
inputbin ischarwaiting printbin inputbin inkey inputbin
zmniejszyć ładowania vestel 17ips72 ukrywanie sieci
krótkofalarstwo anteny płyta indukcyjna przestaje działać
Miganie diod 1, 3 i 5 w baterii Bosch do roweru Canon MG5750 - komunikat "drukarka zajęta"