Jeślii masz wolny pin to możesz sobie na nim otworzyć port COM. Taki programik wciągający cztery bajty po serialu zajmuje w Bascom 288 B a to pewnie dlatego że jeszcze musiał się zająć stosem i tablica przerwań co Ty juz pewnie tez masz zrobione więc to by odpadło. Zapisujesz to sobie do Eeproma przy starcie i gotowe. [syntax=vbnet]$regfile = "attiny13A.dat"...
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...
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...
Mając trochę wolnego czasu napisałem parę funkcji do obsługi układu PCF8583. Funkcja która ustawia godzinę i datę zapisuje też dane potrzebne do obliczenia pełnego roku, dzień tygodnia jest obliczany automatycznie na podstawie daty. Funkcje Pcf8583_write i Pcf8583_read można wykorzystać do zapisywania/odczytywania danych z wolnej pamięci ram. Dostępne...
http://obrazki.elektroda.pl/3089511800_1... Witam, dziś prezentuje swój bezprzewodowy termometr pracujący na częstotliwości 433 MHz. Urządzenie składa się z nadajnika i odbiornika. Nadajnik odczytuje temperaturę pieca C.O. i wysyła ją do odbiornika. W odbiorniku mamy możliwość ustalenia górnego i dolnego progu załączenia alarmu, który...
Chodzi o te zaznaczone ustawienia z obrazka. Są wstawiane jako domyślne jeśli się ich nie wpisze do kodu. Chodzi o to, że kiedy Bascom skacze do jakiegoś Sub to odkłada na stos te wcześniej omawiane dwa Bajty. W takim Sub już może tego nie widać, ale tez skacze np. do procedury odczytu czujników 1Wire. To już np. cztery bajty a w tym momencie nadchodzi...
Proszę o pomoc w rozwiązaniu problemu z połączeniem młodszych bajtów ze starszymi w bascomie. Mam napisaną procedure zapisu do eeproma liczby long wszystko ok lecz z odczytem jest gorzej: Dim Dana As Long Dim Dana1 As Long Dim Slowo_high As Word Dim Slowo_low As Word Dim Bajt1_high As Byte Dim Bajt2_low As Byte Dim Bajt3_high As Byte Dim Bajt4_low As...
Problem rozwiązałem w 50%. To znaczy dzięki podpowiedzią kolegów co mi brakowało żeby działał termometr, który pracuje bardzo dobrze ,dopisałem do programu woltomierz , który pracuje dobrze. Do zamknięcia tematu pozostał jeszcze amperomierz , który mierzy spadek napięcia na boczniku sygnał wzmocniłem wzmacniaczem LM358.Nie wiem jak przeliczyć spadek...
Jeżeli piszesz w bascome to proponuje funkcje: INPUT $baud = 1200 $crystal = 12000000 Dim V As Byte start: input V p0=V goto start Zasada jest taka program czeka na w lini "input V" na odebranie czegos przez port RS jesli mikrokontroler odbierze to przechodzi do nastepnej lini i ustawia port p0 w wartosc odczytana z rsa nastepnie powraca spowortem...
Witam. mam problem z nastawą temperatury, a mianowicie zadeklarowałem drugą zmienną od nastaw, która się wyświetla na LCD, lecz program nie chce się skompilować. [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5...
Witam, posiadam dwie atmegi8 sprzęgnięte ze sobą komunikacja za pomocą UART. Jedna atmega będzie zbierać informację z czujników i poprzez UART przesyłać bajty danych do drugiej atmegi której zadaniem jest wyświetlanie tych wartości na wyświetlaczu graficznym. Moja ramka danych składa się z dwóch bajtów, pierwszy z nich jest to bajt "adresowy" który...
Witam Chce sobie zbudować perkusje na midi w necie znalazłem specyfikacje i wysyła się 3 bajty 1 - sterujący 2,3-dane. Naprzykład kiedy wysyłam nutke na kanale 1 to polecenie wygląda tak 10010000 ; 00000001 ; 01000000 pierwszy bait Note on drugi nutka a trzeci u mnie nie używany dyhnamika klawisza i robie to tak Config Portb = Input Dim A As Integer...
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...
Witam. Tak jak w temacie. $regfile = "m8def.dat" ' $crystal = 8000000 Config Pinb.1 = Output Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portd.4 , E = Portd.3 , Rs = Portd.2 'konfiguracja linii Config Timer0 = Timer , Prescale = 1024 Enable Interrupts : Enable Timer0 On Timer0 Co4ms Config...
Do kolegi "KUNIARZ" Właśnie wgrałem sobie Twój programik i u mnie DS18B20 śmiga (mam 6 szt. - 5 nowych i jeden z przed 2-3 lat) (chociaż nie wiem dlaczego w Twoim programiku na wyświetlaczu cały czas mi text się przesuwa) Ale nie do tego zmierzam. A mianowicie wgrałem poniższy programik (taki mały termostacik) No i mam problem z czujnikami !!! ponieważ...
Jestem ponownie. Projeckt mam prawie ukonczony i mam jeszcze pytanka. To jest kod do termomertu na DS18B20 i zegarka. I teraz mam taki problem. Odczyt temp jest bardzo niestabilny. Cyfry po przecinku skacza tak o 2-3 jednostki. Raz jest 22.4 za sek 22.7 a za nastepna 22. 5 itp itp. Mam inny kod z forum ktory nie obsluguje temp ujemnych dla proby i tam...
W Bascom'ie jest biblioteka mmc.lib i nigdzie nie jest opisana jej konfiguracja jak i jej sposób użycia. Czy wiecie jak wysyłać i odbierać bajty przy użyciu tej biblioteki? Dodano po 3 Dokopałem się do czegoś takiego i co dalej....... $regfile = "m128def.dat" $crystal = 14745600 $baud = 115200 $hwstack = 150 'wartosc stosu $swstack = 150 'wartosc...
Witam. Jestem w fazie pisania programu z zegarem DS3231 i atmegą16. Mam podłączone wejście INT0 atmegi z wyjściem INT/SQW DS-a. Podciągnięte rezystorem 10k do 5V. I nie wiem co robię źle ale procesor nie reaguje na sygnał przerwania z DS-a. Powiem szczerze że nigdy nie korzystałem z przerwań zewnętrznych ale znów ustawienie tego nie jest skomplikowane...
Witam W ramach dalszego eksperymentowania z AVR i Bascom popełniłem połączenie odczytu z DS18B20 z sterowaniem wyjściem uC ( przez tranzystor FET ) + dodatkową atrakcję - buzer, który sygnalizuje wł/wył tranzystora/wyjścia. Chciałem dodać możliwość zmiany temp max i min, przez proste menu. Menu zrobiłem w oparciu inny mój kod obsługujący ustawianie...
Witam. Jako początkujący, a już trochę wiekowy (46)proszę o wyrozumiałość. Napisałem w Bascomie takie coś , zrobiłem układ i nic. Nie działa. W którym miejscu jest błąd ? Na schemacie nie ma tranzystorów PNP w anodach, rezystorów w segmentach - celowo , bo to oczywiste. No więc tak na początek staraj się opanowac ten projekt "segmentami"; Najpierw,...
Jak sprawdzić czujniki ds18b20 czy prawidłowo wskazują temperaturę bo słyszałem że są niektóre fabryczne ,,felerne,, .Umnie wszystkie 5 zawyżają o 2stC , a może jest błąd w kodzie. dziękuje $regfile = "M16def.dat" $crystal = 8000000 '****** KONFIGURACJA PORTÓW ********* Config Porta = Output 'wysw ABCDEFG Config Portc = Output 'zasilanie W4,W3, W2,...
Witam Inkey odbiera tylko jeden znak (bajt) przesłanej informacji. Użyj lepiej funkcji – input /zapoznaj się z pomocą Bascoma. Do przesyłania informacji na duże odległości używaj jak najmniejszej szybkości.
Można trochę bajtów zaoszczędzić :) Dodaj bibliotekę obsługującą hardwarowe TWI: [syntax=basic4gl]$lib "I2C_TWI.LBX" ...... I2cinit Config Twi = 100000[/syntax] Odczyt danych z EEPROMU, zamiast: [syntax=basic4gl] Dim Mz1 As Byte Dim Gz1 As Byte Dim Mz2 As Byte Dim Gz2 As Byte Dim Mz3 As Byte Dim Gz3 As Byte Dim Mw1 As Byte Dim Gw1 As Byte Dim Mw2 As...
Cały problem jest w tym żeby te dwie ATmegi się zsynchronizowały. Przerwanie od SPI występuje po zakończenia transmisji pierwszego bajtu. Zanim nastąpi obsługa przerwania to pierwszy bajt zostanie utracony. Nie mamy też gwarancji że dwie Atmegi "wystrzeliły" :) równocześnie i Slave nie czyta np. 4 bajtu nadanego przez Mastera. Jeżeli to by była np....
Jeśli tylko jeden bajt, to sprawdzaj czy coś do UDRa przyszło:)
01, można też wysłać 1A, 2F, a maksymalnie FF, czyli całą "paletę" liczb HEX. Popołudniu sprawdzę co napisałeś, może się udać okiełznać Bascoma. PS. Input też wymaga znaku <CR> więc odpada, jedynie inputbin, czyta znaki bez konieczności wysyłania <CR>.
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.
Witam A u kolegi bascom nie wywala błędów? Port składa się z 8 pinów czyli 8bitów albo bajtu.(portd- portd.0;portd.1;.....do portd.7 czyli 8pinów Więc taki zapis portd.4=255 jest błędny bo jednemu bitowi nie możemy nadać wartości 255 możemy albo 0 albo 1.(a prawidłowo portd.4=1 albo0 ) Taki zapis jest poprawny portc=255 co jest równoważne z 11111111...
Czyli jak rozumiem, wprost czytać z tablicy bufora ? Gdzie znajduje się ten bufor z którego odczytuje INPUT ? Jak wtedy w Bascomie z 4 bajtowej tablicy wyjąć pierwsze 2 bajty, które potem porównuje Select Case ?
Po co się męczyć to tylko kilka linijek w bascomie: Kod archaiczny dla słabeuszy: $regfile = "m128def.dat" $crystal = 8000000 Config Spi = Soft , Din = Pinf.2 , Dout = Portf.0 , Ss = None , Clock = Portf.6 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Porta.3 , Rs = Porta.2 Config Pinf.6...
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]
Ł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....
Tak, jak już pisałem, nie tędy droga. Trzeba zrozumieć, ze Menu czyli interfejs programu z człowiekiem powinno być tylko jego nakładką graficzną. Nie może być tak, że kiedy jesteś w Menu to program zaniedbuje cały system, na przykład nie pilnuje zadanych temperatur. Pomyśl co by było gdyby termostat sterował grzałką w akwarium a Ty sobie radośnie wszedłeś...
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ż...
Czy prawdą jest, że domyślnie sprzętowy RS232 - UART ma bufor na 1 znak, i używając w Bascomie polecenia Input (odczytując ten bajt), jest on usuwany z bufora i znowu bufor jest pusty? Bo jakoś nie mogę znaleźć stosownej informacji w internecie. Dziękuję za odp.
Nie :D Chodzi mi o to że nie zapisuj tego textowo. Bo na razie zapisujesz textowo, i olaboga, dwójkowo! Czyli jeden pixel zajmuje Ci jeden znak (0 albo 1). A jak zapiszesz "surowo" to w jednym bajcie będziesz miał 8 pixeli. Np. takie "A" to jest 65d, czyli 41hi czyli 01000001. Czyli jedna litera "A" zapisze Ci to samo co aż 8 znaków "01000001". Tylko...
Sprawa pierwsza czyli instrukcje konfiguracyjne w kodzie. Chodzi o to, że jeśli nie wstawisz takiej instrukcji a użyjesz w kodzie chociażby jednej instrukcji PRINT, INPUT albo innej związanej z UART to cudów nie ma, trzeba skonfigurować UART i kompilator musi przeliczyć prędkość dla UBRR i ustawić bity konfiguracyjne. Dane musi skądś wziąć więc weźmie...
Już wszystko rozkminiłem i teraz kompiluje i programuje bezpośrednio z WinAVR. wszystko co mi wcześniej nie wychodziło było spowodowane złą konfiguracją pliku makefile. Teraz mam pytanko czy taki fragment raportu z kompilacji i wgrania programu do procesora mówi mi ile program zajmuje w pamięci procesora? dla przykładu podaje fragment raportu: avrdude:...
Można wyświetlać temperaturę w podmenu "wybór_Ds" ale trzeba zmienić cały program. Chyba nie jest tak trudno zapisać sobie cztery ID czujników i wiedzieć później który gdzie przypisać. Najlepiej osobno podłączać każdy czujnik i na naklejce na kablu przy czujniki zapisać jego ID. Wiedząc gdzie jakie jest ID czujnika można już mu w podmenu przypisać odpowiednią...
Witam Kupiłem robota klasy mini sumo. Zawiera on 2 mikrokontrolery Atmega8 służącą do obsługi dalmierzy, oraz Atmega32, która jest główną jednostką. Atmegi są połączone ze sobą przez SPI. Atmega 8 jest już zaprogramowana i wysyła przez SPI 2 bajty ( 1 dalmierz lewy, 2 dalmierz prawy), jeżeli obiekt jest w odległości 10cm to wysyła bajt o wartości 10....
Tak się dzieje jak stosujesz instrukcje Gosub, program idzie do procedury a tam znowu stosujesz Gosub i w tej na koncu nieszczęsne Retrurn. Program idzie w "krzaki" bo przepełniasz stosy i nadpisujesz w pamięci Ram zmienne. Poczytaj o procedurach i funkcjach w pomocy Bascoma, użyj Declare Sub a potem Sub: i END SUB. Stosuj też deklaracje ramki i stosu...
Przetestuj to: [syntax=basic4gl] Config Portb.0 = Input 'konfiguracja portud jako wyjścia Config Portb.4 = Output 'linia danych do 74hc164 Config Portb.5 = Output 'clk do 74hc164 Config Spi = Soft , Din = Portb.0 , Dout = Portb.4 , Ss = None , Clock = Portb.5 , Mode = 0 Spiinit Dim Bajt As Byte Do Bajt = 1 Gosub Wyslij Bajt = 2 Gosub Wyslij Bajt = 3...
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. Częściowo już wiem, jak to obsłużyć ale pozostaje kilka pytań. Muszę monitorować przesyłane informacje a dane dla mojego sterownika to 3 bajty: Bx cc vv - zmiana wartości kontrolera cc (0-127) w kanale x (0-15) na wartość vv (0-127). Problemy pozostają takie: - czy w Bascomie ustawię $Baud 31250 przy kwarcu 11.059MHz? - program nie może stać...
Cytuję: "Ustawia się to w zależności od skomplikowania programu. (...)" O co tutaj chodzi i o jakie wartości tutaj chodzi? Dokładnie chodzi o ilość bajtów jaką początkowo zajmie każdy ze stosów. Stos jest elementem rozrastającym i kurczącym się dynamicznie. Może dojść do sytuacji gdzie jeden zajdzie na drugi - stack overleap - i kłopot gotowy. Dlatego...
Nie umiem sobie przypomnieć teraz czy jest jakaś gotowa instrukcja, ale mogę Ci pokazać jak można sobie radzić pisząc własne funkcje. To nieskomplikowane. Budując funkcję w nawiasach określasz co będzie danymi wejściowymi a poza nawiasem co funkcja ma zwrócić. Czyli napisałem, że funkcja dostaje wartość bajtu a zwrócić powinna też bajt. Change() kiedy...
zamieszczam listing ktory przeklepalem zgazety Nowy elektronik: $regfile = "m8def.dat" $crystal = 800000 Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.3 , Db6 = Portd.2 , Db7 = Portd.1 , E = Portd.5 , Rs = Portd.7 Config Lcd = 16 * 2 Config Adc = Single , Prescaler = Auto , Reference = Off Ddrb = &B00000000 Ddrc = &B00000000 Ddrd = &B10111110...
Znalazłem w pliku pomocy polecenie input które odbiera dane. Tylko tam jest przykład jak odebrać bajt danych z całego portu np. D a jak zrobić aby odebrał tylko z jednej końcówki np. z portd.0? Piszą tam coś o adresie z którego odbierane są dane ale nie wiem jaki adres wpisać aby tak odbierać dane z pilota.
a mi sie udalo oszukać :) ale działa to tylko atmega - atmega z GPS tego numeru sie nie wykręci a szkoda ;) Open "comc.5:4800,8,n,1" For Input As #1 Open "comc.4:4800,8,n,1" For Output As #2 Do K6 = Waitkey(#1) ' odczyt bajtu Print #2 , "" ' reset If K6 = 13 Then Exit Do K3 = K3 + Chr(k6) Lcd K6...
Chcesz odbierać bit? czy bajt? Polecam zajrzeć do helpa bascomowego i zapoznać się z poleceniami Input oraz Config Input - a także Inkey , Ischarwaiting itp. Poza tym jeśli już zaczynasz z RS232 to daj sobie na początek spokój z pozostałą częścią kodu np od 1wire i poćwicz proste przykłady z helpa chociażby odnośnie Input itp - to ci dużo wyjaśni (a...
bascom input input bascom bascom bajty mniej
onkyo cykanie połączenie szeregowe głośników serwis zawiercie
ekspres instrukcja serwisowa agregat prądotworczy
Komatsu PW160 – brak jazdy, diagnostyka, kody E20/E247, zawór FNR, hydraulika Regulacja zaworów w Kawasaki Brute Force 750