Juz wiem czemu sie tak dzieje, poniewaz cala procedurka dziala na 8 bitach i dopóki były same instrukcje BitWait nie było problemu ponieważ on tylko tyle szczytywał, teraz mamy inną sytuacje ponieważ zbocze opadające przy włączonym przerwaniu uruchamia ponownie odczyt klawisza. Spróbuj po ostatniej instrukcji BitWait KbdClk , Set dać instrukcje Waitms...
$crystal = 8867000 $regfile = "2313def.dat" Const T1_prescale = 1024 Const T1_okres = 500 Const Podzial_ms = 1000 Const Okresosekunda = Podzial_ms / T1_okres Const T1delay = _xtal /(okresosekunda * T1_prescale) Const Timer1_wpisz = &HFFFF - T1delay Config Aci = Off Config Timer1 = Timer , Prescale = 1 'T1_prescale Config Portb...
Pisząc program stanąłem przed problemem odbioru kodu RC5 z pilota ale z użyciem przerwania. O ile w BASCOM 8051 GETRC5 w przerwaniu działa doskonale, to w BASCOM AVR jest to kompletna porażka. Wadą Bascomowej funkcji GETRC5 jest: 1) Dziadowskie działanie w przerwaniu (niby działa ale traci pierwszy pakiet z pilota) 2) Zastosowanie jej w programie powoduje...
Np. Bitwait Pinb.0, Reset 'czekaj aż na PB0 będzie stan niski
Wykorzystaj podprogram w którym umieścisz swoje instrukcje a na jego końcu umieść bitwait a potem tylko ponownie wywołaj ten podprogram.
Witam Jak transmitowac dane z bajtu - bit po bicie ( na dowolnym porcie ) z okreslonym opóźnieniem ( rzedu 1ms ) W asemblerze to takie proste - ale jak to zrobić w BASCOMIE ?? szkoda ze nie mam czasu na pisanie w asemblerze ! Wolałbym o odpowiedź na temat maskowania bit po bicie i uzyciu instrukcji "waitms 1" niz uzywania Timera do generowania opoznien....
Witam Jak wyeliminować opóźnienia w instrukcji wait przy używaniu przerwań do obsługi serwa? Przy tym programie czas oczekiwania się niemal podwaja: [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 8000000 Config Pind.1 = Output Config Servos = 1 , Servo1 = Portd.1 , Servo2 = Portc.0 , Reload = 10 Dim I As Byte Enable Interrupts Do I = 70 Servo(1)...
Dzień dobry potrzebuje napisać program tak aby stany spoczynkowe Portb = &B11111111 Portd = &B11111111 i teraz chodzi mi o to że jeśli pin pb.0, pb.1, pb.2 i pb.3 będą =0 (jednocześnie) to pd.6 = 0 No i za bardzo nie wiem jak mam to wykonać bo chce żeby pd.6=0 tylko wtedy gdy wszystkie te piny pb będą równe 0 jednocześnie. Pomożecie?
cos mi chyba ten jezyk nie idzie ale na czyms uczys sie trzeba a kto pyta nie bladzi wiec:) If Portd.6 = 1 Then Wait 5 Set Portd.7 Elseif Portd.6 = 0 Then Wait 5 Reset Portd.7 End If END: Jak zrobic by nie odczekiwal Elseif Portd.6 = 0 Then Wait 5 jesli stan nie byl wczesniej If Portd.6 = 1 Then Wait 5 tylko pomijal to ( czyli jesli bylo 1 a jest...
Dziwna sprawa w Bascomie: konfiguruję PORTB jako Output i deklaruję dwie zmienne Bajt typu Byte i MBit jako bit i...: To NIE działa - nie zmienia 3-ciego bitu w porcie B - dioda cały czas świeci Bajt.3 = Mbit POTRB = Bajt A to DZIAŁA if MBit = 1 then Set Bajt.3 else Reset Bajt.3 POTRB = Bajt DZIWNE..... robiw
Witam serdecznie, potrzebuję pomocy przy napisaniu warunku, na port ma wpadać czterobitowy sygnał (załóżmy, że na portb.0..portb.3) jak stworzyć warunek if..bla bla bla then? Wpada sygnał np. 1000 - jeżeli wpadnie ten sygnał na te piny ma mikrokonroler wykonać czynność ( to już nie ważne :D ) ma ktoś jakieś pomysły? jest to kod szesnastkowy max 16 kombinacji...
Rzeczywiście, z zaremowaną funkcją bitwait zmienna W przybiera wartości. Nie mam pojęcia dlaczego. Musisz tu zrozumiec mechanizm pomiaru długości trwania impulsu w instrukcji "PULSEIN": patrz 'Bascom help' Pulsein W , Pinc , 0 , 1 W tym konktetnym przypadku pomiar czasu dokonywany jest pomiędzy zboczami, z których pierwsze jest rosnące a drugie opadające....
To zamiast Goto(brrrrrr...) , spróbuj : While Mieszanie = 0 : Wend 'lub Bitwait Mieszanie , Reset A o instrukcji Goto - zapomnij :( Piotrek
Const odlicz=65436 rem dla zegara 12MHz odliczy tylko 100 impulsow (100us) dim licznik as word dim koniec as bit Config Timer1 = Timer , Mode = 1 , Gate = Internal On Timer1 etykieta Counter1 = odlicz do start timer1 bitwait koniec,set reset koniec rem petla powtarza sie co 100 us loop etykieta: licznik = counter1 rem To ma eliminowac czas od momentu...
Najprościej będzie tak: $regfile = "m8def.dat" $crystal = 8000000 Config Pinb.0 = 1 : Portb.0 = 0 Config Pinb.1 = 1 : Portb.1 = 0 Config Pinb.2 = 1 : Portb.2 = 0 Config Pinb.3 = 1 : Portb.3 = 0 Dim Licznik As Byte Enable Interrupts Enable Int1 Config Int1 = Rising On Int1 Przerywanie Do Portb = &B00000000 Loop End Przerywanie:...
Witam! Kolega nie zatrzymuje programu po instrukcji If ( domyślam się , że przycisk jest podłączony do pierwszego pinu portu b ), tylko każe mikrokontrolerowi zmienić stan portu. Proponuję: Do Wait 1 Rotate Portd , Left If Pinb.0 = 1 Then Bitwait Pinb.0=0 End If Loop End Nie wiem czy to zadziała, bo nie mam jak tego sprawdzić. Rotate przesuwa zawartość...
Hej. Uzyskalem komunikacje z przetwornikiem. Wszystko niby dziala, ale mam inny problem. Mimo uzycia kwarca 11.0592 MHz nie moge uzyskac transferu danych szybszego niz ok 270 Hz (komunikuje sie z komputerem przez UART). Podczas testow predkosci polaczenia (gdy wysylalem jakies losowe dane w nieskonczonej petli instrukcja Put) problem nie wystepowal....
Spróbowałem to samo z myszą na ATMega8 i pojawiają się problemy. SCK i Data powinny być wejściem czy wyjściem czy może powinny się zmieniać dynamicznie? Przetłumaczyłem na Bascom AVR instrukcję wysyłania i wygląda tak: Clk_out Alias Portd.3 Data_out Alias Portd.2 Clk_in Alias Pind.3 Data_in Alias Pind.2 Clk_dir Alias Ddrd.3 Data_dir Alias Ddrd.2 Sub...
Cześć. Pięć groszy z mojej strony a mianowicie. Nadmierne używanie w programie Bascom instrukcji podprogramów SUB prowadzi nieuchronnie do nadbudowy stosu z, którym Bascom sobie nie radzi. Instrukcji podprogramów SUB najlepiej używać tylko z konieczności i przejrzystości kodu. Ja osbiście się wyleczyłem z SUB w pewnym projekcie wykorzystującym wyświetlacz...
Przeczytałem to co jest wyżej napisane i... nie rozumiem co chcesz zrobić :) Co to znaczy: Potrzeba mi zapamiętać max. 4 liczby które będą następować po sobie dość szybko jednak Atmega potrafi je zdekodować bo jak dobrze się przypatrzę to liczby się zmieniają dobrze, i więc właśnie niech ktoś podpowie, co dopisać by procesor zapamiętał liczby i ustawił...
"Bascom nie radzi sobie z maleństwem" A mnie się widzi , że to programiści nie radzą sobie z Bascomem ;) Po pierwsze Ty chyba również zumek :D Tak deklaracja we/wyj powinna wyglądać Config Pinb.3 = Output Config Pinb.2 = Output Config Pinb.4 = Input zamiast wait3 spróbój waitms 3000 Bascom przy wywołaniu instrukcji Wait używa pamięci RAM, chociaż nie...
To wszystko o czym mówisz Pawle mam zachowane wiem ze porty wejściowe maja być podciągnięte do VDD(zasilania), u mnie w aducu ma byc jeszcze wpisane zero do rejestrów poru. Klawiatura mi działa, ale chodzi mi o to że nie mam tego zabezpieczenia przed przytrzymaniem przycisku przez dłuższy czas. Chciałbym żeby procesor nic nie robił wtedy, bo program...
Kod jest prosty tylko, przez te niskopoziomowe instrukcje wygląda na zagmatwany. Masz tam zwykłe ustawienie ADC co Bascom robi jedną komendą. Jedyna różnica to to użycie ADLAR czyli wynik konwersji w ośmiu bitach i przesunięty do ADCH. Później Autor ustawia Timer i to tylko do mrugania diodą (13 to typowe Arduino chyba). No chyba że ten 1Hz się tam...
[syntax=basic4gl] $regfile = "m8adef.dat" $crystal = 1000000 Config Portb = Output : Set Portb Config Pinb.0 = Input : Set Portb.0 Config Portd = Output : Set Portd Config Pind.0 = Input : Set Portd.0 Config Pind.2 = Input : Set Portd.2 Do If Pind.2 = 0 Then 'jesli przycisk sciagnie Pind.2 do GND to Waitms 20 'poczekaj 20ms (eliminacja drgan stykow)...
Witam próbuje stworzyć program, który będzie zliczał impulsy z enkodera i wyświetlał je na wyświetlaczu LCD. Na podstawie źródeł stworzyłem coś takiego, ale bascom wyświetla mi Error:202 :( Czyli chyba procesor nie obsługuje polecenia, a widziałem, że można na attiny2313 zrobić coś takiego, tylko może w jakiś inny sposób, którego nie poznałem jeszcze...
W międzyczasie znalazłem: Po poprawnym wykonaniu wcześniej opisanych czynności możemy w końcu przystąpić do upragnionego zapisu pamięci. Skoro nowe dane są już w buforze, to czas je zapisać. Najpierw adresujemy, którą stronę chcemy zapisać. Robimy to identycznie jak w przypadku kasowania strony, następnie ustawiamy bity PGWRT i SPMEN w rejestrze SPMCR...
Witam. Męczę sie z pomiarem odległości ultradźwiękami i układ już prawie działa (nad i odbiornik mają ok 10mm średnicy - czy to nie za mało?): pokazuje odległość w cm ale trochę za dużo, reaguje na oddalanie i zbliżanie sonaru od ściany (odległość rośnie lub maleje). Problem jest taki, że program czasem się zatrzyma (chyba wtedy gdy nie odbierze echa...
Na początek pamiętaj żeby program umieszczać w znacznikach "Code" wtedy jest czytelniejszy. Zamiana, o której piszesz nic Ci nie da bo instrukcja Bitwait wstrzymuje program i tylko coś w przerwaniach może w tym czasie się wykonywać. Jak chcesz zrobić nieblokująco (w zasadzie jest tylko lekkie opóźnienie przy wciskaniu klawisza ale w tym wypadku nie...
Mam taki problem, że zrobiłem projekt Odbiornika Morsa na ATmedze8. W oryginalnym projekcie jest kwarc 10 MHz, a ja użyłem 10.240 MHz gdyż taki miałem w domu, a sklepu elektronicznego w mojej okolicy nie ma. Jak podłącze ten odbiornik do komputera i z programu morsik coś wysyłam to np. "adrian" dekoduje poprawnie, a "jarek" już nie, tylko na LCD pojawia...
arktik1 wcale się nie urażam, dałem sporą dawkę wiedzy, każdy wykorzysta ją jak zechce ;) .... niestety tak jak się obawiam większość ludzi piszących tylko w Bascomie niewiele z tego wyniesie (i też przepraszam) bo nie mam tu zamiaru nikogo obrażać). Tak to już jest, że Bascom wyrabia tragicznie złe nawyki pseudo programowania, i jak "wam" przyrosną...
Witam, Mam pewien problem z Rc5 w bascomie, chodzi mi o to, że instrukcje odpowiedzialne za rc5 są wykonywane tylko kilka razy a później, kaplica coś się zapycha:) i pilot nie działa. Cała sytuacja ma charakter nieliniowy tzn. że raz wykryje 3 naciśnięcia przycisku na pilocie a raz np. 5. Po zresetowaniu procka znowu RC5 działa przez parę cykli uP....
Jeżeli chodzi o przycisk to wszystko jest w pomocy dla Bascoma , natomiast co do sprawdzenia L298 wszystko masz w dokumentacji tego układu [syntax=basic4gl]Przeznaczenie: Instrukcja oczekująca na ustawienie lub wyzerowanie bitu. Składnia: BITWAIT bit , SET | RESET Bitwait Pind.7, Reset 'czekaj aż 7 linia portu D będzie w stanie 0. [/syntax] Wstaw to...
problem mój polega na nieprawidłowym wyswietlaniu cyfr . o ile w zakresie 0-99 wszystko jest ok., to powyżej 100 ma same zera : wyswietlacz ma 3 cyfry led-7-segmentowe i w założeniach ma liczyć czas od 0 do 999 sek pełny kod: '$sim $regfile = "m8def.dat" 'informuje kompilator o pliku $crystal = 8000000 'informuje kompilator o Config Portd...
http://obrazki.elektroda.pl/8267947700_1... Ponad 20 lat temu jako amator hobbysta budowałem proste układy elektroniczne. Studia i styczność z informatyką spowodowały, że porzuciłem hobby pod nazwą "składanie elektroniki" na rzecz "składanie programów komputerowych". W bieżącym roku (2011) dzięki uprzejmości kolegi Jacka.M, który okazał...
Siemka! Od kilku dni spędza mi sen z powiek pewien problem. Mam ATmega8 połączoną z układem DS1307, połączenie na pewno jest poprawne, DS1307 podłączony jest też do bateryjki, a taktowany jest kwarcem zegarkowym. Układ działa poprawnie bo można do niego wpisać dane i da się też je odczytać, po wyłączeniu zasilania RTC pracuje i poprawnie liczy czas....
Sprawdzę zaraz po powrocie do domu i dam znać, teraz nie mam przy sobie modułu uruchomieniowego. Faktycznie, sprawa końca stringa może być pewnym kłopotem, ale przecież mogę w kolejnym poleceniu pokryć ten znak początkiem jakiejś innej zmiennej i w efekcie w buforze, po zakończeniu nakładania warstw, pozostanie tylko jeden znak końca stringa w komórce...
Witam, piszę sobie program na A128 i nie umiem sobie poradzić z jednym problemem ... wykorzystuję instrukcję encoder jaka jest w bascomie do zliczania zmiennej LONG + - i jednocześnie dokonuję pomiaru napięcia V kod programu [syntax=basic4gl]'----------------------... 'name : BG30dB_LCD.bas 'copyright...
Chcę sterować silnikiem DC z przekładnią 1:25. Silnik ma wykonywać 1 obrót w ciągu sekundy. Na jego osi zamocowałem tarczę z 4 otworami, co w ciągu 1s powinno dać mi 100 impulsów. Do regulacji PWM chcę użyć instrukcji Bitwait i Pulsein. I teraz mam pytanie: dla danych j/w. jaka powinna być wartość zmiennej w instrukcji Pulsein aby móc ją uzyć w instrukcji...
Witam, mam 15 lat i mam na imię Mateusz. Napisałem program do linefollower i chciałem zastosować PWM i ADC ale nie wiem czy mi to wyszło. Gdy wgrywam program, włączam robota i naciskam start to nic czujniki nic nie wykrywają a silniki cały czas się kręcą do przodu. Pomoglibyście mi bym był bardzo wdzięczny.:D $regfile = "m88def.dat" $crystal...
bascom instrukcja instrukcja bascom instrukcja obsługi bascom
oporność głośnik wkrętaki magnes wyświetlacz ciśnienia
simson schemat suwmiarka cyfrowa
Makita HR2450 - Zablokowany Przełącznik Trybu Podłączenie immobilizera Seat Arosa 1999 z wiązką 2003