Może coś takiego : Dim Str1 As String * 10 Dim Koniec As Byte Dim Key As Byte Str1 = "" Koniec = 0 Do Key = Waitkey() 'pobieranie znaku, tu z terminala Select Case Key Case 13 : Koniec = 1 ' np. kod ENTER = 13 Case Else : Str1 = Str1 + Chr(key) ' inne znaki dodaje do str1 End Select If Len(str1) = 10 Then Koniec...
Fusebits KL zostawiasz bez zmian, A987 ustawiasz na 1111 (z rozwijanej listy wybierasz taką opcję). Dodatkowo ustawiasz bit H: CKOPT na 0 (0 oznacza "włączony") i wyłączasz JTAG w bicie J (JTAG Disable) Co do Lockbits - nie zmieniaj, zostaw tak jak są. Wartości które tam masz wpisane umożliwiają odczyt pamięci programu i jej weryfikację Pamiętaj, że...
Jak zwykle czasu nie ma, ale nie mogłem się powstrzymać. Nakręciłem pierwszy klip - ahahahaha :D No musiałem się pobawić edytorem. Efekt to półtora minuty magii :D Ahahaha miałem kupę zabawy z tym :D Przy okazji możesz zobaczyć jak się używa wbudowanego symulatora by zadawać wartości ADC ;) Twój pomniejszony kodzik też poniżej, tylko używając poza symulatorem...
Przepraszam, że dopiero teraz ale jestem w delegacji. Minęły dwa dni a Twój termometr nie działa... Możesz słuchać każdego. Ja proponuję takie rozwiązanie które zajmuje dosłownie dwie minuty jeśli robiło się to wczesniej. Sprawa jest w pełni odwracalna. To nie ślub z kobietą :D Więc co szkodzi spróbować? Kiedyś może sam komuś pomożesz. Należy zacząć...
Witam. Robię mini komputer pokładowy. Funkcje to pomiar poziomu paliwa, temperatury w i na zewnątrz, i napięcia aku. Na razie mam paliwo i jedną temperaturę. Poziom paliwa symuluje na razie potencjometrem. Do pewnego poziomu fajnie wypełnia mi kolejne kwadraty, jednak gdy zapełnię pierwszą linię, i przekręcę jeszcze trochę potencjometr, to wypełnia...
Witam. Jako nowicjusz programowania mikrokontrolerów w bascomie. Piszę z takim pytaniem. Czy istnieje możliwość powielania wyrazów/ znaków ? ( Z doświadczenia wiem, że inne języki programowania to mogą, np. Python - ale to przecież inna para kaloszy) Chciałbym aby w zależności od wzrostu wartości zmiennej na wyświetlaczu LCD pojawiały się kolejne zaczernione...
Bo reszta pinów jest nieskonfigurowana i łapie śmieci z powietrza. Rozumiem, że działasz na Portd.3 i Portd.2 Gdybyś czytał Helpa do Bascom .... For the XMEGA, if you set the priority with CONFIG PRIORITY, you must enable the MED priority. Czy to Tobie coś mówi? :D Przedobrzyłeś. Xmega ma trzy różne priorytety przerwań. Bascom sam włącza te potrzebne,...
Nie zwykły bufor Serialin Flaga od entera może się Ci przydać by na przykład po jej ustawieniu przenieść odebrany ciąg gdzie indziej, zresetować flagę i ustawić A= "". Zamiast Case Else można by ciąg budować np po: Case 65 to 90 Wtedy do ciągu dodawane były by tylko wielkie litery lub: Case 32 to 127 - czyli wszystkie znaki podstawowe bez sterujących....
Witam! programuje w bascomie już troche czasu i mam już jakieś pojęcie o tym programie, ale od czterech dni próbuje rozgryźć kod i narazie żadnych postępów. Kod wygląda tak: Pewnie wiecie o co chodzi w programie ale opisze działanie i problem. Otóż program zczytuje znaki z wewnętrznej pamięci eeprom atmegi8 i wyświetla go znak po znkau na lcd, a gdy...
Przy odbiorze danych p rzez RS trzba znać gdzie się kończy transimtowany ciąg znaków. Są dwie metody: 1 Liczyć ilość odebranych znaków i wycinać ze stringu właściwą sekwencję np. odczyt numeru tel z SMS. 2 Na końcu trasmisji nadaje się znak specjalny np chr(13) lub chr(10) W AVR jest obsługa portu w przerwaniu więc dane są odebrane po pojawieniu się...
Witam, zaczynam (chciałem) zabawę z mikrokontrolerami, jednak mam problem którego nie daje rady przeskoczyć. Od razu pisze ze czytałem juz posty z podobnym problemem jednak nigdzie nie znalazłem odpowiedzi. Problem jest następujący: mam programator na LPT oraz płytkę tylko do programowania ATTINY2313. Oprogramowanie to BASCOM-AVR i PonyProg2000, wszystko...
To jest następna wersja :wink: Działa ale bardzo niestabilnie tzn np. naciścięcie P1.0 + P1.7 generuje kilka różnych znaków i nadal po linnie nadawcze wchodzą w stan niski i nie wracają Mam kłopot napisałem coś takiego Ale wysyłany jest znak a potem #13 , #10 Jak zrobić by CPU nie wysyłał tego rrugiego znaku (#10) ****************************************...
Niestety nie znalazłem :( Ale jest coś ciekawego w programie, który zamieściłem, mianowicie zapisuje on rzeczywistą szerokość i wysokość każdej litery, znaku, cyfry. Na przykład m (font_times_new_roman24) program automatycznie obcina zbędne piksele (zera). Na początku chciałem właśnie wykorzystać kodowanie ARL, by zmniejszyć rozmiar każdego znaku. Ale...
Staram sie napisać programik w Bascom, który odczyta mi numery seryjne z termometrów dallasa DS1820 (docelowo 3-4 termometry) ma go zapisać w pamieci eeprom procesora, a nast ma być odczytany. Na końcu użyłem komendę dla wyświetlenia na lcd ale jakoś mi to podejżanie działa ponieważ nie wyświetla mi znaków a tylko jakieś "9". Może źle odczytuje lub...
Komenda Print jest łatwa do zastosowania ale jak odebrać dane? Znalazłem, że odpowiada za to Input zrobiłem tak Input = +CMTI: "SM",1 then Print "AT+CMGR=1" ; Chr(13) ; Input = (jeśli w odebranej wiadomości występuje OFF) then Pk_syrena = 0 Print "AT+CMGD=1" ; Chr(13) ; ale nie działa "Print "AT+CMGR=1" ; Chr(13) ;" po odczycie "Input = +CMTI: "SM",1...
Witam, po przesiadce z bascom do winavr piszę przykładowe programy w celu poznania C dla AVR, tym razem chciałbym wysyłać po rs232 odczyt z przetwornika analogowego. Używam a328p i po krótkim zapoznaniu się z dokumentacją układu ustawiłem transmisję i adc [syntax=c] #include <avr/io.h> #include <util/delay.h> int main( void ) { UCSR0B =...
Witam! Program działa poprawnie. Testowałem z 3-4 programy do obsługi tego czujnika ciśnienia. Wyniki są złe, porównaniem z innym ciśnieniomierzem zaniża o 30..40hPa. Zasilanie BMP180 3.3V, ATMEGA32, 8MHz. Czy ktoś się spotkał z takim problemem? [syntax=vbnet] '----------------------- '| Test modułu BMP085 | '----------------------- 'Uwaga: pomiar jest...
Witam Mam płytkę Loggera GPS + SD + PCF8563. Jeśli chodzi o GPS i zapis na SD wszytko jest OK. Problemem jest ( i to pierwszy raz się z czymś takim stykam ) odczyt danych z z układu PCF8563. Otóż dla pewnych wartości sekund, odczytana wartość czasu - godziny jest większa o 40 ( czterdzieści ). Czyli jeśli czas jest 22:40:02 to jest wyświetlany poprawnie,...
Witam. Na znanym serwisie aukcyjnym zaopatrzyłem się w wyświetlacze LCD 2x16 znaków które miałybyć kompatybilne z HD44780 jednak nie są. Wyświetlacze to PC1602V-P8 firmy Powertip. Na stronie $regfile = "m8def.dat" 'procesor mega 8 $crystal = 8000000 '8mhz Wait 1 Config Adc = Single , Prescaler = Auto , Reference = Avcc ' ustawienie adc Dim...
Witam, jako, że kończą się wakacje postanowiłem udoskonalić trochę soft piórnika - chcę dodać odczyt temp., tylko nie wiem gdzie ją umieścić. '***************************************... '* Program Piórnik Mini wersja 1.0 Beta *' '* Pomysł: FICU *' '* Programista: Jacek R (Black Jack) Kompilator:...
Witam, mam mały program napisałem przy użyciu książki Pana Marcina Wiązania oraz przy użyciu elektrody do obsługi matrycy led, lecz mam nieporządany efekt stroboskopowy. Nie widać liter, tekstu, tylko wszystkie diody mrugają. Czy to jest spowodowane zasilaniem czy też błędem programu? Dorzucam dwa programy, przy których pracowałem i schemat, schemat...
Witam, mam następujący problem z poniższym programem. Prosiłbym bardziej obeznanych kolegów o sprawdzenie, układ powinien działać tak: ustawiam temperaturę plus regulacja histerezy, gdy temperatura jest niższa układ załącza przekaźnik do czasu wyrównania temperatury, problem polega na tym że program załącza przekaźnik (grzanie) tylko na moment po czym...
Witam, mam program (attiny2313) do obsługi termometru DS18b20 i wyświetlacza, układ posiada 3 przyciski +/M/-. Program reaguje na zwieranie przycisków do masy, a chciałbym zrobić tak by procesor reagował na przerywanie masy. Znajdzie się ktoś kto mógłby rzucić okiem na program i podpowiedzieć co trzeba zmienić?? [syntax=vbnet] $regfile = "Attiny2313.dat"...
Poprawiłem lekko kod i dodałem kilka komentarzy. $regfile = "M8def.dat" 'Plik układu $crystal = 8000000 'Zegar ( Jesteś pewien że masz 8MHz? Jeżeli nie grzebales w fuse bitach to masz 1MHz) Rem Konfig. LCD Config Lcd = 16 * 2 : Cursor Off Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E =...
Witam W swoim programie wykorzystuję klasyczny kod dla DS18B20. Pomiar, obliczenia i odczyt podzieliłem na dwie części, każda wyzwalana flagą od od Timer0. Najpierw w podprogramie wywołuję DS'y pierwszym wystąpienie flagi od Timer0, a w następnej wywołuję podprogram konwersji i obliczeń. [syntax=basic4gl] $regfile = "m644def.dat" $crystal = 14745600...
Bascom - wersja 1.11.95 Kod, no jest tego sporo: - zegar PCF8563 - Zapis na SD - dwa czujniki DHT11 - odczyt z PCF8574AP ( klawiatura ) - RC5 - ma być DS18B20 - ma być DCF77, ale nie doszedłem do tego momentu ( tzn testowałem na innym procesorze i działało ) Działa - zegar PCF8563 - dwa czujniki DHT11 - odczyt z PCF8574AP w przerwaniu ( klawiatura )...
http://obrazki.elektroda.net/76_12349093... Włącznik komputera zintegrowany z igorplug Ostatnio postanowiłem zmontować sobie komputer pracujący w roli "Media Center". Jako zdalne sterowanie wykorzystałem odbiornik igorplug ( http://obrazki.elektroda.net/86_12349099... Wszystko działało bardzo pięknie - pojawił się tylko jeden problem -...
najpierw zewrzyj sobie nóżki 11 i 12 i zobacz czy to co wpisujesz w terminalu wraca do niego - powinno być echo - czyli piszesz literkę np A i powinna ona polecieć do MAX232 i wrócić do terminala i się wyświetlić - jak to będzie dobrze to możesz być pewien, że ten tor masz OK , a jeśli nie będzie tak? to sprawdź kabel i połączenia - nie ma bata, musi...
W przerwniu i programie głównym używasz zmiennych zadeklarowanych jako word. Myślę, ze tu leży pies pogrzebany. W C wystarczy użyc volatile i atomic_block. W Bascim? Był taki na Elektrodzie (niveasoft) co wiedział w jaki tajemniczy sposób Bascom zarządza takimi zmiennymi. Myślę, że nie masz wyjścia, tylko przed odczytej w programie głównym zmiennej...
Odwrotnie: 0101-0000. A przelicz na piechotę albo w kalkulatorze obsługującym system binarny (czyli na przykład w kalkulatorze z Windowsa). Dodano po 2 A w sumie to nie musisz przeliczać. Możesz napisać: LCD Chr(&B01010000)
Witam Jeśli dobrze rozumiem zdanie: "na zmienienie wartości string odczytanej z eeprom na zwykły tekst" masz na myśli zamianę liczby (zapisanej w kodzie ASCII ?) na jej odpowiednik znakowy. Program, który wykorzystałeś bazuje na kodach ASCII znaków, (komentarz przed tabelą znaków Fontlookop), dlatego też po mojemu niepotrzebnie stosujesz zapis: Czytaj_str...
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
Wyświetla mi tylko 11 pierwszych liter;/ (łącznie ze spacjami). No i bardzo dobrze , tyle maksymalnie miał wyświetlić. Ja Ci pokazałem , jak odszukać urządzenie na magistrali , jak zapisać/odczytać dane i jak złożyć z danych napis , a reszta należy do Ciebie.Na koniec podpowiem jeszcze , że jeśli chodzi o 24C04 , to pierwsze 256 bajtów masz pod adresem...
powinno byc cos takiego (to tylko fragment kodu) dim znaki(19) as byte dim licznik as byte licznik=0 enable interrupts enable urxc on urxc odbierz 'jak odbierze znak to przerwanie do:loop:end 'glowna petla tu robisz co chcesz odbierz: znaki(licznik)=inkey()'o... znak trafi do tej zmiennej incr licznik if licznik...
Ale co nie działa ? Być może zbyt często chcesz wyświetlać jak na Bascom. A co ze znakiem CR ?
Kurdemol ,gdzieś posiałem neseser z moim muzgjem. Locate x,y zapewne działa siłą rzeczy też jak Cls... I pomimo to nie będzie ściemniał ostatnich znaków?
Bo niektóre z tych kodów to kody funkcji lub "regionów" klawiatury. Algorytm powinien być taki. Pod 0xE0 umieszczasz jakąś wartość, np. 200 i teraz jeśli otrzymasz wartość 200 i w krótkim czasie po niej wartość z pozycji oznaczonej przez np. 0x75 (czyli strzałka w górę) to znaczy że to jest strzałka w górę, w przeciwnym wypadku jest to cyfra z klawiatury....
no normalnie, pobierasz długość nazwy: A=len(tekst) i potem dajesz znak zerowy zakończenia tekstu: tekst(a)=chr(0); mam nadzieję, że POMOGŁ em
Dlaczego pokazuje -1 na wyświetlaczu a nie np 255 jak jest dla zmiennej typu Byte. Bo Integer to zmienna ze znakiem, FFFF to właśnie -1. Byte jest zmienną bez znaku (zawsze dodatnią). Dwubajtowa zmienna bez znaku to w Baskomie "Word". Na wyświetlaczu po resecie będzie wówczas 65535. 2. Czy taki zapis eeprom będzie poprawny przy pierwszym sprawdzeniu...
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...
Dzielenie przez 16 to to samo co przesuwanie bajtu w prawo o 4. Czyli jest to wywalenie jakby 4 najmłodszych bitów, czyli odczyt temp będzie z dokładnością do 0,5 stopnia. Zajrzyj do notki. 5 najstarszych bitów to znak czy dodatnia czy ujemna, a 4 najmłodsze oznaczają miejsca po przecinku. Rozumiem ze zmiana z systemu binarnego na dziesiętny jest znana?...
Hmm , z tym rozpoczęciem programowania poprzez reset to lipna sprawa niestety. Moduły są rozsiane w róznych miejscach i właśnie dlatego założyłem ten temat. Myślałem że już może ktoś to zrobił wcześniej. Ja osobiście wolałbym użyć np. watchdoga do inicjacji wgrywania oprogramowania czyli : wysłać poprzez rs485 polecenie np: firmware_1 i to polecenie...
Napotkanie Inkey() powoduje zatrzymanie pracy programu aż do odczytu znaku z bufora UART.
Jak chcesz wpisywać liczbę z klawiatury to powinieneś uwzględniać wagę poszczególnych składników tej liczby. Pierwsza cyfra z trzech to, waga=100 zatem key*100, przy następnej cyfrze waga=10 zatem key*10, a na koniec samo key bo waga=1 i operacja mnożenia jest zbędna, jak to wszystko zsumujesz to otrzymasz ostateczną liczbę. Np. liczba 467 to 4*100+6*10+7....
Najprawdopodbniej w tej zmiennej coś jest jeszcze na końcu. Mogą być znaki niewidoczne, np CR lub /i LF. Spróbuj wyświetlić długość tego stringa (w Bascomie chyba funkcja Len) i wtedy bedziesz wiedział czy aby tam jest tylko liczba. Możesz spróbować też konwertować tego stringa po jednej cyfrze, a więc robisz pętlę w której wycinasz fragment stringa...
Pomijając tragiczny kod zastanawiam się po co wysyłasz milion znaków, przecież w jednej ramce rs możesz wsadzić 255 różnych znaków, na tak prostą rzecz nie potrzebujesz takich ramek.
Również nie jestem Bascomowcem ale być może moje uwagi okażą się cenne. Po instrukcji Print "{008}5r", dane jest 10 ms opóźnienia. W tym czasie slave mógł już przesłać wszystkie swoje dane - a master jeszcze nie rozpoczął nasłuchu. Inną sprawą jest to, że 100 obiegów pętli w procedurze Odczyt_zn może trwać krócej niż transmisja jednego znaku przez UART...
Witam Dokonałem tej zmiany i także wyrzuciłem zmienna S na Lcd i dalej program nie działa tak jak bym chciał. ................ Jest ok zmieniłem znak ''<" i działa . Do swojej podstawki programującej mam podłączone 2 przyciski do pin d.0 pierwszy do pind.1 drugi gdybym chciał zmieniać progi załączania pind.7 tymi przyciskami (czyli regulować temperaturę...
Opis magistrali 1Wire masz w helpie. Poniżej kod na obsługę dallasa DS18B20. Config 1wire = P1.0 'konfiguracja magistrali 1wire Config Lcd = 16 * 1a 'konfiguracja wyswietlacza Deflcdchar 1 , 4 , 10 , 4 , 32 , 32 , 32 , 32 , 32 'znak stopnia Dim T1 As Single Dim T2 As Single Dim B1 As Byte , B2 As Byte , R As Byte Dim Tmp As String * 6 Dim Znak As String...
Jak czytałeś lub nie :) karta ma sekwencje "startu" , nie pamiętam teraz jaki ma format, jest to jakiś 5bit znak, ja najpierw z czytuje cały bitstream od czytnika i potem funkcją szukam startu jak nie znajdę to "przekręcam" bufor (znaczy ostatni bit staje się pierwszym w strumieniu) i jeszcze raz szukam znaku startu, potem już tylko na podstawie tablicy...
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...
odczyt ciągu znaków odczyt łańcucha znaków generator znaków bascom
wymiana grzałki kawasaki wysoki obrót introx kamera
piromenr optyczny ładowarka lifepo4
Wyciszenie elektrycznego dzwonka szkolnego: metody i rozwiązania Jak przywrócić kolorowy obraz na TV JVC?