(at)ElektrodaBot 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.
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,...
Te coś takiego , to jest układ do resetowania procesora w momencie włączenia zasilania i nie służy do eliminacji drgań S1 (R10 jest nie potrzebny). Jak chcesz zliczać szybkie impulsy to zrób to na zewnętrznych przerwaniach , jeżeli ma to być tylko liczenie ile razy przycisk został naciśnięty , to powinno wystarczyć If Pinc.4 = 0 Then waitms 200 Incr...
Czesc.! Mam problem chce w Bascom napisac program.ale nie wienm jak. Portc.0=input Portc.1=output Portc.2=output Na Porcie c.0 jest przycisk ,na dwuch kolejnych portach Portc.1 i Portc.2 mam wyjscia Led. teraz : Port c.0 jest aktywny jeden z portow C.1 jest tez aktywny. Na porcie wejsciowym sa liczone impulsy jezeli ich bylo np: 100 to liczenie i wyjscie...
chce to liczyc przy pomocy mikrokontrolera AVR (AT90S2313) Strona "domowa" Bascom'a: aplikacja AN115 ;-)
Impulsy pobieram przy liczniku z kabelka który wg "Sam naprawiam ..." pochodzi od czujnika drogi umieszczonego przy skrzyni. Do zliczania impulsów wykorzystałem timer0 (oczywiście znalazłem przykład), który liczył i podbijał mi zmienną. Zrobiłem 10 km i sprawdziłem wynik. Było 5150 więc podzieliłem aby zamienić na m i wyszło 5,15 Nic mi się nie zgadza...
Nie ma rejestru który by to zliczał. Chyba że podepniesz wyjście OC1A do wejścia innego Timera, np. T0. Tylko że nie masz już Timerów 16-to bitowych a tylko 8-mio bitowe. Praktycznie więc zostaje tylko zliczanie zmiennej. W BASCOMie przerwanie będzie się wykonywało ze 100 cykli. Minimalna wartość jaką możesz więc wpisać do OCR1A żeby nie zwiesić programu...
witam mam taki problemik bo wyczerpały mi się pomysły potrzebuje zrobić licznik na wejściu x który zlicza liczbe a następnie zapisuje ją sobie i licznik sie zeruje i od początku. Niedawno bawie sie w bascomie i nieumię sobie ztym poradzić za pomoc bardzo dziękuje.
Witam Napisałem program który zlicza impulsy z przycisku ale nie chce mi wyświetlać wyniku, wyskakuje taki komunikat: Error : 35 Line :30 3 parameters expected a to jest ten program: Dim J As Byte , D As Byte , S As Byte , T As Byte Dim Wynik As Byte Config Portb = 255 : Portb = &B11111111 Config Portd = &B1111100 : Portd = &B1111111 Cls Do...
Cześć. Czy ktoś wie jak obsługiwać w Bascomie Impulsator (Kliker=> nastawnik impulsowy => nastawnik obrotowy=>wszystko to to samo), element bardzo użyteczny (zastępuje tradycyjny potencjometr), a jakoś żadko stosowany. Już kiedyś pisałem post na ten temat, ale prawie nikt nie zareagował. Może ktoś budował jakiś układzik z tym elementem, może ktoś miał...
Witam obecnych. Czy ktoś z Was ma program którym można byłoby obsłużyć enkoder impulsowy tak aby dla pewności każdy impuls był próbkowany 2 razy.Zmienna licznika w programie byłaby zmniejszana lub zwiększana w zależności ok kierunku obrotów. Jest taka opcja w bascomie "encoder"lecz nie wiem czy jest to wystarczająco niezawodna metoda na pewny oczyt...
Cześć. Mój problem polega na tym, iż muszę oprogramować stosunkowo prosty układ. Na jego wejściu pojawiają się impulsy dodatnie, które przez rezystor i tranzystor npn zwierają nogę procesora do masy. Oczywiście ta noga jest programowo podciągnięta do plusa. Teraz do rzeczy - muszę w głównej pętli programu zawrzeć następujący warunek: - gdy podam jeden...
nie wiem czemu ale w bascomie licznik co ileś impulsow dodaje mi impuls "lewy" . // pokrótce// mam czujnik indukcyjny(max 500Hz) który liczy ilość nawiniętej folii , impuls jest co 8 centymetrów - przy około 100 m/min . chodzi mi o dokładnośc nie gorszą jak 0.5% . parametry : procek 2313 kwarc 10 mega timer ,odświeżanie wyświetlacza co 0.5s przerwanie...
Witam. Robie cyfrowy licznik w bascomie i wiekszosc mam juz ustalone. Chciałbym aby licznik mial mozliwosc ustawiania cyfrowego filtru czestotliwosci impulsow. Np. na jakies wartosci 50Hz, 100Hz, 500Hz i 1kHz. Chodzi o to ze gdy ustawie mu filtr na 100Hz zeby nie naliczal impulsow szybszych niz ta zadana w filtrze. Wiekrzosc fabrycznych licznikow ma...
Witam Nie moge poradzić sobie z napisaniem programu na AVR lub '51, który: Na wejściu np: A.1 będzie zliczał impulsy i od razu na wyjściu np: A.2 będzie podawał impulsy np o 10% większe Przykład: Wejście A.1 = 700impulsów/sek Na wyjściu A.2 = 10% więcej , czyli 770imp/min Proszę o pomoc Pozdrawiam
Witam. Chcę napisać program do obsługi enkodera, problem polega na tym że podczas widzenia się diody nadawczej z odbiorczą program zlicza spora ilość impulsów a chcę aby do zmiennej dodawało tylko +1. Proszę o pomoc. Enkoder podłączony jest bezpośrednio do atmegi i działa, błąd jest w programie. Pozdrawiam http://obrazki.elektroda.pl/2316951800_1...
Cześć. Czy ktoś z was bawił się kiedyś obsługą impulsatora. (Takie coś jak potencjometr, tylko ze bez ograniczeń co do kręcenia i działa na innej zasadzie:podwójny stycznik). Chodzi mi o jakiś program w bascomie lub coś podobnego. Pozdrawiam Jacek
Witam serdecznie Mam pewien dylemat, problem Sprawa dotyczy Bascoma Mam Encoder 360 imp / 360 st wyjścia A, a oraz B , b (A i B stan wysoki oraz a i b stan niski) Między A i B jest przesunięcie impulsu o 50% do zliczania impulsów poszły 1 liczniki INT0 oraz INT1 Wszystko zlicza szybko itd Problem dotyczy rozwiązania a żeby bez zaprzęgania jakiejkolwiek...
Potrzebuje zmierzyc za pomoca AVR i do tego najlepiej BASCOMA liczbe impulsow i czas trwania kazdego z nich w okreslonym czasie oczywiscie lub sam czas trwania wszystkich impulsow. Podobno AVR ma jakas mozliwosc mierzenia etgo sprzetowo wejscie ICP? jesli tak prosze o konfiguracje timera/licznika do tego. Nie moglem znalezc sensownego tematu jesli ktos...
Witajcie! Dziś właśnie jest ten dzień, w którym 1 raz zasiadłem do mikrokontrolera mega8 i pod bascom próbuje coś takiego: Chciałbym zliczać liczbę wciśnieć przycisku np na porcie d.0 i wynik wysłać wyświetlacz na lcd zrobiłem tak [...] Impuls Alias Pind.0 Config Impuls = Input Dim Wartosc As Integer Dim Pom As Integer Wartosc = 0 Pom = 0 Set Pind.0...
otóz chciałbym zrobic potenjometr elektroniczny i do tego celu chciałbym uzyc diody i tego odbiornika co jesz w myszy (to co jest ta rolka z zebami) tylko mam pytanie jak zrobic w bascomie zeby mi zliczal w góre i w dół?[img][/img]
witam Jestem poczatkującym programistą w bascomie i mam problem a mianowicie jak nauczyć procesor rozpoznawania za pomocą dwóch pinów portu że ma dodawać obroty a kiedy odejmowac. Koniecznie muszą być dwa pini nie wiecej . Prosze o pomoc i z góry dziekiuje
Może napisz 2 częstościomierze oc1a ,octb - oczywiście liczysz ilość impulsów -tak jak napisałeś. ilość imp. odpowiadać musi stopniom 'C skrypt na hertz'miarke : 'Częstościomierz nieco dokładniejszy Config Timer1 = Counter , Edge = Rising Do : Timer1 = 0 : Start Timer1 Waitms 999 'tu można skorygować wynik Stop Timer1 : Cls : Lcd "F="...
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...
Dzielnik przez 8 i 9 możesz zrobić na którymś timerze sprzętowym wbudowanym w procesor. A realizacja dzielnika przez 8,5 musi być programowa: Próbkujesz sygnał wejściowy i każda zmiana stanu sygnału wejściowego powoduje inkrementacje zmiennej co daję dwie inkrementacje na okres sygnału (stan wysoki i stan niski liczone osobno). A dalej pozostaje wykrycie...
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....
Witam Mam sygnał z pinu PCF8583 (INT), który zmienia swój stan na przeciwny co sekundę. Chciałem napisać program, który zacznie liczyć impulsy (stan niski) doprowadzony z wyjścia PCF8583 do nogi procesora, jak policzy np. 5 takich impulsów, to zaświeci led. Pierwotnie miało to służyć do opóźnienia włączenia podświetlenia w LCD, ale użyłem Waitms i osiągnąłem...
Czy widziałeś kiedyś wrzutnik monet (czytnik) Samo liczenie monet nie jest tak skomplikowane jak stworzenie wrzutnika który rozpozna czy dana moneta jest 1, 2, 5 , 0,50 , 0,20 , 0,10 PLN czy nie jest to po prostu blacha. Chyba ze skorzystasz z gotowego wrzutnika i dopiero wtedy jego kanały (wyjścia ) podłączysz pod swój układ. Niektóre wrzutniki mają...
Pisze programik w bascomie (51'), który między innymi ma zliczać czas od włączenia układu. T0 i T1 będą wykorzystane do liczenia impulsów (ale to dopiero później) Wymyśliłem sobie, że czas będzie mierzony na podstawie licznika w głownej pętli programu tzn: Do Debounce P3.0 , 0 , Przycisk , Sub Gosub Opcja Incr Czas Waitms 50 Wczas = Czas * 20 Loop No,...
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,...
Zapomniałem dodać, że muszę jeszcze zliczać sygnały z ośmiu wejść w czasie rzeczywistym (przyjmuje się, że 1000/sek). A jakie doświadczenie z uC posiadasz Kolego? Po postach sądząc niezbyt wielkie, Języki: C (MCS51, AVR, MC68k) E Amos Pascal (PC) Bascom CUPL Asembler i maszynowy: 6502 Z80 MCS51 MSC48 MC68k AVR Z8 PIC Zaprojektowane urządzenia oparte...
Nie wiem czy kod w Bascom na coś Ci się przyda ale właśnie na takiej zasadzie jak w tym programie zrobiony mam pomiar prędkości wiatru w moim pozycjonerze. Troszkę inaczej wykorzystuję tu timery niż założyłeś ale... Zostawiłem Ci tylko fragment odpowiedzialny za liczenie impulsów i dodałem obsługę wyświetlacza. Program jest na tyle prosty, że z interpretacją...
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...
lepiej licz czas między impulsami będzie dokładniej przy słabych wiatrach lub zamiast 20 imp./obr. daj >200
Powiedz coś więcej, jak podajesz te impulsy - przyciskiem?
No program się kompiluje- ale oczywiście nic nie robi. Co robisz z pojawiającym się na Pinb.1 sygnałem? -nic. Końcówką przechwytującą jest Pinb.0. Ale co z tego że zapisze stan- i tak uruchamiasz Timer1 i on sobie liczy coś co nie ma żadnego związku z danymi. Impulsy przychodzą z halotronu co 1ms-to dość szybko- ale nic się z nimi nie dzieje. Zdecyduj...
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...
W procedurze wyświetlania zapisany jest warunek wygaszanie zer nie znaczących, a po przekroczeniu 255 cyfra setek wyświetla 0 i ono nie gaśnie. Czyli zmienna liczy się nadal, co wskazuje rzeczywiście na problem z wyświetlaniem a nie liczeniem. Po wpisaniu "na twardo" Liczba_nok = 987 Liczba_ok = 654 wyświetlacz pokazuje 287 i 154
jak chcesz takie duze czestotliwości mieżyć to musisz użyć timera żeby liczył zewnętrzne impulsy, wtedy drógim timerem wyzwalasz przerwanie co określony czas (im dłuższy tym lepszy bo pomiar dokładniejszy) liczysz ile było ilmpusów z zewnątrz w okreslonym czasie. wydaje mi się że tą metodą dało by sie mieżyć nawet do 100Mhz ale jest jedno zalożenie...
Spróbuje napisać sam, ale w razie wątpliwości liczę na pomoc. Pozdrawiam
Czyli bardziej taki komputerek podkładowy, bo licznik, jak sama nazwa wskazuje, liczy impulsy, ew. prędkość.
Może: Licz: If Co_robic = 0 Then 'Odliczanie przerwy Incr Licz_przerwe If Licz_przerwe > 1000 then Licz_przerwe = 0 Co_robic = 1 End If Else Incr Licz_impulsy If Licz_impulsy > 4 Then 'Odliczanie okresu przebiegu (4 - okres = czas 4 przerwań Timera) Toggle PortD.4 Incr Licz_przerwe 'Odliczanie ilości impulsów (10/2 = 5 impuslów)...
Timer skonfigurowany jako Counter liczy impulsy z zewnątrz, a nie mierzy czasu.
Tak, będziesz mógł. Jeśli chcesz liczyć w czasie (a nie chcesz) to mierzony przebieg doprowadzasz do wejścia zegarowego timera, w efekcie każdy impuls powoduje zwiększenie wartości licznika o jeden. Skoro chcesz mierzyć szerokość impulsu to wykorzystujesz wejście ICP timera - timer taktujesz z maksymalną częstotliwością, z kolei impulsy z obrotomierza...
Spróbuj zrobić tak Co4ms: 'procedura obsługi przerwania od Timera T/C0 wykonywana co 4ms Timer0 = 6 'załaduj do Timera0, żeby zliczył 250 (=256-6) impulsów Incr Licznik If Licznik = 6 Then 'zmienna Licznik liczy do 6 aby Licznik = 0 'sprawdzanie stanu przycisku następowało If Pind.0 = 0 Then 'co ok.24ms If Pomoc = 1 Then 'jeśli zmienna Pomoc...
Witam Proszę o pomoc. Potrzebuję wykonać okład mierzący bardzo krótkie odcinki czasu. START podanie impulsu na któryś pin, STOP podanie drugiego impulsu na kolejną nóżkę. Procesor Atmega32 język Bascom. Jaki najmniejszy odcinek czasu mogę zmierzyć ? Jak wygląda procedura pomiaru czasu miedzy Start a Stop? Bardzo proszę o podanie fragmentu kodu. A czy...
Trzeba mierzyć czas impulsu i jeśli wynik = ileśtam to wtedy dzieje sie cośtam Może : $regfile = "twój uP" $crystal = twój crystal Config Timer1 = Counter , Edge = Rising Config Portc = Input Do If Portc.1 = 1 Then Start Timer1 If Portc.1 = 0 Then Stop Timer1 End If End If For Timer1 = 100 To 200 Reset Porta.1 Next For Timer1 = 300 To 600...
Właśnie czas pomiedzy impulsami da ci wiarogodny wynik. Chyba, że czas pomiaru będzie na tyle długi, że da ci zadowalającą dokladnosc. Np. na wolnych obrotach w samochodzie(ok 900 obr/min) masz 15 obr/sek (co ok 60ms) natomiast przy 10000obr/min masz impuls co 6ms. Przy podstawie pomiaru 50us (liczenie czasu pomiedzy impulsami) masz dobrą dokładność...
Ten sposób też będzie powolny a do tego niedokładny. W sumie doszedłem do wniosku że programowe zliczanie impulsów nie będzie gorsze. Zliczanie 4 impulsów trwa 10us w symulacji programowej. Zauważ że w tym pierwszym rozwiązaniu mnoży się przez 28 a więc dokładność pomiaru jest do kitu. Przy 4000rpm układ zlicza tylko 160 impulsów. Możesz dać Prescale...
Podejrzewam że jak dałeś "Start Timer0" to Bascom "olał" ustawienie "Config Timer0 = Counter , Edge = Rising " i zaczął liczyć. Ale nie sprawdzałem-sprawdź sam.
Witam ! Zastępując fragment programu : 'If Impuls = 0 Then 'Incr Licznik 'Waitms 100 'End If Debounce Pind.5 , 0 , Licz , Sub i dopisując : Licz: Incr Licznik Return Otrzymamy program zliczający pojedyncze impulsy. Pozdrawiam. Stefan
Dzielenie przez liczbę inną niż wielokrotność 2 też jest łatwe - trzeba liczyć zarówno stany wysokie jak i niskie.
"Portd.7 sobie "miga" z jakąś tam częstotliwością. Nie za szybko. Chciałbym zliczać te impulsy" Oczywiście że możesz je liczyć, potrzebujesz tylko zmiennej pomocniczej która będzie powodowała że program skoczy tylko raz do liczenia gdy PORTX będzie w stanie wysokim lub niskim, np: Do If Portd.7 = 0 And Zmiennapomocnicza = 0 Then Gosub Plus_jeden_czas...
Bo timer0 liczy mi impulsy jak zatrzymam watem to pogubi mi impulsy. Tak jest czy się mylę ?
Ok po kolei, wywalam wszystko z programu, zostawiam tylko...... zmienna impulsy jest zwiększana o kilkanaście a nie tylko o jeden ............ Licz: If Scisk = 1 And Ok = 1 Then Incr Impulsy Elseif Scisk = 0 And Ok = 1 Then Decr Impulsy End If Return Kontaktron (Reed switch) generalnie jest stosowany jako proxy switch, czyli w ukladach statycznych....
Chcę napisac własny program z wykorzystaniem Timerów. Na początek proszę o wytłumaczenie dlaczego w poniższym programie: 1. wykorzystano podzial częstotliwości zegara (po preskalerze 256) 250/125 zamiast wykonac jedno dzialanie? 2. uzyto wartość początkową Timera0 = 250 przed Petlą do Loop End . O ile wyjaśnienie podane przez Tomq jest błędne(!) Load...
Witam, Nic nie przeszkadza w tym, że to bascom. Prescaler jest ustawiony na 64 więc zanim licznik zdąży zwiększyć swoją wartość to uC już załaduje do niego odpowiednią wartość. W Twoim programie jest pare błędzików, które może nie wpływają na dokładność pomiaru, ale są głupie :) konfigurując porty, dla pewności możesz napisać: set ddrb.2 set ddrb.3...
Z listingu programu nie mozna doszukac sie jaka metode przyjmujesz w pomiarze RPM. Ja jakoś się doszukałem. A nie, sory. Nawet doszukiwać się nie musiałem. Liczy okres pomiędzy impulsami. Ale przerwanie to powinno wyglądać tak: Przerwanie: Zmienna = Timer1 Timer1 = 0 Wynik = 7500000 / Zmienna Return Preskaler Timera ustaw na 64. A: Capture Edge...
Dzięki... i rozumiem, że Counter0 liczy do 255, ... W trybie , który przedstawiłem - tak , ale w innych trybach, gdzie TOP może stanowić rejestr OCR0A , jest inaczej. a wypełnienie przebiegu wynosi Pwm0a/255? Dokładnie rzecz ujmując Pwm0a/256 Z jaką częstotliwością działa PWM (domyślnie chyba 500kHz)? Da się ją regulować? Mówiąc ogólnie - częstotliwość...
'$sim $regfile = "m8def.dat" $crystal = 8000000 'Config Lcdpin = Pin , Db7 = Portb.0 , Db6 = Portb.1 , Db5 = Portb.2 , Db4 = Portb.3 , E = Portb.4 , Rs = Portb.5 'Config Pinb.3 = Output Config Portb = Output 'Config Timer2 = Timer Prescale = 1 , Compare = Toggle , Clear Timer = 1 Enable Interrupts Ocr2 = 102 Tccr2 = 25 'Enable Timer2 'Enable...
Ja tylko tak luźno dodam, że na pomiar impulsów z trzypinowego wiatraczka przy sterowaniu masą przez PWM bym nie liczył.
"Jak ustawisz minimalną dla 2 stanów to wykresem jest linia prosta" Oczywiście, jak sama nazwa wskazuje PWM to Pulse-width modulation.(modulacja szerokości impulsu) Jeśli zasilisz układ napięciem 24V to przy wypełnieniu PWM=255 będziesz miał 24V. Jeśli ustawisz wypełnienie 50% czyli PWM= 127 to teoretycznie powinieneś otrzymać 12V. Dlatego proponowałem,...
Napisz dokładnie co chcesz otrzymać? Jakie jest zadanie bo opisałeś to niejasno. Chcesz odmierzać czas 1 sekundy czy liczyć impulsy zewnętrzne? Jaki zegar dla procka? robiw
Nie,ma liczyć litry tak jak dystrybutor. Dodano po 2 Nie wiem w jaki sposób dodawać litry do zmiennej po przekroczeniu określonej liczby impulsów z przepływomierza. To co znalazłem to liczone wszystkie w czasie, a tu chyba chodzi o przepełnienie licznika.
Witam. Pewnie się da to co w tytule ale do rzeczy. Stanąłem przed trudnym zadaniem (trudnym dla mnie bo jak do tej pory to udało mi się mignąć diodą przy pomocy uC). Chciałem zrobić układ sterownika do bramy wjazdowej do domu. http://www.elektroda.pl/rtvforum/viewtop... Sterownik będzie miał za zadanie : 1. czekać na sygnał z pilota (odrębny...
liczenie impulsów liczenie bascom liczenie impulsów stm32
dekoder zablokowany ferguson citroena evasion czujnik pralka
Krups Evidence EA81 – mokre fusy w pojemniku, wilgotna kawa po parzeniu, regulacja młynka Mazda CX-7 2.3 Turbo - Przyczyny Braku Mocy