Przeszło mi coś przez myśl. Możesz zliczać po prostu impulsy wysyłane przez nadajnik. Inkrementujesz zmienną "czas". Każdy odebrany impuls resetuje nam czas, a zmienna np "odebrano" zlicza ilość odebranych impulsów. Po zaprzestaniu nadawania czas osiąga jakąś wartość i po jej osiągnięciu zmienna "odebrano" zostaje zapisana. To tyle by było w BASCOM,...
Witam. Mam podobny problem. U mnie jednak zeruje się zmienna, która faktycznie jest stałą całym programie. Zmienia się ją tylko w jednym podprogramie, do którego nie wchodzę podczas normalnego działania programu głównego. Na początku, po resecie programu wszystko ładnie śmiga. Po pewnym czasie ta zmienna przyjmuje wartości -0.0, ale program się nie...
Kupione, bardzo ciekawa, dużo przykładów. Znam już trochę timer (przynajmniej podstawy), ale teraz pytanie. Jak zrobić żeby zmienna trwała krócej niż impuls, który ustala jej wartość? (pewnie piszę herezje) [syntax=vbnet] If PULSE=1 Then T=1 Waitms 1 T=0 End if [/syntax] Proble jest w tym, że moje PULSE trwa ok 300-500ms, a moje T musi być wyzwalane...
Po pierwsze, w każdym przyzwoitym języku programowania else dotyczy ostatniego if. Po drugie, jak zachowa się druga część programu, gdy zmienna Tmp_1 będzie miała wartość 100, 120 lub 140. Po trzecie, jeśli jużwiesz, że Tmp_1 ma wartość np. 90 (bo wpadłeś w pierwszy if), to po co sprawdzasz, czy mieści się w przedziale od 100 do 120 i kolejnych? To...
(...) ' 5 Data 250 ' 6 Data 131 ' 7 Data 251 ' 8 Data 219 ' 9 Wstępna ocena dostępnych informacji W kodzie widzimy dwa liczniki (Liczba_ok i Liczba_nok) zadeklarowane jako zmienne typu Word, a także tablice na cyfry (Cyfra_ok i Cyfra_nok) jako typ Byte. Z punktu widzenia zakresu wartości samych liczników (od 0 do 999) nie powinno to powodować błędów...
No wlasnie. czyli tak jak robie to ja. Timer generuje przerwanie co 1s. Zwieksza zmienna o 1. Wcisniecie jakiekolwiek klawisza jest rowniez sygnalem do wyzerowania tej zmiennej i cykl sie powtarza az do momentu, gdy zmienna osiagnie zadana wartosc. Oczywiscie reczne wychodzenie z menu jest tylko i wylacznie uwarunkowane klawiszem ESC. Ta zmiena symuluje...
Twoje działa, ale moje nie działa. Wklej mój kod w kompilator i zobacz co się dzieje [syntax=Bascom] $sim $regfile = "m8def.dat" $crystal = 16000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Rs = Portc.2 , E = Portc.3 , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 Cursor Off Noblink Cls Dim Cool As Word ' zmienna określająca wypełnienie...
Witam, jestem w trakcie pisania programu do regulacji temperatury i napotkałem problem. Napisałem program już w 80% i jest problem, ponieważ muszę wpisać wartość temperatury po której wartość ustawiona "zeruje się" do jedynki. Wszystko jest ok gdy wartość ta nie przekracza ok 250, gdy chcę wpisać 580 to wyskakuje błąd. Select Case Volt0 'zmienna Volt0...
Czołem! Zmotałam sobie na szybko czujnik, który "uczy" się pierwotnego poziomu oświetlenia, a później pilnuje przekroczenia progu i niby wszystko OK. (LCD jest do testów, nie będzie go tam) [syntax=vbnet] $regfile = "m328pdef.dat" $crystal = 8000000 $hwstack=32 $swstack = 16 $framesize = 40 Set Portc.0 Declare Sub Kalibracja Config Portb.0 = Output...
Żeś się rozpisał mhihi. Pewnie ze można prościej, ale ja nie o tym. Masz to tak napisane to zrób sobie "Sub Reset_all" a w nim na przykład: Klawiatura_1 = 0 Klawiatura_2 = 0 ...itd i tam resetuj do neutralnych ustawień. Potem taki sub sobie wołaj tam gdzie jakąś strzałką przechodzisz do jakiejś innej struktury menu. Najcześciej robię to inaczej. Jeden...
dlaczego resetuje mi zmienną L do zera po zliczeniu 256 impulsów przez taimer0 L = L + counter0 Chciałbym zliczyć wszystkie impulsy prosze o pomoc jakim kodem zliczyć np 10000 impulsów z timer0 = counter Bo jest organiczenie 'do 100 lit row' (patrz uwaga nad Codem). Ograniczenie to jest powodowane zakresem zmiennej (pulses as byte), ktora Zlicza przepelnienia...
(...) 39: Set Mcp_clk '1 Mcp_wynik1.0 = Mcp_din1 : Mcp_wynik2.0 = Mcp_din2 : Mcp_wynik3.0 = Mcp_din3 : Mcp_wynik4.0 = Mcp_din4 Case 40 : Set Mcp_cs End Select Return Jaki błąd w niej popełniłem? Twoja składnia i podejście do problemu wyglądają na prawidłowe, ale istnieje kilka kwestii, które warto rozważyć i sprawdzić, aby upewnić się, że wszystko...
Witam Chciałm zrobić automatyczną regulację obrotów silnika. Pierwszy silnik napędza drugi silnik który pracuje jako prądnica i muszę wraz ze zmianą obciążenia prądnicy regulować obroty silnika tak aby uzyskać stałe napięcie na wyjściu prądnicy. Do sterowania zastosowałem Atmegę 8. Napisałem taki programik i niby działa, ale ... regulacja jest zbyt...
Witam. Uruchomiłem mój prototypowy zegar widmowy lecz mam mały problem. Pozycjonowanie obrazu zrealizowałem za pomocą halotronu podpiętego pod int0. Problem polega na tym że wraz z ustawiniem wartości zmiennej A w przerwaniu od int0 wartość timera1 odmierzająca stałe odcinki czasu nie zostaje resetowana co skutkuje drżeniem obrazu. W jaki sposób w bascomie...
Cześć Chciałem prosić kogoś o wskazówkę jak poradzić sobie z problemem wyświetlania wartości "Wartosc2" poniższego kodu. Mój problem polega na tym że w momencie naciśnięcia przycisku ( w programie to Up, Dwn ) gdy na wyświetlaczach jest np 1.1 wyświetlacze "resetują" się i wskazują wartość 00 po zwolnieniu przycisku wyświetlona zostaje poprawnie kolejna...
Program winien wyświetlać godzinę na lcd 4x20 (jako duże znaki) a co chwila przełączać się w tryb kiedy pokazuje temperaturę i dodatkowo datę. Dodana jest także regulacja jasności LCD(PWM) wykorzystując fotorezystor(ADC). W załączniku program. Program działa przez pierwsze kilka minut dobrze, później temperatura pokazuje się w obu przypadkac 0 stopni,...
Witam serdecznie! Mam problem z inkrementacją zmiennej Z, ponieważ wszystko opiera się o dokładność przedstawiania liczby zmiennoprzecinkowej. Zamiast 0,1 pokazuje 0,09. Próbowałem już fusing(), frac() (wskazywanie liczby po przecinku, chciałem tą resztę zaokrąglać round() ) , może format() ale tu trzeba non stop konwertować zmienne na znaki z liczb...
Witam Kolegów i proszę o pomoc! Mimo napisania już kilku aplikacji w Bascomie, napotkałem problem, z którym się wcześniej nie zetknąłem i nie znalazłem nic na ten temat w sieci. Wykonałem czterokanałowy miernik napięcia, który będzie częścią pewnego urządzenia. Układ działa poprawnie, ale mam kłopot z zapamiętaniem wartości zmiennych tablicowych. Zadeklarowane...
Miałem na początku niski stan na pb.1 , wysłałem kod komendą Rc5send (w Bascomie AVR) i teraz mam cały czas stan wysoki . Co zrobić by wrócił do stanu niskiego ? Wpisanie komendy Reset portb.1 nie pomaga. A może tak ma być ? No ale jak wysłać kolejny kod ?
Witam Napisałem program który ma służyć do wprowadzenia zmiennej za pomocą 2 klawiszów. Jest to część większego programu. Dokładnie będzie to służyło do ustawiania godziny w zegarku. Program po analizie krok po kroku wydaje się wg mnie być dobry, tzn że powinien działać :) Jednak są małe problemy. Kiedy trzymam wciśnięty klawisz przewijania w górę to...
Mam pytanie jak w czyms takim ( --> kod ponizej) otrzymac ponowna mozliwsoc urzycia przycisku sw1 ? Gdyz z tego co widze kompilator nie pozwala mi w napisanych przeze mnie petlach urzyc go ponownie i jak np w 2-giej petli daje sw2 to juz wszytko dziala poprawnie...A wiec jak mam go ze tak sie wyraze zresetowac ? - zeby znowu by aktywny (sw1) ? Do If...
Może nie umie wstawiać? $regfile = "m88def.dat" $crystal = 1000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.5 , Rs = Portb.4 Config Portd = &B00001111 'portd 0 1 2 3 jako wyjscia portd 4 jako 1wire 5 6 7 jako wejscia Portd.5 = 1 Portd.6 = 1 Portd.7 = 1 Portd.3 =...
a to zależy 1. od taktowania zegara 2. od tego ile czasu zajmuje to co jest pomiędzy "for" a "next" ja z reguły w takich przypadkach ustawiam na płytce testowej dim a as word (zmienna od 0 do 65535) tu daję jakiś sygnał na wyświetlaczu np wyświetlenie na 1 wyświetlaczu for a = 0 to 10000 ... next tu daję kolejny sygnał na wyświetlaczu np wyświetlenie...
Witam, Proponuję spróbować tego, to kawałek kodu z mojego pliku pomocy w obsłudze termometru DS18B20: 'Odczyt temperatury z dokladnością do dziesiątych części $regfile = "89s8252.dat" $crystal = 12000000 Dim Odczyt(2) As Byte 'deklaracja dwóch zmiennych typu byte do których będą zapisywane dane z termometru Dim T As Integer , Przecinek...
Witam mam problem z programem do trawiarki mianowicie znalazłem na necie program do sterowania trawiarką chciałem do tego dopisać wybór menu żeby było jeszcze był drugi tryb sterowania trawiarką. Wgrałem program do uC i działało poprawnie potem chciałem wgrać ten sam program bez żadnych zmian na inna ATmege8 i okazuje się że teraz program działa trochę...
Witam, sorki ale nie znam gotowca AVT 2749 ani nie mam tego programu w całości, żeby tak sobie móc go na szybko przeanalizować a też nie chce mi się zgadywać. To jest tylko jakiś fragment programu, nie widać jaką częstotliwością taktowany jest procek?? (można się tylko domyślać) tak więc mogę tylko odnieść się do pewnych - zdaje się, że jasnych fragmentów...
W końcu jest tak jak kolega emarcus chciał? Czy ma jeszcze jakieś sugestie spostrzeżenia które z chęcią przeczytam Nie zupełnie tak chciał....(!) Poza tym nie jest łatwo analizowac twój program bo masz niekonvencjonalnie sporządzoną tabelę cyfr(!) przekonvertuj tabelę i podłączenie segmentów wg. kolejności jak niżej: (o wiele łatwiej analizowac)......
Przesyłam fragment kodu dla "paluch_gda" jedną cewką zapłonową na dwa obroty wału (pełny cykl pracy) na jednej cewce generowane są 4 takie "odcinki czasu" (iskra przeskakuje po raz na każdej ze świec), więc na 1 obrót wału przypadają 2 "odcinki czasu". Dzielimy więc wartość Nr (liczba "odcinków czasu" w 1 minucie) przez dwa i otrzymujemy prędkość obrotową...
Próbuję przeanalizować kod samplowy: $crystal - częstotliwość rezonatora $baud - prędkość transmisji po UART $regfile - deklaracja typu procesora b). konfiguracja automatyczna na podstawie wybranego uP: Loaderchip - stała - deklaracja, jaki uP będzie wykorzystany W zależności od tego ustawione zostaną zmienne: $loader - adres pod jakim znajduje się...
Mógłbym prosić o dokładniejsze wytłumaczenie tego przykładu bo nie bardzo wiem co miałbym tam pozmieniać aby ustawiać zegar w menu. Dodano po 4 Problem rozwikłany. Zapomniałem przeliczyć odczytana wartość hex na dec. Co do kwarca to nie mam pola masy wkoło wyprowadzeń oscylatora Pracujesz na zmiennych Date$ i Time$, to wszystko. Odnośnie kwarcu, nie...
Czyli nic nie zrozumiałeś z linkowanego programu. A szkoda... Zasada działania (podobnie jak dla wielu innych programów), to wykonywanie krytycznych sekcji w przerwaniach. Pętla główna może być zupełnie pusta. W programie głównym: 1. Zdefiniuj sobie 8 zmiennych (Parametr_x), które będą odpowiadały wartościom włączenia każdego z kanałów. Np. 100,47,198......
Już chyba działa! Po wciśnięciu panela w odpowiednim miejscu zmienia się utwór, nie "siepie" piosenki jak wcześniej,ale czasem przy którejś tam próbie przełączenia piosenki zwiesza się w taki sposób że otwiera kolejne piosenki jedna po drugiej wyświetlając jej tytuł nie odtwarzając żadnej i tak w kółko. Może to tylko kwestia drań sytków płytki uniwersalnej...
Jeśli chodzi o temperatury to w zasadzie ma to być tylko jeden czujnik, procedura obsługi była zaczerpnięta z mojego poprzedniego programu dlatego tak zostało. Usunąłem też podział na etapy, który tutaj nie będzie potrzebny i poprawiłem resztę wg. Twoich wskazówek. Co do deklaracji portów, przyciski mam podciągnięte sprzętowo do 1. Wygląda to tak: [syntax=basic4gl]'----------------------...
http://obrazki.elektroda.net/7_123635472... Prawie rok temu, zainspirowany konstrukcją pana Kamila Przychodzenia http://obrazki.elektroda.net/18_12363549... http://obrazki.elektroda.net/82_12363551... Płytka sterownika oraz płytka organizacji połączeń http://obrazki.elektroda.net/62_12363543... http://obrazki.elektroda.net/80_12363591...
jeszcze nie tak szybko z tą publikacją gdyż teraz mam drobny problem z odbiornikiem. Niby działa ale po pierwsze ta adaptacyjna zmiana podświetlenia powinna być płynna? U mnie praktycznie albo świeci na maxa albo lekko, tzn są tylko dwa stopnie świecenia + wyłączony. To jeszcze nie tak źle, bo gorszy jest alarm. Próbuję rozwikłać jak działa to w programie...
Witam Analizując http://www.elektroda.pl/rtvforum/viewtop... program w niektórych przypadkach mam problem ze zrozumieniem Dodano po 1 Napisałem coś sam ale coś nie działa dobrze. Dlaczego nie zmienia mi się zmienna ,,Liczba''. Gdy wciskam S1 lub S2 ( zmienia się ale jakoś dziwnie ) Poprawiono składnię fragmentu dotyczącego menu,...
Witam ponownie Sugestia Kolegi M. S. była pomocna. Całość wygląda tak [syntax=basic4gl] '************ Zegar 6 wyswietlaczy LED + PCF8563 $regfile = "m8adef.dat" $crystal = 8000000 $hwstack = 32 ' rozmiar stosu sprzętowego $swstack = 32 ' rozmiar stosu programowego $framesize = 32 $baud = 9600 '************ deklaracje portow - 74HC595 Config Portc.3...
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...
A nie da się jakoś prościej ogarnąć tego ? 'Powtarzaj jesli przycisk wcisniety While Pinb.1 = 0 Pwm1a = 0 Pwm1b = 255 Wend Waitms 1000 Każde dostarczenie sygnału/impuls z przycisku resetuje wartość zmiennej np. X do zera i cały czas pętla sprawdza czy wartość X ma 10 ( a dodawanie incr ograniczone waitms'em żeby warunek nie został za szybko spełniony)...
Już se poradziłem w inny sposób. Przechowuje wartość temp max i min w zmiennej sramowej, która codziennie o północy jest resetowana. Uzyskałem w ten sposób pomiar dobowy, który mi wystarcza. Temat uważam za zamknięty.
Sporo tego ( obsługa SD, PCF8563 + menu do ustawiania daty, obsługa PCF8574 w przerwaniu INT1 )- ale nie ma problemu - zmieniła się tylko zawartość podprogramu Pomiar była taka, jak w pierwszym poście oraz wyłączyłem w wyświetlanie na LCD tych wartości wskazań z DS18B20, oczywiście dostosowałem pozycje wyświetlania do LCD 4*20 - załączniku spakowany...
Nie wiem jaki masz pomysł na odczytywanie pozycji silnika przez potencjometr skoro attiny2313 nie ma ADC. Symulujesz program a czy tez wpisujesz przykładowe wartości danych które spodziewasz się w rzeczywistym układzie. Przed wejściem w obsługę podprogramu wpisz przykładowe wartości zmiennych Tu i Tm. Wtedy zobaczysz jak program się zachowa.
Ja bym to zrobił bez tablicy, bo szkoda pamięci... Przypominam, że Atmega8 ma tylko 1024 Bytes Internal SRAM Twój program skutecznie zjada 200 x 2 (2 tablice) x 2 (Wodr) = 800 Bajtów Czyli jeszcze jedna taka tablica i będziesz musiał kupować lepszy procek :) Wystarczą 2 zmienne i 2 ify. Dim Xmax As Word Dim Xmin As Word Xmin=1024 Xmax=0 For C = 1 To...
tak, o to chodziło. Zależność miedzy częstotliwością a OCR2 powinna być liniowa? Bo układ steruje obrotomierzem i niestety wskazania jego nie są liniowo zależne od „f” a powinny. W samochodzie są liniowo zależne od częstotliwości impulsów z cewki. Podejrzewam, że wypełnienie 50% wprowadza nieliniowość w obrotomierzu. Jak mogę zmniejszyć...
Ja to robię w następujący sposób (BASCOM AVR): 1. Trzymam temperaturę w zmiennej typu integer, np. 36.6 °C to liczba 366; 2. Aby wyświetlić temperaturę np. na LCD deklaruję zmienną typu string i przepisuję do niej temperaturę za pomocą funkcji Str(). Następnie formatuję przygotowany string przy użyciu funkcji Format i wyświetlam. Przykład: Dim Temp...
Żadnych WAITxx w przerwaniach!! Zapamiętaj sobie tę zasadę na zawsze (a przynajmniej do momentu, w którym będziesz wiedział co robisz) Multipleksowanie za pomocą przerwania powinno wyglądać tak: 0. n jest zmienną globalną, określającą numer wyświetlacza 1. początek przerwania 2. wygaszam wszystkie wyświetlacze 3. wystawiam na port segmentów dane liczby...
Hej, Próbuję zrobić menu ustawień swojego sterownika i kompletnie mi to nie wychodzi :( Menu ma być sterowane pilotem NEC (pilot działa poprawnie) Jak ja to sobie wymyśliłem: 1. ekran główny (tu jest OK) - przycisk strzałka w lewo przełącza ekran na zegar "MAXI" - przycisk strzałka w prawo przełącza na ekran główny - przycisk strzałka w górę blokuje...
Oki, udało się z tym, że wychodzi następny problem mianowicie w momencie rozpoczęcia transmisji aktualizuje zmienne, wyświetla ich wartości, ale niestety po odebraniu każdego słowa resetuje wartość zmiennej S i zaczyna odliczanie od nowa, co jest tego przyczyną ? Rozumiem, że komenda return powoduje powrót do miejsca gdzie przerwano wykonanie programu....
Siemka! Tak patrzę w ten Twój kod i pewnych rzeczy nie kumam, ale spróbujmy go przeanalizować. - Resetujesz 1-Wire i wykonujesz polecenie konwersji po czym czekasz 750ms i super :) tylko zastanawiam się po co odczekujesz kolejne 750ms po poleceniu odczytu scratchpad? To jest niepotrzebne, możesz odczytywać dane od razu. Poza tym rozbijanie Waitms 750...
wiem , że tak można tylko nie wiem jak mam napisać ten kawałek kodu :-) Możesz to zrobic na wiele różnych sposobów zależnie od taktowania processora i od możliwości wolnego timera. Załóżmy że masz dostepny timer1 (metoda najprostsza i najłatwiejsza). F(takt) = 1 MHz Konfigurujesz Timer1 w trybie normal z prescalerem =256 ; co da pełny zakres max 16.7...
do wyjść typu pwm nie używaj toggle. po prostu aby włączyć przypisuj wartość pwm=255, a dla wyłączenia pwm=0. np. tak: If Pwm1a <> 0 Then Pwm1a = 0 Else Pwm1a = 255 i to przy krótkim przyciśnięciu załatwi całą sprawę co do naprzemiennego pojaśniania i ściemniania dodaj mniej więcej coś takiego dim o1 as bit, o2 as bit i potem w przerwaniu: If...
Udało mi się poprawić mój program Jednym z większych błędów jest fakt że przetwanie jest zbyt długie i często nim całość podprogramu zostanie wykonana wartość w UDR jest juz inna. Dlatego na początek wprowadziłem zmienną w której przechowywana jest pierwsza wartość wpisana do UDR. Co tu będe ściemniać :) Oto podprogram '---------------------------------------...
Tak na szybko, bo wychodzę do pracy. Na przykładzie DS18B20. Zakładam, że komunikację z czujnikiem masz opanowaną, więc odczytałeś z czujnika dane i masz je w dziewięciobajtowej tablicy - u mnie to Sc(9). Do obliczania odebranej temperatury korzystam z funkcji, którą deklaruję tak: Declare Function Decigrades(byval Sc(9) As Byte) As...
Oj kolego, poważny błąd - zasilaj prawidłowo mikrokontroler: http://mikrokontrolery.blogspot.com/2011... Dzięki za upomnienie, faktycznie gdzieś to przeoczyłem, na schemacie ideowym nawet masa wisi :) Poniżej zamieszczam poprawiony schemat ideowy i płytkę w EAGLE. Widząc duże zainteresowanie kodem wrzucam wsad w BASCOM....
[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 Config 1wire = Portb.0 Config Pind.0 = Input : Portd.0 = 1 : Przycisk_plus Alias Pind.0 Config Pind.1 = Input : Portd.1 = 1 : Przycisk_minu Alias Pind.1 ` Config...
Ostatecznie podzieliłem jedną zmienną która po przekroczeniu wartości 250 resetowała się i zwiększała sekundy o 1 na dwie, Second i Second_2, przez co uzyskałem możliwość wywoływania funkcji obsługi przycisków co 500ms. Przy okazji dorobiłem migający dwukropek. Zegar działa, jednak dokładności jeszcze nie sprawdziłem. Oto gotowy kod: [syntax=basic4gl]...
wartość zmienna bascom resetować zmienna zmienna bascom
sterowanie fototranzystora prototypowy płytka słabo ciągnie odkurzacz
pompa ciepła daikin pompa ciepla
Renault Trafic 2010 2.0 dCi szarpie na zimnym silniku – przyczyny szarpania przy ruszaniu Zderzak poliftowy a przedliftowy Toyota Avensis T25