Zainteresuj się funkcja Printbin oraz podziel dane na osobne bajty.
Witam, aby tekst nie znikal od razu wystarczy dac srednik, np. print "Seba"; Aby zmienic jasnosc podam kawalek programu: Print "Seba"; Waitms 500 Printbin &H1B ; &H4C ; 0 '25% Wait 1 Printbin &H1B ; &H4C ; &H40 '50% Wait 1 Printbin &H1B ; &H4C ; &H80 '75% Wait 1 Printbin &H1B ; &H4C ; &HC0 '100% Wait 1 Wszystko jest opisane w nocie katalogowej, instrukcja...
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...
Jeśli zdecydujesz się na Basic, co zapewne dużo ułatwi pisanie aplikacji, prosze przykład komunikacji MODBUS RTU dla Zamel EXTA FREE, do sterowania ROP. [syntax=vbnet]$regfile = "m8def.dat" $crystal = 8000000 $baud = 9600 $hwstack = 32 $swstack = 10 $framesize = 40 Config Com1 = Dummy , Synchrone = 0 , Parity = Even , Stopbits = 1 , Databits = 8 , Clockpol...
Możesz podać gdzie przeczytałeś że ta liczba po przecinku oznacza liczbę wysłanych bajtów? Help nic nie mówi na ten temat. Sprawdzałem w symulatorze że ta liczba nic nie zmienia. Jest taka informacja w helpie "When you use Printbin ar(1) , the whole array will be printed." A kto powiedział że ja wpisuje dane? Ja je wysyłam. Ale twoja tablica jest pusta....
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...
Nie słucha się Ciebie ani Atmegi ponieważ pomiędzy wysyłanymi bajtami wstawiasz<CR><LF> Bascom automatycznie dodaje Enter i znak końca linii kiedy coś Printujesz do portu. Jeśli tego nie chcesz to musisz postawić średnik za wysyłanym wyrażeniem Innymi słowy to teraz wygląda dla modułu tak: https://filmy.elektroda.pl/6_1489582819....
Trzeba by poczytać troszku o RS485. Jeśli chodzi o sprzęt, to w zasadzie masz dwie główne możliwości. Pierwsza to półdupleks, czyli transmisja naprzemienna po tej samej parze przewodów, druga dupleks w układzie czteroprzewodowym (para przewodów od mastera, para do mastera). Dodatkowo korzystnie z punktu widzenia linii może być pociągnięcie między układami...
Tak trudno sprawdzić w manualu wciskając w Bascom F1? Sprawdziłbyś hasło "Printbin" i dowiedział się że domyślnie wysyłana jest cała tablica a kiedy nie chcesz to po średniku wpisujesz ile bajtów wysłać [syntax=vbnet]Printbin ar(1) ; 3 ' will send 3 bytes from array ar() starting at index element 1[/syntax]
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...
Printbin Do odbieranie zastosuj przerwanie od uarta.
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....
tak faktycznie to była pomyłka ale gadałem z kolegą darkomen na gg i okazało się ze miał kwarc 11,xxxMhz i tylko 9600b i bascom nadpisywał dane przed zakonczaniem wysyłania okazało się że PRINTBIN dane(1),1500 działa poprawnie
Firmware: Inadc1 = Getadc(3) Ch1 = Inadc1 / 4.0117647058823529411764705882353 Ch1disp = Ch1 Printbin Ch1disp Waitus 200 Po co jest to "Waitus 200"? Byłoby 20 kSps a nie 4. To dzielenie też chyba nie jest mocno potrzebne, wystarczyłoby /4 (mam nadzieję że bascom zrobi to efektywnie) lub coś w tym stylu.
Możesz dodać te czasy jeśli "z ręki" działa... [syntax=vbnet]Dim Helpb As Byte , N As Byte Dim Mystring As String * 5 Dim Mybuff(5) As Byte At Mystring Overlay Mystring = "{013}xon{013}" For N = 1 To 5 Helpb = Mybuff(n) Printbin Helpb Waitms 500 Next [/syntax]
Witam zauważyłem dziwny objaw. Mianowicie odbieram dane przez sprzętowy uart z atmegi pochodzące z klawiatury. Klawiatura wysyła znak w momencie nacisnięcia i puszczenia przycisku. Zauważyłem że naciskając około 21 razy klawisz (wysłane 42 znaki w hexie) to resetuje mi się program i mikrokontroler... Teraz pytanie czym to jest spowodowane. Pomijam tutaj...
moze printbin ? albo print chr()
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]
Printbin Inputbin.
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.
kamyczek Czy możesz mi pomóc? Testuję teraz programik (sorki za bałagan, ale próbuję to zrozumieć) https://obrazki.elektroda.pl/6271535900_...
Proponuje spojrzeć do Helpa i wszystko stanie się jasne. Bascom bez problemów obsługuje MIDI, sprawdzone na uarcie programowym. Np: Open "comc.2:31250,8,n,1" For Output As #2 ... Printbin #2 , Zmienna_A ; Zmienna_B ; Zmienna_C; Temat zamykam
Wolę zapytać wprost, bo zacząłem się gubić. W jaki sposób zachowuje się zintegrowany z Bascom AVR program monitora transmisji UART podczas naciśnięcia klawisza ENTER? Pytam, bo chcę za pomocą uP (kodu w Bascom AVR) zrealizować w magistrali takie samo zdarzenie, jakie następuje po naciśnięciu klawisza ENTER na klawiaturze, z wbudowanego w Bascom AVR...
uruchomiłem drugi uart $baud1 = 9600 Config Com2 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 Enable Interrupts do Open "Com2:" For Binary As #1 Print #1 , "test com2" Close #1 loop jednak mam problem nie chodzi mi rozkaz printbin i nie wiem dlaczego
Podałeś 3 kody do komendy PRINT. Wpisywałem każdy z osobna, i uzyskałem: Dla pierwszego- znak liczby PI. Dla drugiego - R Dla trzeciego - liczba 2. Czy ja to źle wpisuję? nie wiem już jak mam wpisywać te znaki. Robiłem to tak: Po przyjęciu kodu $1B (ESC) nie powinien wyświetlić żadnego znaku i czekać na kolejne które oznaczają polecenie. Może Bascom...
w bascom avr jest taka procedura programowego coma np: Open "comb.0:9600,7,e,1" For Output As #1 Printbin #1 , dnane(1), 3 Close #1 comb.0 to może być dowolny pin procka który masz wolny ale sprawdź bo nie na wszystkich to będzie działać Zobacz do helpa bascoma pod 51 czy jest podobnie
Jeżeli całe C tak działą jak ta komenda printf to bascom jest ze trzy razy lepszy. I jeszcze jedno - wszyscy co używają C chwalą się że to jest lepsze od bascoma bo szybsze ale w takim razie ja się pytam jak kod który jest dłuższy może działać szybciej? Chyba się tak nie da zrobić. Proponuję sprawdzić bo może jest też funkcja typu printbin a jeżeli...
Ilosc kB nie ma znaczenia bo jest to zmienne i moze miec nawet xMB czas jest proporcjonalny do ilosci danych, lecz mam problem pomiedzy poprawna komunikacja miedzy DELPHI a BASCOM w wymianie tych danych teraz robie tak: #27 0..255 0 - nie będzie kolejnego bajta #13 1 - bedzie kolejny bajt START | DANA | BEDZIE NASTEPNA | KONIEC do if Ischarwaiting()...
Dim X As Byte Do X = Inkey() Printbin X ' gdy Printhex X - wypisuje kody ASCII naciś. klawiszy Loop End Ten programik wypisuje w polu teminala naciśnięte klawisze klawiatury PC. W polu terminala (granatowy obszar symulatora) musi migać kursor - inaczej nie działa,jak nie miga kliknij na tym obszarze lewym myszy). Cześć!
Jeśli program działał w sztywnych ramach czasowych to zmiana printbin na print jest już bardzo znaczną zmianą. Wiąże się to z wysyłaniem nie tylko tego co chcesz wysłać ale dodawaniem dodatkowych "elementów". Niestety nie mam możliwości aby w tym momencie pokazać Ci jak wygląda transmisja dla prinbin i print ale różnią się one dość znacznie ilością...
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 Próbowałem na zrobić komunikację przez UART (tak i programowy jak i sprzętowy) między mikrokontrolerami Atmega8-16PU (DIP28) i Atmega8A-AU (QFP32). Program jest wzorowany na programie z książki Pawła Borkowskiego AVR&ARM7. W książce interfejs UART jest przedstawiony na przykładzie programu który łączy ze sobą dwa mikrokontrolery. do każdego z...
Witam. Muszę przesłać 200-300B z '51 po RS do PC. Oprogramowanie napisałem w Bascom i Delphi. Użyłem komponętu ComPort. Oto fragment odpowiedzialny za przesłanie danych z procka: Do Reade Poke 34 , Wartosc Incr Adres Reade Poke 35 , Wartosc Incr Adres Printbin Rsbuf Waitms 40 If Adres = Adresrej Then Exit Do End If Loop Wszystko chodzi OK, tyle, że...
Heh :-) Siedziałem 2 dni nad tym (aż żona dostała białej gorączki) i doszedłem o co w tym wszystkich chodzi. Po pierwsze to musiałem zamienić UARTy, tzn. sprzętowego użyć do komunikacji z modemem GSM, zaś Softowego do komunikacji z PC. Po drugie intrukcja Bascoma Print domyślnie na końcu wysyła chr(13) i chr(10), więc musiałem użyć instrukcji printbin...
już mi ręce opadają - z delphi dlaczego jak nie ustawie na hardware tylko zostawię bez kontroli przepływu to comport działa nie tak jak powinien? poza tym jak z bascoma wyśle printbin 5;4;3;40; itd (czyli konkretne wartości ) to delphi odczytuje Ok jak wyśle jako zmienna to jest do bani - i wszystko sie krzaczy - żeby było śmieszniej to za pomocą programu...
Acha, to jeszcze dochodzi do tego warunek że sygnał cyfrowy nie może zawierać składowej stałej (bo pewnie dane analogowe to jakieś napięcie stałe)? Napisz jaką potrzebujesz prędkość. Bo inaczej problemu nie rozwiążemy. Możemy Ci tu mówić i mówić i nic to nie da. Więc najlepiej jak powiesz co chcesz osiągnąć a My (ja) podsuniemy Ci gotowca. PS. Nie wiem...
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ą...
Bo jest LF i CR. Nie wiem co to znaczy w tym monitorze ale sie domyślam. Line Full i Carriage Return To Enter. BASCOM go wysyła. A Len = 3 bo widocznie ten monitor Enter traktuje jako jeden znak. Zawsze LF i CR są w takiej kolejności. U Ciebie też tak jest, ale ten monitor CR przerzuca do kolejnej linii i wygląda jakby CR było przed LR. Ale to nie ma...
Przykład bardzo pomógł teraz bardziej już rozumiem tą całą transmisję jednak nadal nie udaje mi się odebrać temperatur. Nie wiem czemu bo widzę że ta funkcja działa wyświetla mi liczby i to zmienno przecinkowe jednak nie mogę znaleźć logiki w uch wartościach Case "3": Printbin Temp1 Printbin Temp2 Case "4": Printbin Temp1...
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...
Nie cztałem instrukcji do tego Nextiona, ale może problemem jest to, że nie wiesz, że jeśli nie postawisz średnika za printowaną zmienną to Bascom dodaje na końcu znak LF i CR Robi to chyba żeby się pojawiały nowe linie w Terminalu Jeśli nie chcesz żeby dodawał znak końca linii i Enter - postaw średnik " ; " Zobacz mały przykład z przykładowymi danymi....
bez otwierania kanalow "open..." ? Dodano po 1 Napisalem program, nadajnik: $crystal 8000000 Baud #1 9600 open "comd.1:9600,8,e,1" for output as #1 do Printbin #1, 2 loop end Odbiornik $crystal 8000000 Baud #1 9600 dim b as byte open "comd.0:9600,8,e,1" for input as #2 do b=waitkey(#2) if B=2 then Portb.1=1 end if loop end do portu b 1 podlaczona jest...
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...
No to stosuj kodowanie w takim razie - bo teraz wysyłając dane poleceniem Printbin i tak nadawane są one jako ramka transmisji szeregowej (UART) i występują tu takie same problemy jak w rozwiązaniu przedstawionym przeze mnie. Jeśli chcesz robić manchester to musisz ręcznie sterować pinem i ręcznie próbkować pin w odbiorniku - a nie kombinować z UART...
... To wiem ale jeżeli się nie zna składni to już nie jest takie proste Mogę to napisać np. w paskalu w 30s ale tego nie wcisnę w 2052 A mówi się , że Basic jest pamięciożerny :wink: Poniżej programik dla matrycy 4x4 na P1 . Pozdrawiam Piotrek Bardzo dziękuje Piotrek umieszczę to jako listing ****************************************...
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...
ATMega8 w wersji SMD ma 2 dodatkowe wejścia do przetwornika ADC i nie mogą one pracować jako normalne linie I/O. W ATMega8 w DIP28 tych 2 dodatkowych linii nie ma ich wcale. Wewnętrzny oscylator nie nadaje się do żadnego zegara ale nadaje się do UARTa, bo według datasheeta ma on dokładność 3%, a RS232 dopuszcza błąd do 4%. Mi działał nawet UART przystosowany...
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. w związku z zapytaniami na meila odpowiem na ile mogę tu(być może komuś się to przyda. Jesli gdzies walnołem jakis bład prosze o wybaczenie:) już dawno projekt zakonczony a nie chce mi się na nowo teraz wszystkiego instalować i sprawdzac. na początku zanim zacząłem co kolwiek pisać podpatrzyłem terminalem (RTU) przes rs232 co tak naprawdę wysyła...
Witam. Mam małe pytanie, chciałbym sterować kartami przekaźnikowymi przez PHP (www) Karty które mam to są klony KITu [url=http://sklep.avt.pl/p/pl/487832/uni... pracuja na RS485 spięte są za pomocą KITu [url=http://sklep.avt.pl/p/pl/481894/klo...
bascom printbin string printbin inputbin bascom bascom enkodera
prądniczka tacho amica vestel 17ips72 wyświetlacz sterownika pieca defro
frequency mixers frequency mixers
Czy metalowe elementy ogrodzenia powinny być uziemione? Czy zawory ssący i wydechowy z Ursus C-330 pasują do 1HC102?