W twoim programie wg BASCOM-AVR są błędy: Error : 254 Line : 17 Variable expected Przepraszam za pomyłkę. W BASCOM-AVR, do przerwań od timera, powinniśmy użyć 'TIMER1_OVF' zamiast 'TIMER1 OVERFLOW'. Podobna sytuacja jest z przerwaniem od INT0, powinniśmy użyć 'INT0_ISR'. Najpierw musimy skonfigurować Timer1 i INT0, następnie włączyć przerwania. Kiedy...
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...
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...
Oczywiste że tak zawsze będzie. Tym licznikiem możesz liczyć tylko impulsy które są ukształtowane np z enkoderów, natomiast dla styków mechaniczynych musisz albo je ukształtować sprzętowo, albo zrobić debouncing programowy. Chodzi o to, aby z sieczki krótkich impulsów które powstają po wciśnięciu przycisku zrobić jeden impuls wydłużony. Można to zrobić...
Witam po raz kolejny. Zrobiłem to za pomocą przerwań, jak radziliście i można powiedzieć że działa. Niestety pojawił sie kolejny problem. Mianowicie, jak pogodzić obsługę przerwań z dwóch źródeł na raz? Mniej więcej chodzi o to, że na przerwanie int0 mierzy ten czas, zapisuje do zmiennej np "a" zeruje timer, a następnie czeka na przerwanie int1, mierzy...
Prosty program nawet w BASCOMie. Podajemy impuls z PLC na pin startujemy timer i liczymy czas. Jest impuls reset timera nie ma impulsu - reset PLC Start odliczania 60 sekund. I tak w koło. Dziesięć linijek kodu.
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
lepiej licz czas między impulsami będzie dokładniej przy słabych wiatrach lub zamiast 20 imp./obr. daj >200
Witam, też aktualnie bawię się impulsatorem na EVB4.3 M32 16MHz. Fajnie działa sterowanie w przerwaniu: http://www.elektroda.pl/rtvforum/topic14... Dołączyłem kondensatory 68 nF równolegle do styków. Na kwarcu 16 MHz nie ma żadnego problemu z liczeniem impulsów w obie strony. Musiałem tylko dokonać modyfikacji kodu ponieważ trafił mi się impulsator,...
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ść...
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...
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,...
Dzielenie przez liczbę inną niż wielokrotność 2 też jest łatwe - trzeba liczyć zarówno stany wysokie jak i niskie.
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...
Pokaż co napisałeś, ktoś na pewno Ci to sprawdzi i pomoże, jeśli Bascom to niestety na mnie nie licz.
A może troszkę od innej strony. Czy do tego liczenia trzeba korzystać z timera czy można użyć przerwania do zliczenia imp.????? Dodano po 1 Użyje twojego kodu emarcus i dam znać jak liczy .
Używasz INT0 i INT1 do zliczania impulsów na linii A impulsatorów, ustawiasz generację przerwań na opadające zbocze. W przerwaniu sprawdzasz linię B danego impulsatora, jeśli B jest w stanie wysokim, to masz impuls "w lewo", jeśli B jest w stanie niskim, to masz impuls "w prawo". Pozostaje jeszcze eliminacja drgań styków... ;) Timer1 wykorzystujesz...
https://obrazki.elektroda.pl/7406837400_... Chyba siła wyższa musi w tym maczać palce, bo przymierzałem się od kilku lat(!) z publikacją tego projektu i ciągle albo brak czasu albo skleroza... a tu trafił się konkurs no to jak nie skorzystać :) Urządzenie o, którym mowa w temacie to bardzo prosty i niezwykle przydatny (przynajmniej...
Ja tylko tak luźno dodam, że na pomiar impulsów z trzypinowego wiatraczka przy sterowaniu masą przez PWM bym nie liczył.
Dobry sposób wybrałeś, jest najdokładniejszy liczenie czasu pomiędzy impulsami na wejściu INT. Kontrakton jest bardzo złym źródłem sygnału dla procesora, stąd prawdopodobnie masz zakłócenia.
No ja to nazywam impulsami ale niech bedzie po fachowemu zbocze :) Wlasnie chcialbym liczyc opadajace. Chodzi tu o liczenie otworow za pomoca transoptora szczelinowego. Moze jais przyklad ? :)
Witam Mam problem z liczeniem impulsów z wejścia Pind.3 Atmegi8. Do wejścia mam podłączony czujnik magnetyczny umieszczony na wałku taśmy transferowej. Wiem że magnes nie jest najlepszym rozwiązaniem, ale potrzebuje zliczyć impulsy z niewielką częstotliwością. Problem polega na tym, że jeżeli taśma zatrzyma się w miejscu zwarcia czujnika to impulsy...
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...
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)...
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...
Po upływie 655.35ms następuje przepełnienie licznika, w takiej sytuacji trzeba utworzyć zmienną która będzie zliczać ilość przepełnień. Czyli jeżeli Err=1 wtedy przepełnienie = przepełnienie +1 ........ na koniec liczymy pełnywynik=(przepełnienie * 65535) + wynik .........
dziala widzi go pod adresami 160 i 161 liczy na lcd widać 0-60 a A jest 0
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
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...
Podłączasz do wejścia INT0 i konfigurujesz timer, masz do wyboru zbocza opadające... Przecież w AVR możesz podawać zliczane impulsy bezpośrednio na piny T0 lub T1 - obydwa Counter'y liczą w góre.
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...
Jakiś bałagan podajesz. 1. Nie podałeś wersji z debounce- która chodziła przy wolnych obrotach. 2. W programie który wkleiłeś nie ma żadnego odniesienia do Licz: Czy to jest podprogram czy obługa przerwania? 3. Po co w tym Licz wyłączasz prerwanie? Jak to jest obsługa przerwania- to i tak inne przerwania są wyłączone.
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...
Ja jakoś się doszukałem. A nie, sory. Nawet doszukiwać się nie musiałem. Liczy okres pomiędzy impulsami. Eh, Nie kazdy nosi imie Albert... e marcus
Bardzo dziekuje za zainteresowanie ale to nie ma być prędkościomierz tylko licznik najprostrzy w swiecie licznik który ma czekać na impuls który zliczy .Zwarłem pinb.0 do masy zgodnie z sugestia i tez nic licznik dalej liczy (niewiadomo co). Może nie robic tego na timer-ach? .
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="...
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,...
Tranzystor wymusza stan niski na pinie, prosty program zapalający diodę jak jest przesłona, działa. Oczywiście że jest dany rezystor. Problem polega na tym że jak zewrę do masy pin portd.2 to licznik cały czas liczy a chcę aby tylko raz dodał do zmiennej +1.
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...
A czy wiesz o tym ,że liczniki (nie wszystkie) mogą wprost liczyć impulsy pochodzące z zewnątrz? Po co używać Inty i co każdy impuls przerywać główny program, skoro masz do tego piękne narzędzie?
Nijak z żadnego kodu nie mogę się doczytać na chłopski rozum kiedy on mierzy czas od Rising do Rising. Nie używaj więc chłopskiego rozumu - użyj własny! Wyjaśnienie powinno być zbędne bo jest bardzo trywialne; - obracając wiatrakiem, w pewnym momencie wbudowany tam hall switch daje impuls na INT0, co wtedy robisz w programie? - odsyłasz go do etykiety...
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...
Witam, A gdyby timer (odpowiedzialny za regulację częstotliwości) po przepełnieniu wyzwalał swoim przerwaniem podprogram z poleceniem PULSEOUT ? Można w nim zadeklarować czas trwania impulsu a przez to regulować jego wypełnienie. Pozdrawiam, Owszem 'zmontujesz' w ten sposób jakąś kombinowaną PWM falę, której czas stanu niskiego jest liczony timerem,...
To nie Bascom jest przyczyną tylko źle napisany program ;). 1. odczyt timera1 16bit odbywa się po przez rejestr pomocniczy TEMP, ten rejestr jest też używany przez inne procedury i funkcje i jeśli jest użyty to właśnie niszczona jest wartość High timer1 bo ona tam jest wpisana gdy używasz komendy. wpisując tak timer1 do tablicy możesz gubić High timer1....
Moim zdaniem to powinno wyglądać tak: po pierwsze wzór na prędkość V=s/t - czyli prędkość=droga/czas. Musisz mieć "coś" co mierzy przebyty dystans i podaje impulsy do procesora. Musisz wiedziec jaki dystans jest przebyty co każdy impuls. Cała filozofia polega na tym żeby zmierzyć czas trwania od impulsu do impulsu. Znając ten czas trwania i drogę,...
No proszę Cie. Liczenie impulsów ma być pewną metoda transmisji? Może nie doradzaj w ten sposób? Widziałeś kiedyś dokumentację popularnego kodeka sprzętowego? Mniemam, że raczej nie. Co do istoty problemu, zastosuj kodowanie Manchester i dodatkowe zabezpieczenia ramki i będzie 100% pewnie! robiw
Proszę szanownych kolegów o potwierdzenie mojej koncepcji; Atmega8 z kwarcem 4.194304MHz, Timer2 konfiguruję na CTC z presk.1024 co daje mi 4096Hz Do timera2 wpisuję 127 i na OC2 mam 32Hz (31,25ms) Teraz te 32Hz podaję na T1 timera1 (16bit) skonfigurowanego jako CTC z ext.source, i z wpisaną wartością 1919. Na wyjściu OC1 stan zmieniać się będzie co...
Chcę zrobić obrotomierz do samochodu na atmedze+wyświetlacz LCD 2x16. Program pisany w bascomie Jako sygnał wejściowy chciałbym urzyć sygnału z komputera od zapłonu, sygnał prostokątny 5v, 2 impulsy na obrót. Odpaliłem narazie taki łysy układ z wyświetlaczem tzn atmega8+lcd+stabilizatr + dwie diody którymi sprawdzałem czy wszystko działa. Nie ma żadnych...
Witam. Można by się obejść bez zewnętrznego generatora - po prostu sterować linię T0 (lub T1) z pętli programowej, która by liczyła czas 1ms. Pogorszyła by się dokładność pomiaru, ale przy tak wolnych przebiegach i tak byłoby nieźle. Pozdrawiam.
'$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...
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 Pracuję nad projektem hamowni. Napisałem prosty program na arduino do zliczania czasu pomiędzy kolejnymi impulsami i następnie wysyłania danych na port com. Mój problem polega na tym że program jest za wolny i nie radzi sobie najlepiej przy dużych częstotliwościach. Poniżej zamieszczam kod programu. Macie jakieś propozycje jak go poprawić. Czy...
Witam. Piszę sobie sterownik temperatury w Bascom '51 i mam problem z przerwaniem. Otóż serce układu to AT89C52 do niego jest podłączony RTC DS1678. Ustawiłem RTC, aby na wyjściu INT generował co sekundę impuls. Podaję ten impuls na wejście INT0 procesora. W obsłudze przerwań dałem ustawienie zmiennej Bit na 1, na podstawie jego inicjuję w pętli głównej...
OK . Jeżeli chcesz uzyskać taką dokładność położenia , to wcześniej zwalniasz napęd i dochodzisz do położenia na małej prędkości . Są wersje enkoderów posiadające trzeci kanał dający 1 impuls / obr. Jeżeli na dużej prędkości będziesz liczył pełne obroty , a dokładne pozycjonowanie zrobisz na małej prędkości ( np 100 obr / min ==== 120 mikrosek. ) bascom...
Dziękuję wszystkim za pomoc. Problem rozwiązałem inkrementując w przerwaniu od INT0 zmienną typu Long, przy tym typie wszystko również z liczeniem jest OK, tak więc co bym w pętli głównej nie robił liczenie cały czas jest prowadzone. Dopiero tą wartość już w pętli głównej przeliczam sobie i wyświetlam. Ale nie rozumiem dlaczego nie mogłem w przerwaniu...
Jeśli chcesz kolego miec super dokładnoś bo tej niestety komenda wait tobie nie zagwarantuje to może użyj baterii układów np. 74193 są to programowalne liczniki binarne. Połączone w szereg mogą dać tobie zadowalającą wartość np. 32 albo 64 bitową. Taktowane impulsem np. o szerokość 1us po zaprogramowaniu wygenerują impuls przeniesienia albo pożyczki...
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....
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...
Najdokładniej będzie zmierzyć czas pomiędzy impulsami z enkodera - możesz do tego użyć trybu input capture (ICP) timera1. Przy max. prędkości obrotowej masz ok. 100 zdarzeń na sekundę. Przy min. prędkości możesz zwiększać preskaler timera żeby wykluczyć przepełnienie bez "łapania" impulsu. Jeśli odstępy między impulsami z dekodera nie są identyczne,...
Attiny15 nie ma pamieci ram, wiec raczej cieąko sie na niego kompiluje jezyki wysokiego poziomu. Jeden timer generuje nośną 36kHz, a długość impulsów mierzysz zliczając wygenerowane impulsy: 1 bit rc5 trwa 1.782ms, czyli w bicie mieści się 62.2 okresów sygnału 36kHz. Przy nadawaniu włączasz COM0A[1:0] na "toggle", a przy braku nadawania na "normal port...
Potrzebuje zmierzyć samo wypełnienie impulsów nie wiem jak za to się zabrać. Potrzebuje badać sygnał idący na serwo modelarskie. By wiedzieć na 3 diodach jakie jest jego położenie. Proszę o jaką kolwiek pomoc. Oczywiście nie chodzi mi tu o zrób za mnie... ale nie wiem od czego zacząć. Rozumowanie moje jest takie przychodzi impuls odpala się timer. Liczy...
Spróbuje napisać sam, ale w razie wątpliwości liczę na pomoc. Pozdrawiam
Możesz użyć Timer0, ale przy zboczu rosnącym, to możesz liczyć tylko zwalnianie przycisku podłączonego do masy a nie jego naciśnięcia. Jeden warunek : Timer0 musi mieć wejście podpięte przez rezystor do zasilania układu, aby jakiekolwiek zbocze rosnące tam wystąpiło.
(at)asembler - no może trochę demonizowałem co do przerwań zewnętrznych. Wszystko zależy od tego jak zaprogramuje się obsługę tych przerwań. W każdym razie i tak myślę, że w tym konkretnym przypadku (tak czułem, że coś z samochodem jednak będzie :) ) lepiej będzie wykorzystać jeden timer (do wyznaczania stałych odcinków czasowych) i odpytywać w tym...
Cześć Fyszo czy Ty jestes niemodyfikowalny? Jakie to ma znaczenie czy to wejście czy wyjscie dekodera? dyskutujemy nad tym tak długo że wypadałoby pogooglać jak wyglada dekoder do PPM. Wprowadzamy do rejestru przesuwnego impulsy, za każdym impulsem logiczna jedynka przesuwa sie na nastepne wyjście kanałowe, w jaki sposób ma to się zazębiać ? Wybacz...
Przepraszam, jęsli to nie właściwy dział (gdzie się udać ?) Liczy cały czas, a jak wcisnę i 3mam to się zatrzymuje, dziwna sprawa. Faktycznie pom to zbędny parametr. Nie wiem co z tym zrobić, już na starcie sięzraziłem, co ciekawe na symulatorze jest ok :( Pozdrawiam Szlufik
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ą...
ale liczy OK. Cyfra jednostek jest na swoim miejscu dziesiatek tez itd. Poprostu po wcisnieciu reset gasza sie 3 wyswietlacze a nie wyswietla zera na jednosciach. Potem gdy nacisne przycisk na jednosciach wyswietla sie 1
1 obrót cylindra to 1 arkusz więc jeśli na osi umieścimy "podziałkę" z drukarki atramentowej HP (taki foliowy krążek z naswietloną podziałką) i element odczytujący (takze z tej drukarki) wtedy uzyskamy kilkaset impulsów na 1 obrót - czy wtedy bedzie łatwiej? np. 1 obrót = 500 impulsów 500 impulsów = 1 ark. 250 impulsów/sek = 0,5 ark/s =1800ark/h Zakres...
Ja też do tej pory pracowałem głównie na asemblerze 8051. Ale postanowiłem przesiąść się na AVR i stąd ten nieszczęsny BASCOM. ALe już widzę że choć narzędzie jest proste to ma wiele ograniczeń. Asembler pozwala wszystko zrobić optymalnie i precyzyjnie w BASCOM-ie jest to dosyć dyskusyjne. Co masz na myśli mówiąc o "cofkach enkodera" ? W układzie który...
...zadaj sobie sam pytanie czy warto i czy obsługa programowa impulsatora nie rozwiąże Twoich prob;emów... Robiłem licznik na AT90s2313 podkręconym do 12 - 18MHz, liczyłem assemblerem. Impulsator dający 10000 impulsów gubił się przy prędkości powyżej jednego obrotu na sekundę, a założeniem jest zdaje się, zliczanie impulsów z częstotliwością 120kHz....
Oba procesory taktowane są kwarcami zewnętrznymi. Co prawda mają różne MHz, ale to nie ma znaczenia. Pierwszy uP jest tylko testowym sygnałem podającym impuls. Docelowo ma liczyć drugi uP i zupełnie inne impulsy. Spróbuję jeszcze dokładniej zrobić podanie impulsu z uP1 na przerwaniach. Powinno to chyba wyeliminować zmienny błąd pomiaru i dać stałą błędu...
Kombinujecie jak koń pod górkę. Jakieś wyliczenia, przeładowywania sprzętowego licznika, jakieś PWMy... ' Copyright by ZbeeGin $crystal = 8000000 ' ========================================... ' STEROWANIE TRIAKIEM Config Int0 = Change On Int0 _sync50hz Triak Alias Portd.6 Licz = 49 Impuls = 0 Regimpuls = 0 ' licznik timer0 - generator...
Ad 1. Nie że chce jednocześnie INT0 i Timer0 wykożystać do liczenia tych samych impulsów. Tylko jak wpisuje: config Timer=counter gate=internal mode=1 enable interrupts enable timer0 a impulsy podaje na P3.4 to timer nie liczy nic. Dla pewności załączałem też dodatkowo przerwanie INT0 (rozumiem że to bez sensu). Chyba że ustawienie na zliczanie zbocza...
Po pierwsze ten układ na tranzystorze jest do bani. Zauważ że przy skręceniu na zero potencjometra tranzysotor najprawdopodobniej pójdzie z dymem. Po drugie warto by dać na kolektorze rezystor do masy, po trzecie na bazie dałbym diodę aby i rezystor podciągający do 5V aby układ reagował tylko na napięcia poniżej 5V. Ale jest jeszcze jeden błąd . Przecież...
nie liczyłem tego , napisałem tylko o pomysłach jakie przyszły mi do głowy na hasło "linia opóźniająca". żeby zwiększyć dokładność w metodzie z rejestrem, można połączyć kaskadowo np. 4 sztuki i zejdziemy z błędem do 0,5 stopnia. oczywiście częstotliwość rośnie. można by spróbować napisać rozsądny soft do jakiegoś małego procka, gdzie impuls powodowałby...
Programuje uC rodziny AVR hobbystycznie na razie, ale często mam problemy poprawnością działania moich programów, czasami zdarzają mi się jakieś kolizje zdarzeń w programach, przez co jakaś funkcja czy procedura nie działa prawidłowo lub jest pomijana, diody migają nie równo, multipleksowanie wyświetlaczy 7seg działa nieprawidłowo i pokazują się artefakty......
Jestem w trakcie naprawy części sterowania rozrzutnika do nawozu AMAZONE i tam jest to troszkę inaczej zrobione , nie mam schematu ale spytam czy nie mają akurat do tej płytki co ją naprawiam to schemat niepotrzebny bo jest mało skomplikowana pracuje jako czujnik położenia klapki dawkowania i jest to zrobione tak że układ zlicza impulsy za pomocą transoptora...
Witam. Nie istotne jest co wpiszę w: Load Timer1 , 250 czy też Load Timer1 , 65000 liczy tak samo. Dodatkowo stosując prescaler nawet 8 uzyskam częstotliwość blisko 20Hz czyli chyba nie bardzo jak pracę diody. P.s proponuje zerknąć do helpa:) Opis: Instrukcja powoduje wpisanie do licznika określonej liczby zliczanych impulsów. Przed załadowaniem wartości...
robiw, szelus: Ale rozrzutni jesteście z tymi timerami. Ale dzięki za pomoc. Docelowo to ma być na attiny2313 z dwoma timerami - a ten drugi będzie potrzebny do mierzenia czasu pomiędzy wysłaniem paczki impulsów a odbiorem sygnału odbitego od przeszkody. attiny2313 ma trzy rejestry uniwersalne GPIOR "ukryte" między innymi rejestrami i docelowo zamierzam...
Witam! Pierwsze kroki z uC, czyli próba stworzenia zegara matki dla czasomierza podobnego do $regfile = "m8def.dat" $crystal = 2000000 Config Pind.0 = Output Config Pind.1 = Output Config Timer1 = Timer , Prescale = 64 Dim Licz_2s As Byte Dim Parz As Bit Enable Interrupts Enable Timer1 Load Timer1 , 62500 Licz_2s = 0 Parz = 0 Do Loop End Odmierz_1m:...
Co prawda nie w bascomie, ale ja to robię przy wykorzystaniu timera. Na początku impulsu zeruję go, a później tylko czekam aż liczba odczytana z niego będzie równa lub większa niż wyliczona wartość. I to właściwie tyle jeżeli chodzi o zasadę. Moża też to zrobić przy wykorzystaniu rejestrów komparatora danego licznika (OCxX) lub przerwań, ale to już...
Dziękuję za wszystkie miłe słowa, bardzo mnie one cieszą i jak najbardziej motywują do dalszej pracy :) (at)DmZ Tak, ten element jest w pełni ogarnięty ;) Zasada działania jest dość prosta - montujesz czujnik tak aby mierzył odległość od lustra wody, potem wykonujesz ciąg prostych obliczeń: Najpierw odejmujesz od odległości czujnika od dna taką odległość...
Dr_dead....źródłem impulsów są kontaktrony, albo poprawniej zwarcie styku kontaktronu powoduje powstanie impulsu. Sprawdzę oczywiście wydajność żródła zasilania ale nie sądzę aby tu była przyczyna problemu. Raczej liczone sa jakieś"śmieci" z drgającego styku....i moje pytanie raczej skierowane było w tym kierunku. Zastosowałem parametr , przy konfiguracji...
Witam, Jestem początkujący w programowaniu bascom chcę zrobić licznik impulsów podawanych na timer o jako licznik . Zrobiłem licznik ale liczy max 255 a ja potrzebuje licznik z 99999 . Nie bardzo wiem jak mam to zrobić .Proszę o pomoc $regfile = "m8def.dat" 'Info dla kompilatora. $crystal = 16000000 'Informujemy kompilator o kwarcu 16MHz....
Dziekuje, ale nie o to mi chodziło. Być może bezwładnośc wału serwa jest duża, ale elektronika serwa może przyjąć zakłucenie i przynajmniej po pewnym czasie zmienic jego ustawienie. Ale i nie o to mi chodziło :P Chodziło mi o to że jak procek akurat przejdzie do wysyłania impulsu do serwa a wtedy właśnie wystąpi przerwanie, to obsługa tego przerwania...
wiem ze ktoś powie ze jest tego pełno na forum ale.. za długo siedzę przy projekcie i chyba już głupieje :| częścią projektu ma być licznik impulsów, impulsy pochodzą z fotorezystora, jest 6 takich czujników które podają je z różnymi częstotliwościami (do 5kHz), mam na pokładzie atmege8 (do16MHz) wiem że nie mogę zrealizować 6 liczników naraz, wiec...
A tak w ogóle to nie powinieneś ładować 200 ? Tmer liczy do góry więc 255 - 55 = 200 lub coś koło tego Nie. Load timer0 = np. 50 Każe Timerowi 0 policzyć 50 impulsów i wywołać przerwanie. Próbowałem działanie z funkcją RC5Send ale to nie możliwe. Pozatykałem diodę papierkami, a ty i tak TSOP odbiera komendy. Może mi ktoś powiedzieć jak wykonać czujnik...
Jak w temacie - cała sprawa dotyczy diody RGB sterowanej switchem - całość chciałbym zrealizować w oparciu o attiny13. Jako, że moje doświadczenie w pisaniu programów w Bascomie jest prawie żadne i dopiero co zaczynam prosiłbym, żeby ktoś z doświadczeniem pomógł mi w napisaniu programu w Bascomie, który będzie sterował pracą diody RGB za pomocą jednego...
"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,...
Temat archiwalny i kolega zapewne rozwiązał swój problem. W Bascom są dwa ciekawe polecenia: pulsein oraz pulseout. [syntax=vbnet] '--- odczyt impulsów Dim A as Byte Dim Freq as Byte Do Pulsein A , Pind , 2 , 0 If A <> 0 Then Incr Freq Else End If Print Freq Loop '---------i wysyłanie impulsów Do Pulseout Portb , 2 , 1 '<--- długość impulsu...
Impuls B resetuje licznik A, który liczy do 1? Tak. Jak pojawia się sygnał B to później sygnał A zaczyna od nowa. Dodano po 2 Wszystko zależy od tego, co rozumiesz przez "prostotę". Osobiście dałbym tam mały mikrokontroler i naskrobał pięć linijek kodu w Bascom. I Twój pomysł już wybiega poza prostotę. Nie ukrywam że na elektryce znam się mega podstawowa,...
z tym ładowaniem timera to jest tak że timer startuje od wartości 0 i liczy sobie w górę, aż doliczy do 255 wtedy jest zerowany i zostaje wywołane przerwanie, natomiast instrukcja load timer0, x wpisuje do timera wartość wg wzoru: 256 - x dzięki czemu timer musi zliczyć tylko x impulsów żeby nastąpiło przepełnienie(oraz w tym wypadku przerwanie), tylko...
Tu masz program pod ATtiny2313, jeśli potrafisz programować, to też potrafisz przerobić program na ATMegę: [syntax=basic4gl]' Bardzo prosty zegar bez możliwości ustawiania Dim Sekjed As Byte , Sekdzies As Byte , Minjed As Byte , Mindzies As Byte Dim , Godzjed As Byte , Godzdzies As Byte , Mux As Byte , Migaj As Bit Config Portb = 255 : Portb = &B255...
Witam Troszkę przedobrzyłeś s tym licznikiem 16 bitowym, starczy połowa 8 bitowego, wróćmy do obliczeń, autor pisze o 4 impulsach na obrót, Ty o 2 i to wydaje mi się bliższe prawdy. Maksymalne obroty 7000, na sekundę daje nam to koło 117 obrotów, chcesz mierzyć 0,5 sekundy i i dwa impulsy na obrót czyli 117 impulsów przy maksymalnej prędkości obrotowej....
tzn. nie zapodaje 12V impulsow na INT0 (no nie do konca). Sa one podlaczone przez diode prostownicza zaporowo na wejscie INT0. I kiedy sie pojawiaja uklad odbiera je jako stan niski i zlicza impuls... Zapewniam ze dziala bezblednie - jezeli impulsy sa podawane tylko na moje wejscie INT0, bo jak wspomnialem wysterowuja one jeszcze jakis przekaznik albo...
WItam :) Zwracam sie do szanownych doświadczonych kolegów o podpowiedź. Bawię się ostatnio mikrokontrolerkiem atmega8 w sterowanie servem (hitec hs-55). Program piszę w Bascomie i bardzo chciałbym załapać jak sensownie uzywać timera i przerwan (nie chcę uzywać bascomowskiego config servo). Po pierwsze... Czy na 8 mhz kwarcu mogę sterowanie sensownie...
Ale odpowiedzi dla nouki? W Bascomie można wstawić wartości do rejestrów, niekoniecznie w asemlerze. Ja to robiłem tak: Set Tccr1b.cs10 'start timer1 Else 'a jak nie Czas = Timer1 'odczytaj czas (liczbę zliczonych impulsów) z timer1 Reset Tccr1b.cs10 'zatrzymaj licznik Timer1 = 0 'wyzeruj licznik(żeby po następnej zmianie wyjścia komparatora mógł liczyć...
W jaki sposób napisać obrotomierz 0-10000 obr/min z dokładnością około 50 do 100 obrotów? Potrzebuje zrobić regulator obrotów silnika prądu stałego-czyli PWM ze sprzężeniem zwrotnym zrobionym na hallotronie. Ale najpierw musi być zrobiony obrotomierz, który czuwa nad obrotami-więc musi bardzo często sprawdzać ilość obrotów. Najlepiej zliczać czas jednego...
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ą...
liczenie bascom arduino liczenie impuls liczenie impuls stm32
wykonac potencjometr muzyk pendrive philips update
mikrokomputer cobra1 cegowy mastech
Jaki olej do Opla Vectry B DTI? Specyfikacje i zalecenia Potencjometr do płytki GDK 42 A1 w spawarce TIG THE 224 AC/DC Digital Plus