Żeby nie było, że konspiracja, to dodam że plik definicji jest ogólnodostepny na ForumMCS, ale dla zainteresowanych ożywieniem Xmegi takiej jak w "Leonowych" modułach..proszę bardzo :D
A może wykorzystać polecenie Chr() i tak: Chr(0A), powinno dać LF.
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()...
A od czego jest HELP !? "Przeznaczenie: Zwraca określoną liczbę znaków z tekstu począwszy od lewej strony. Składnia: zmienna = LEFT( tekst , il_znaków ) gdzie zmiennazmienna tekstowa, do której przepisane będą skopiowane znaki, teksttekst z którego skopiowane będą znaki, il_znakówilość kopiowanych znaków. Opis: Zobacz także: RIGHT , MID Przykład: Dim...
po pierwsze to attiny trzeba przestawić na zewnętrzny kwarc, bo standardowo jest na wewnętrznym RC. po drugie ATtiny2313 ma dodatkowy fusebit odpowiedzialny za podział częstotliwośći zegara przez 8. niepamiętam jak sie on nazywa dokładnie ale jak programujesz z bascoma to tam jest to ładnie nazwane (clock frekwancy divider) czy jakoś tak. standardowo...
Mój typ - wadliwe podłączenie linii danych. Możesz jeszcze próbować w programie wstawić dodatkowe INITLCD przed DO.
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...
Proszę. Gotowe bo jak widzę kilka If`ów do tej samej zmiennej zamiast Select Case i tym podobne kwiatki... [syntax=vbnet]$regfile = "m32def.dat" $crystal = 11059200 $hwstack = 64 $swstack = 16 $framesize = 64 Const Timeout_time = 8 'x500ms Config Submode = New ' config LCD 2X16 Config Lcdpin = Pin , Rs = Porta.2 , E = Porta.3 , Db4 = Porta.4 , Db5 =...
Do pracy Uartu nie są potrzebne przerwania. Ale ty masz tu buforowanie, które wymaga przerwań. Jak niby bascom ma wyłapywać znaki w tle bez przerwań? Jak masz jakis pomysł to daj znać - chętnie go kupię.
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...
I jeżeli np. zmienna_tekstowa , z której będę pobierał poszczególne znaki może mieć max 5 znaków, a zapiszę do niej np. tylko 3 - tj. "ABC" . I jak jako pierwszy znak do zwrócenia(tj " początek ") podam pozycję np. 1, a ilość znaków 1 - to mi zwróci ze " zmienna_tekstowa " do zmiennej " zmienna " literkę A. Tak. -> A co będzie, jak podam jako pierwszy...
Otrzymasz znaki "2" "5" oraz znak Enter. http://www.elektroda.pl/rtvforum/viewtop... A. To Ty, dopiero zauważyłem ;p
Tablicy nie, bo to różne typy. słowo2_array jest nałożone na słowo2 (string) więc musisz robić podstawienie słowo2 = słowo3 albo kopiować ze słowo3 poszczególne znaki do słowo2_array
http://obrazki.elektroda.pl/4164965000_1... Witam. Od dłuższego czasu interesuję się technologią RFID i dziś chciałem zaprezentować rozwinięcie mojej dawnej konstrukcji mianowicie czytnik kart RFID ze zintegrowaną anteną na płytce PCB. Ze względu na skomplikowaną konstrukcję anteny (niewielkie odległości między ścieżkami) płytka została...
Chyba źle skraczona wersja programu. Poszukaj innej bo w oryginalnym kompiluje się bez błędu. Jest jeszcze taka możliwość, że w tekście masz białe znaki których nie widzisz bo kod z czegoś przekopiowałeś. Spróbuj skopiować kod z powrotem z Elektrody i skompiluj.
To wiele wyjaśnia. Spróbuj tak ;) [syntax=vbnet]$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 64 $swstack = 16 $framesize = 64 $baud = 9600 Config Lcd = 16x2 Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.6 , Db7 = Portb.0 , E = Portb.4 , Rs = Portb.5 Cursor Off : Cls Dim K1 As Byte Dim K2 As String * 20 Dim Id As String *...
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...
W pierwszej kolejności to użyj SYNTAX CHECK i usuń błędy składni (przecinek, to nie kropka - lupa do ręki i dokładnie sprawdź). Oprócz tego deklaracja Sub Znaki i wykorzystanie w procedurach - zgroza (trzeba rozróżnić Znak i Znaki - u Ciebie to wszystko jedno. Na końcu program domaga się End If. Po tych poprawkach ładnie się kompiluje - wersja nie demo.
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...
Jak napisałem wcześniej LCD jest wyposażony w cyrylicę. Problemem jest jak tą cyrylicę wpisac do programu bezpośrednio z klawiatury. a co ma wspólnego cyrylica wpisywana z klawiatury z tą cyrylicą w LCD ??? otóż nie ma nic wspólnego poza tym, że mowa o znakach cyrylicy. Nawet jeśli już być miał możliwość pisania jak to mówisz bukw na PC to ich kody...
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...
Witam Możesz spróbować zrobić też w taki sposób: Do D = Inkey() If D > 0 Then 'jeśli coś jest odczytane to wtedy to zapisz do tablicy W(n) = D Incr N 'przejdz do czytania kolejnego elementu tablicy If N = 16 Then N = 1 'wykonywanie operacji na całej tablicy itp. End If End If Loop cały czas odczytujesz znaki a jeśli bufor nie będzie...
Zamieniasz poszczególne znaki na ich liczbowe odpowiedniki za pomocą funkcji: ASC i XORujesz z poprzednią wartością, za pomocą funkcji XOR. O rozbijaniu stringa na poszczególne znaki było parę( dziesiąt) postów temu. A sam XOR to inaczej suma modulo 2: 0 xor 0 -> 0 1 xor 0 -> 1 0 xor 1- > 1 1 xor 1 -> 0 Oooo, znalazłem: http://www.elektroda.pl/rtvforum/topic15...
Pomyśl..Cztery znaki chcesz upchać w trzyznakowym stringu.. Nie wiesz jak to działa. Kiedy deklarujesz String * 10 rezerwujesz 11 bajtów bo każdy string ma znak swojego końca. Nie musisz wykorzystać wszystkich bajtów. String może być krótszy i zaraz po znakach postawiony będzie znak końca..ale zarezerwowałeś 11 bajtów i tam program nigdy nic nie będzie...
Czy nie lepiej by było zamiast bawić się w pojedyncze znaki odebrać cały tekst hurtem. [syntax=vbnet] Do If Tekst = "Zgaś" Then portc.1 = 0 Elseif Tekst = "Zapal" Then portc.1 = 1 End If Loop End odbierz: Input Tekst Return [/syntax]
Pin Tx-owy atmegi i masa do złacza DB9, dalej chińska przejściówka RS232-USB i komputer. Piny TX i RX Atmegi to nie jest standard RS232, tylko UART. Nie możesz tego podłączyć do przejściówki RS232-USB tylko do przejściówki UART-USB. Dziękuję, to wszystko w temacie ;-)
Komenda shiftlcd left tego nie zrealizuje Niby dlaczego? Problem będzie tylko, gdybyś chciał wykorzystać inne linie do czegoś innego. Tu masz przykładowy program, korzystający z pamięci EEPROM: $eeprom Data "Baaardzo d{003}uuugi napis.!Jest zapisany w pami{002}ci EEPROM. W ATTiny 2313 mo{007}e mie{001} do...
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....
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ę...
ok teraz można analizować ;) skoro widzisz kwadraty w pierwszej linijce a w drugiej pusto to na 1000% oznacza tylko, że wyświetlacz nie został prawidłowo zainicjalizowany (programowo oczywiście).... co może być tego powodem? 1. na pewno nie Bascom - bo w takiej prostej konfiguracji to zawsze ale to zawsze działa chyba, że 2. sprawdź po trzykroć połączenia...
Mnie zastanawia jedna rzecz, skoro korzystasz z przerwań to po jakiego grzyba tam input? Zobacz jak mozna to rozwiazac: Odebrano: Disable Urxc ' wylaczenie przerwania na czas trwania aktualnego 'Jesli licznik znakow jest mniejszy od maksymalnego rozmiaru bufora to... If Licz_znaki < Max_znakow Then '...zwieksz licznik znakow, do buforu transmisji...
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...
Ale ten sposób wysyłania ramek to trochę nie teges. A jak poprawnie się wysyła takie ramki i czym? Nie możesz po prostu sprawdzić w opisie programu jak należy formatować dane? Bo domyślam się że to jakiś terminal jest. Na Wikipedi jest opisane tak: "Minicom to program do kontroli modemu oraz emulator terminala dla systemów uniksowych" Ciężko Ci pomóc...
Bascom domyślnie "naciska za Ciebie Enter" przy printowaniu. Jeśli nie chcesz zatwierdzać linii bo na przykład chcesz nadać w tej samej linii jeszcze jakieś znaki lub całe stringi to stawiasz średnik . To wiadomość dla kompilatora że nie ma dodawać Entera. Rozum więc to tak, że w podpowiedzi kolegi Jaca pierwsza linia jest nadawana z enterem a w drugiej...
także chciałbym zapytać jak mogę indywidualnie nastawiać każdy PIN potru z osobna? Np. PORTC |=0x08 PORTB |= (1<<PB6) Poczytaj o operatorach bitowych - http://mikrokontrolery.blogspot.com/2011... Else dotyczy poprzedzającego go ifa. http://mikrokontrolery.blogspot.com/2011...
Niestety Jak dam instrukcję ustawienia bufora to już nic nie odbiera (nadawać nadaje). A włączyłeś przerwania :?: Bez bufora(przerwanie RX) , ciężko dogadać się z fonem :( Właśnie zauważyłem że jak zepnę RX z TX uP (wywale printa z głównej pętli i dam wait na 5sek. ) to odbiór też jest na 3 znaki :/ Czy wiesz jak wygląda transmisja asynchroniczna ,...
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...
Mam problem jestem początkujący napisałem program który ma za zadanie regulować włączanie wiatraka i czas z jakim ma dmuchać , jednocześnie mierzy temperaturę i nie działa tak jak powinno : Temperatura pokazuję co jakiś czas błędny pomiar np 124 , 32 , 98 procek się resetuje chińskie znaki raz na jakiś czas w programie można było ręcznie zmieniać czas...
Klawiature musisz potraktować jak jeden zwykły przycisk. Tyle że zwykły przycisk ma stan wysoki jeśli nienaciśnięty a ten przycisk zwraca 16 jeśli nienaciśnięty. Napisałem na szybko dwa przykłady. Jeden działa bezposrednio na wartosciach a drugi na stringu [syntax=vbnet] Dim Key As Byte Key_val As Byte , Lock As Byte , Licznik As Byte Dim Val_str As...
Wyłącz echo w telefonie. ale jak mam to zrobic ? ATE0 nie dziala :| Czyszczenie bufora nic Ci nie da.Aby "opróżnić" bufor , wystarczy wyrównać lub wyzerować indeksy _rs_head_ptr0 i _rs_tail_ptr0 . pytanie jak to zrobic pod Bascomem ? Obecnie jest tak jak by to co wysyla telefon ladowalo sie do bufora w roznych miejscach , raz na pcozatku, raz w srodku...
Witam Chciałem się pobawić terminalem który jest wbudowany w bascomie Lecz gdy wpisuję coś do terminalu, to wychodzą takie krzaczki: http://obrazki.elektroda.pl/7761527600_1... Wie ktoś czemu tak się dzieje?
http://obrazki.elektroda.pl/8074733100_1... Witam, Ostatnio wpadła mi w ręce karta VGA sterowana poprzez złącze szeregowe SPI. A a ponieważ w domu poniewiera się kilka starych monitorów VGA to postanowiłem zbudować zegar wyświetlający czas i datę na monitorze VGA (bez udziału PC) Takiego zegarka na elektrodzie chyba jeszcze nie było....
witam nie bawiłem się jeszcze 1921 ale obsługa jest standardowa tylko przy odczycie temperatury musisz dać opóźnienie na konwersje temperatury jakieś 750ms. DS1994 ma wiele funkcji i własny eeprom po za tym można zrobić całkiem dobry system kontroli dostępu zabezpieczenia wszystko zależy od pomysłowości. pamiętaj jedno jak piszesz cokolwiek do 1-wire...
To ja jestem jeszcze większy cienias bo nawet ze schematem pewnie nie pomogę (może być prawidłowy a nieprawidłowy będzie layout połączeń).
Czy jest jakaś możliwość dodania kolejnych znaków do istniejącej tablicy fontów w Bascom (czyli pliku FONT) , tak aby nie trzeba było tworzyć nowej większej tablicy, i ręcznie "rysować" każdego znaku od początku ? Mam tabelę fontów, zawierającą specjalne mini-grafiki, więc jeżeli trzeba robić nową tabelę, musiałby wszystkie narysować od początku...
Niebardzo rozumiem o co dokładnie tu chodzi ale: 1. Każde wystąpienie Lcd Chr(3) powinno być Lcd Chr(3); żeby nie były dodawane znaki nowej linii. 2. Żeby modulo 10 się obliczało poprawnie, to zamiast Dim Volt_d As Byte musi być Dim Volt_d As Word To jest związane z tym, że BASCOM nie potrafi rzutować typów z większego (Word) na mniejszy...
Używając tego typu zegarek musisz dodać kwarc 32768Hz, a w jego miejscu w Twoim programie są końcówki od LCD... (kwarc między PB.6, a PB.7) Pozdrawiam
Witam. Mam zmienną Dim Dane As String * 15 która ma 15 znaków np 1234z2132j2131j jak zrobić aby te kolejne znaki wpisać do tablicy, tak by każdy znak wpisać do kolejnego elementu tablicy poczynając od Dane(1)=1 Dim Kod(15) As String
Hi ! Czy na symulatorze wszystko wyświetla prawidłowo ? Ja posiadam BASCOMa AVR w wersji 1.11.6.4 i u mnie na symulatorze jest wszystko OK. Skompilowałem dla Ciebie ten program (AVR 1.11.6.4) i zamieszczam go niżej. Sprawdź czy będzie chodził prawidłowo.
Witam. uC to Attiny 2313 Czytałem już wiele wątków związanych z UART'em jednak ciągle mam problemy z ustawieniem i działaniem tego. Z uC wysyłam poleceniem: print "1" a na PC wyskakują jakieś dziwne znaczki (z rozszerzonego ASCII) i jest ich więcej niż wysłanych z print'em. Według tego co wcześniej yczytałem na forum ustawiłem tak:Attiny 2313 ma ustawiony...
znaki bascom bascom znaki specjalne polskie znaki bascom
zadania thevenina domofony schematy creative głośnik pilot
regulacja bramy hormann regulacja bramy hormann
Mercedes Sprinter W906 - brak podświetlenia kabiny przy otwieraniu z kluczyka Grundig GQN21225X – miganie pulpitu, przyczyny alarmu temperatury i usterki panelu