Tak wiem że należy odpalić timer na początku i zatrzymać na końcu i odczytać jego wartość.. no nic. Dziękuję za wypowiedzi tak czy inaczej.. Odp. kol. Draco była troche sarkastyczna, bo na tak prostą procedurę nikt, kto ma choć troche rozeznania w tej dziedzinie chyba (!) nie szuka pomocy. Mopzesz to zrobić na kilka sposobów: 1. mierzyc czas metodą...
Hej Czas powinien byc liczony timerami po to one sa. EDIT Oki czyli widzę to tak: Timer 1 mode=1 'liczy swoje Timer0 mode=3 'dwa liczniki 8-bitowe TL0-impulsy,TH0-zegar No dobra i co teraz? Przejrzałem helpa i forum i o mode=3 zbyt wiele nie znalazłem ;) Na mode=1 nie ma problemów. Jak startuje counter, a jak timer pod T0? Jak odczytuje ich wartości?...
Robi się to prosto na wejściu ICP Atmegi, mierzysz czas pomiędzy kolejnymi zboczami, raz jest opadające, raz narastające itd.. potem to tylko interpretacja wyników, liczenie bitów i po odliczeniu 64 bitów z transmitowanych 66, bo dwa ostatnie dla uproszczenia procedury pomijasz. wyświetlasz na LCD lub wysyłasz po RS232 do komputera, a tam wyświetlasz...
... Ale niestety jak na razie pisze tylko tak jak potrafie :( No tak ... hmmm ... każdy orze , jak moż... umie ;) Męcze się z tym co kolega tutaj podał, teraz odświerzanie to raz na sekunde :( Dopisałem to do podprogramu "save" aby na bieżąco, od razu po obliczeniu uaktualniał dany słupek, tzn Nie wiem czy zauważyłeś , ale podany przeze mnie "podprogram"...
Napisz program w Bascom dla Atmega8, który będzie liczył pojedyncze impulsy w ciągu 24 godzin z zapamiętaniem najkrótszego odstępu między tymi impulsami, wynik wyświetlał na wyświetlaczu 2x16 opartym na HD44780. Oczywiście, chętnie pomogę Ci napisać ten program. Poniżej znajduje się kod, który powinien zrealizować to, co opisujesz. Wprowadziłem kilka...
(...) żdy zasilany z osobnego źródła i odseparowany transoptorami PC817. Ze względu na ich szybkość oraz niską wartość prądów je sterujących 1mA zegar musi być obniżony do 10KHz ma. Chcę zrezygnować z polecenia: waitus 100 w zamian zrealizować to w obsłudze timer0 a w główną pętle przeznaczyć na inne cele. Rozumiem, że chcesz optymalizować swoje oprogramowanie...
Mam zbudowany sterownik, który na podstawie pewnych danych włącza jakieś urządzenia. Działa w ten sposób że odpowiednio wcześniej musi załączyć wyjścia, aby np: o godzinie 11 był proces zakończony. Z algorytmu wychodzi że należy rozpocząć 3 godziny i 45 minut wcześniej i jak to obliczyć. Jak zapisać działanie aby po odjęciu od 11:10 np: 20 minut wyszło...
Nie wiem czy dobrze się wyraziłem ale potrzebuje zrobić coś takiego co po spełnieniu warunku z instrukcji if odliczy odpowiednia ilość czasu i wykona inne zadanie oczywiście nie zatrzymując programu który musi być wykonywany bez przerwy. Tak sobie wymyśliłem ,że użyje funkcji clock z parametrem user i programik który będzie wywoływany co sek będzie...
Witam. Napisałem taką prostą funkcję, ale nie działa tak jak bym tego chciał. Parametrem wprowadzanym do funkcji jest liczba (w moim przypadku typu byte) Funkcja ma zwracać wynik w formie zegara czasu tzn. zmienna byte = 75, funkcja zwraca string 01:15 Wszystko działa dobrze ale tylko do 9sekundy, później zaczyna mi to opóźniać, tzn. wynik jest wyświetlany...
Witam, Mam mały problem z pomiarem prędkości za pomocą Timer'a (Bascom). Może napisze krótki opis problemu: Na początku wyznaczyłem sobie ile impulsów na metr daje auto, wyszło 5,15. postanowiłem więc mierzyć w stałym czasie te impulsy i przeliczać na km. Jak się okazało takie podejście jest ok ale skoki prędkości są o kilka km np: 22, 25, 29 km/h ......
Witam. Praktyczne pytanko: w jaki sposób, określić ilość cykli zegarowych niezbędnych na wykonanie poszczególnych instrukcji języka Bascom AVR, np. getadc(), if, input oraz w jaki sposób obliczyć rzeczywisty czas potrzebny na wykonanie pojedynczej instrukcji, znając wartość rezonatora kwarcowego, oraz użyty mikrokontroler?
Witam chcę aby po wybraniu podprogramu trwał on określony czas np 2 godziny no max 2,5 pózniej kończył pracę i wracał do głównego programu Jak to zrobic próbowałem coś kompinowc z timerem ale raczej niedam rady może ma ktoś prosty programik aby możnabyło po upływie danego czasu wyłączac np jakiś podprogram
Koledzy znając życie to pewnie problem wynika z mojej niewiedzy. Mam podprogram Który ma mi zliczyć czasu załączenia pompy. W tym celu wykorzystałem sobie przerwanie które generuje mi przepełnienie co 500ms. W warunku Flagi 500ms jest zmienna (kala(n))która jest zwiększana co 500ms jeśli pompa jest załączona. Załączam sobie pompę np na 3,5s czyli zmienna...
Witam chciałbym wykonać prosty stoper w bascomie. Stoper ma odliczać czas po przyciśnięciu: S1 - Start S2 - Stop S3 - Reset Mam już początek, tylko nie wiem jakiej funkcji użyć do samego odliczania i sterowania z przycisków. Chciałbym żeby stoper wyglądał tak jak na zdjęciu z tym że obok Czas było odliczanie. http://obrazki.elektroda.pl/6557276700_1...
Witam Mógłby mi ktoś powiedzieć jak to napisać, żeby program zliczał impulsy z pinu przez określony czas np. 10sec Pozdrawiam ;)
Witam. Mam wielką prośbę: może ktoś umie policzyć ile czasu zajmie wykonanie poniższej pętli (w Bascomie): Do Pin = P3.0 Incr Wewn Loop Until Pin = 0 Or Wewn = 4000 Dokładnie chodzi o to aby dobrać tak wartość zmiennej Wewn w warunku pętli aby nie przekroczyć maksymalnego czasu 15ms. Chodzi o to aby niezależnie od stanu P3.0 program wyszedł z pętli...
Witam, popełniłem takowy program do sterowania ogrzewaniem i zapętliłem się nieco na funkcji start/stop odliczania pozostałego czasu do wyłączenia urządzenia. Poniżej fragment kodu: [syntax=basic4gl]'----------------------... GLOWNA----------------------------------... Do If Flaga_4ms = 1 Then 'co 4ms Flaga_4ms = 0 End If If Flaga_100ms =...
Witam Wszystkich Mam małą prośbę jeśli ktoś może mi podpowiedzieć? Jak policzyć wartość (czas poświęcony na obsługę przerwania), którą trzeba dodać do wartości wpisywanej do licznika T0. Mam napisany program timer'a w bascom, który lekko opóźnia. Wiem że błąd wynika z braku korekty wartości o czas, który procesor poświęcił na przerwanie. Proszę o pomoc,...
Witam, tworzę sobie mały licznik w Bascomie, wszystko ładnie mi już odlicza, proszę tylko o małą poradę - w jaki sposób za pomocą dwóch przycisków (+ i -) regulować szybkością odliczania liczby? Teraz posługiwałem się Do For Licznik = 0 To 9 Print Licznik Waitms 500 Next Loop teraz jak wykonać regulowanie czasu przerwy - czyli prędkości odliczania?...
Mam taki problem, iż w głównej pętli mam wywołania paru procedur. Część nich ma się wykonywać za każdym wykonaniem pętli (np odbieranie podczerwieni) tu nie może być opóźnień. ale za to inne potrzeba mi wykonać np co 30 sek. Do Call pilot() ' ma pracować bez opóżnień Call komunikacja() ' ma się wykonywać co np 30 sek Call kontrola()...
Witam. Napisałem program zegara na timer1 (atmega8) z zewnętrznym kwarcem. Chcę, by podczas przytrzymywania przycisku do ustawiania czasu naliczało coraz szybciej lub chociaż co 5. Próbowałem wielu przykładów ale żaden nie chce działać poprawnie. Mój fragment kodu: Do Call Wyswietl_czas If S1 = 0 Then Waitms 25 If S1 = 0 Then If Przysp = 0 Then Incr...
Witam. Przeszukałem już forum, ale nie rozwiązałem problemu. Chcę zrobić komputer spalania do samochodu. Najpierw zaczynam od pomiaru prędkości, bo bez tego nie policzy się spalania. Od razu trafiłem na problemy. Kod: $regfile = "m8def.dat" $crystal = 4000000 ''''''''''''''''''''''''''konfiguracja portów'''''''''''''''''''''''''''''''''' Config...
u na dole to jest jakiś sobie mój zwykły programik w Bascomie pod 2313. Chcę zrobić urządzenie do przesyłania dźwięku, więc potrzebna mi jest dokładność i duża szybkość. Niestety nie wiem ile czasu zajmuje mu ustawienie jakiegoś pinu w stan wysoki lub cokolwiek. POMOCY! INTERESUJĄ MNIE CZAS WSZYSTKICH POLECEŃ Z TEGO PROGRAMU! ----------------------------------------...
No to jest progres poczytałem kilka "chłopsko" napisanych pdfów i jest światło w tunelu. Chyba nawet zrozumiałem wszystko. Wiem dlaczego problem ze zrozumieniem miałem... Doszukiwałem się czegoś z kosmosu a tu takie proste zagadnienie. Natomiast chciałbym poradzić się odnośnie samego liczenia spalania chwilowego. Wychodzą mi dość wielkie liczby po kalibracji....
Liczenie impulsów samo w sobie jest bezsensowne.. jak już to liczy sie impulsy przez określony czas albo podczas jakiegoś warunku itp, możliwości jest tak dużo że bascom niezostał w to wyposażony (bynajmniej ja tyle wiem). impulsy najłatwiej można zliczać za pomocą zewnętrznego przerwania, przez czas działania timera, timer uruhomić, uruhomić przerwanie,...
Deklarujesz zmienną do liczenia czasu po wciśnięciu przycisku. Gdy puścisz przycisk, określona wartość wykonuje GOSUB do wykonania zadania(LCD czy sterowanie portami) i zeruje zmienną. Kolejne naciśnięcie przycisku zaczyna liczenie od początku i czeka na puszczenie przycisku. Możesz też wykorzystać TIMER do liczenia czasu.
Nie piszesz czy to ma być liczenie w jednostce czasu ani jakie zbocze Cię interesuje (opadające/narastające)... Jeśli to tylko zwykłe liczenie impulsów to rozwiązanie jest wprost banalne. Najpierw określ jakie zbocze ma liczyć. Odczytujesz stan portu i czekasz na jego zmianę jeśli się zmieni wtedy "INCR coś tam", czekasz na powrót do zbocza i wracasz...
Witam, przepraszam że dopiero teraz odpisuje ale dopiero teraz znalazłem troche czasu na wznowienie projektu. Dziękuje za pomoc. Wcześniej miałem zrobione tak: Select Case Text Case 0 : Pion = Lookup(linia_zmian , Dig_0 ) ...itd... Case 104 : Pion = Lookup(linia_zmian , Big_pz2 ) End Select A tablice znaków wyglądały tak: Dig_0:...
Właśnie, tylko teraz czy liczenie tego czasu między impulsami w przerwaniu INT0 będzie pokazywać dobre wyniki. Jak widać wcześniej już próbowałem tak liczyć i pokazuje bzdurne wyniki, to mój obecny kod: [syntax=vb]'--------------------KONFIGUR... $regfile = "m16def.dat" 'informuje kompilator o pliku $crystal...
Przepraszam za dłuższą nieobecność. Nie mając nic nowego (i mądrego) nie pisałem. Ale w międzyczasie polutowałem zestaw startowy, a ostatnio napisałem inny program, który umożliwia (w zamyśle) liczenie dokładniej częstotliwości dla "paczki" impulsów, tym razem około 500 Hz. Wiem, że to dosyć skomplikowany tok myślenia, pewnie można to zrobić prościej,...
Witam, Na początku dzieki za wszelkie wskazówki - nie sądzilem ze ktokolwiek zechce pomóc :] Pilocik jest na tyle malutki i na tyle fajniutki (zailany pastylką CR2025) ze szkoda mi go troche psuc by sie dowiedziec co tam siedzi :P raczej jest sklajany albo na jakies zatrzaski zlozony do kupy bo srubek nie widac :| Podlaczulem sobie pod wejście karty...
Przerobiłem program na ATtiny2313 dodałem jeszcze jeden przycisk i ustawiłem baud dla TX i RX przeliczyłem Compare0a (za pomocą kalkulatora z MkAvrCalculator) nie bawiłem się już w ręczne liczenie :) Zmieniłem też ustawienia portów gdzie wpisałem już w konfigurację portu podciąganie dla D1 teraz wygląda to tak[syntax=vbnet]$regfile = "attiny2313.dat"...
Witam mam przed sobą kod w Bascomie, komputera samochodowego, liczacego spalanie itd...Nie rozumiem jednego fragmentu: Poczatek: Timer1 = 0 Start Timer1 Do If Pind.5 = 0 Then Incr Impw ' PinD.5 = nóżka T1(11) Loop Until Timer1 = 15067 Stop Timer1 Impw - impulsy wtryskiwacza Jak sie domyslam kod ten ma liczyc czas trwania kiedy wlaczony jest...
Lcd "<- " ; Liczba_krokow ; " "
po mojemu powinieneś zmienić "Inc" na "Incr" Inc jest mnemonikiem asemblerowym i działa na bajcie Incr jest poleceniem Bascom i powinien działać na longu.
Cześć. Właśnie liczę crc32 ze stringu '123' na trzy różne sposoby (C++, Bascom AVR, kalkulator online). Wyniki C++ i kalkulatora online się pokrywają. To co wylicza Bascom AVR nie pasuje do reszty: Program w C++ http://obrazki.elektroda.pl/5493373900_1... Z kalkulatora online wynika to samo: http://obrazki.elektroda.pl/6030248600_1...
1) tak 2) tak 3) nie wiem o co chodzi ;) 4) Wszystko jest w datasheecie ladnie opisane, mozesz tez sciagnac sobie program avrcalc jak nie chce ci sie samemu liczyc ;)
On będzie się zwiększał o 1 w tym przypadku, bo wartość przesunięcia przekazywana do funkcji też się tak zwiększa. Jeśli jednak np. zacząłbyś przesuwać w prawo to funkcja nie działałaby prawidłowo, poza tym musiałbyś tą wartość zapamiętać poza funkcją dla danego napisu (tak, jak teraz przesuniecie ). Dlatego trzeba to liczyć.
No to jeszcze zapowiadana wersja turbo (przy założeniu że zmienna Dystans jest zmienną 16-to bitową): [syntax=basic4gl]On Compare1a Timer1_isr Nosave ... ... Timer1_isr: push R16 In R16, SREG push R16 push R17 lds R16, {Dystans+0} lds R17, {Dystans+1} subi R16, 255 sbci R17, 255 sts {Dystans+0}, R16 sts {Dystans+1}, R17 pop R17 pop R16 !Out SREG, R16...
Ja już chyba na to odpisywałem, albo deja vu:) Nie Timer nie liczy stanów a zbocza... tak można na takie i takie zbocze liczyć... Ty zapewne chesz liczyć na zbocze opadające...
Pind.2=0 to chyba masz prawie cały czas- przy przejściu przez 0 diody w transoptorach przestają świecić, tranzystory się zatykaja i przez chwilę na kolektorach- czyli na wejściu procesora masz 1. Może licz jedynki.
Witam ! Spróbuj tak: [syntax=vbnet] 'Licz = 1234 Jedn = Licz Mod 10 Licz = Licz / 10 Dzie = Licz Mod 10 Setk = Licz / 10 Setk = Setk Mod 10 [/syntax]
Tak poza tematem, czy to sie nie pisze "Load Timer0, 100" ? i zrob timer0=cos na starcie i w przerwaniu.
Witam ! Spróbuj tak: [syntax=vbnet] 'Licz = 1234 Jedn = Licz Mod 10 Licz = Licz / 10 Dzie = Licz Mod 10 Setk = Licz / 10 Setk = Setk Mod 10 [/syntax]
chce to liczyc przy pomocy mikrokontrolera AVR (AT90S2313) Strona "domowa" Bascom'a: aplikacja AN115 ;-)
Powodzenia, a na pomoc w C zawsze możesz liczyć :)
spojrz powyzej odbierasz ją jako LONG jeśliby się nie dało to proponuje dim Licz as long at 120 DIM B1 as Byte at 120 overlay DIM B2 as Byte at 121 overlay DIM B3 as Byte at 122 overlay DIM B4 as Byte at 123 overlay inputbin b1,b2,b3,b4 oczywiście adres 120 jest przykładowy- wiadomo ze zmienna licz zajmuje 4 kolejne bajty
przykład zmienna1=liczba.8 oznacza ze zmienna1 przyjmie wartość bitu osiem ( tu będzie 1) twojego słowa 101101100 licząc od prawej strony, liczenie zaczynamy od pozycji zero.
Nie ma, timer2 na as i liczysz na piechotkę , oczywiście kwarc musi być podłączony (32768 na osci osco).
A ile maksymalnie możesz (chcesz) policzyć bo np: przy kwarcu 12Mhz taktów zegara po 10s jest 120 000 000, taktów maszynowych 10 000 000. Widzisz, że liczby robią się dosyć poważne wiec ten LCD musi mieć dużo miejsca do wyświetlenia. Do liczenia najlepiej użyć timera w trybie 16bitów. Za każdym razem jak policzy do końca wiesz że taktów zegara było...
No to zaprezentuj układ i swój program, a my pomożemy. Na gotowca nie licz.
Nie liczę.
tylko co sprawdzić ? próbowałem jeszcze z filtracją napięcia zasilania uP i z filtracją na wej. Pinb.0 - nic to nie dało . Niewiem co liczy timer0
Zrób tablice z wartością końcową dla 60 wartości, będzie szybciej niż liczyć na piechotę! Bascom powinien liczyć tangens funkcji, ale przecież to mały AVRek, a wartości jest tylko 60
CRC8 liczy CRC z określonej liczby bajtów danych. Checksum liczy sumę kontrolną ze stringa. Czyli nie dość że działa na innych parametrach, to jeszcze to nie to samo (CRC <> suma kontrolna). Ja bym zrobił tak: W nadajniku liczysz CRC. W odbiorniku też liczysz CRC i sprawdzasz czy zgadza się z tym któro było policzone w nadajniku. Tyle. Licz co...
To ten program co ci podalem jest idealny do tego. http://www.fastavr.com/fastlcd.zip Nie bedziesz musial liczyc niczego na kartce
Zrobiłem bez tego set, bez rezyztora poprostu hamsko zwarłem i chyba działa. Na "chyba", to ja bym nie liczył. A jak masz podłączone te przyciski i o jakim rezystorze piszesz :?:
ADS1100 komunikuje z AVR 90S4433, mam karte katalogową ale komunikacja przy użyciu I2C nigdy mi nie wychodziła a i nigdy mi nie była potrzebna (aż do teraz). Programy pisze w BASCOM i jak do tej pory mi wystarczył Nie rozumiem, liczysz że bascom napisze w zamian za Ciebie program?
Jakiś użytkownik też miał z tym kiedyś problem, rozwiązał to w taki sposób: Pinb.0 = 0 ' pin RW Waitms 100 Initlcd Nie sądzę, że jest to potrzebne, gdy pin został skonfigurowany w config lcdpin . Co z tą częstotliwością? W symulatorze raczej jest podany czas wykonywania kodu (sprawdź bez $sim ). Nie podałeś, jaki masz kod, ile się wykonuje na mikrokontrolerze,...
Proszę sobie przeczytać o PRINT i INPUT, a nie liczyć na gotowce.
Przydał by się kod programu... Jeżeli wyłączasz timer to po jego ponownym włączeniu zaczynasz pewnie liczyć od 0 pomimo, że nie udało się doliczyć do potrzebnej wartości licznika. Ale to tylko przypuszczenia...
Emarcus on liczy przepełnienia timera, który generuje przerwania, co 4ms i coś tam robi w przerwaniu. Ostatnia linijka postu, który cytujesz.
To są 7-seg? Co chcesz liczyć? Poczytaj o multipleksowaniu.
tzn tak: taka konfiguracja zrobiona tylko po to żeby sprawdzić czy działa ten sposób. Pozatym skill niezbyt wysoki (raptem od tygodnia w tym siedze), dlatego chciałem zasięgnąć rady od starszych:). Właśnie nie do końca rozumiem te przerwania. Można na wejście dawać stan niski, jako impuls przerwania? A wracając do tego mojego pomysłu... Co w nim jest...
lepiej licz czas między impulsami będzie dokładniej przy słabych wiatrach lub zamiast 20 imp./obr. daj >200
Spróbuje napisać sam, ale w razie wątpliwości liczę na pomoc. Pozdrawiam
Po prostu raz odczytujesz id termometrów i potem na stałe zapisujesz je w odpowiednich tablicach, zamiast stosować instrukcji wyszukujących układy na magistrali. --- Choć z tego co wiem o magistrali 1wire czujniki powinny być zawsze wyszukiwane w tej samej kolejności, stąd może masz jakieś błędy w komunikacji (np. poprzez za długi kabel złej jakości...
liczenie bascom liczenie czasu impulsów bascom liczenie impuls
iveco daily ciśnienie oleju transmiter sieciowy powerline warsztat warszawa
MikroTik Netwatch: Monitorowanie i Automatyzacja Ciśnienie sprężania w silniku TZ-4K-14 Slavia 1D-90 TA – wartości nominalne i graniczne