Prototyp zrobiłem na pomiarze napięcia (ADC) na fotodiodzie - to chodziło, dopóki nie zacząłem testu na dworze.... Fotodioda łapała podczerwień z... no właśnie, skąd? Nie wiem. To oczywiste. Światło z otoczenia również zawiera podczerwień, więc pojawiają się zakłócenia. Po odłączeniu fotodiody i dotykaniu kabelkiem do + na wyświetlaczu także pokazywały...
Jeśli wyeliminujesz drgania przycisku, to najprościej to zrealizować podając wyjście przycisku na wejście zegarowe jednego timera (bedzie on zliczał ilość wciśnięć), a drugi timer wykorzystać do odmierzania czasów 1s - dokładnie co 1 s należy kasować licznik pierwszego timera. Ot i wszystko.
Sygnałem wyjściowym hallotrona jest napięcie. Tak więc przez 1/2 LM358 pracująca jako komparator i zasilona napięciem takim jak procesor. Ważna jest biegunowość napięcia wejściowego.
Muszę użyć układ dwóch timerów ponieważ w docelowym układzie zakres czasowy Timera1 będzie za mały. Czy procesor zliczy na T1 impulsy generowane na OC2 ? Obawiam się sytuacji, że przy wspólnym CLK gdzieś mi się zbocza miną pomiędzy OC2 a T1 i układ nie zatrybi... Oczywiście że zbocza te mogą się minąć, ale to jest bez znaczenia. Podczas synchronizacji...
Co zrealizować? Programowe zliczanie impulsów? Ustawiasz timer tak, żeby generował przerwanie co 100 us, sprawdzasz stan portu, robisz xor z poprzednim stanem i testujesz, które bity są ustawione - ustawiony, znaczy zaszła zmiana stanu, czyli inkrementujesz odpowiednią zmienną.
A co to za kwiatek: Lcd Wynik2 = Wynik + Wynik1 Powinno być: Wynik2 = Wynik + Wynik1 Lcd Wynik2 A jeszcze zmienna Wynik2 jest niepotrzebna i może być: Wynik = Wynik + Wynik1 Lcd Wynik
Należy: - zadeklarować zmienną globalną np. LICZNIK i nadać jej wartość zera, - włączyć przerwania od przepełnienia Timer0, - w funkcji przerwania należy zwiększać wartość zmiennej LICZNIK o jeden Aby poznać liczbę impulsów wystarczy pomnożyć LICZNIK*256 i dodać do niego aktualną wartość rejestru licznika timera, czyli jak sądzę counter0 (nie znam BASCOM).
Witam ! Ustaw odpowiednio fuse bity, bo ATtiny2313 jest fabrycznie ustawiony na wewnętrzny generator 1MHz. Pozdrawiam. Stefan amator
Zliczam ilość impulsów z przycisku podłączonego do masy. Dokładność sobie później poprawię, na początek nic mi nie zlicza i nie wiem w czym jest problem. Pozdrawiam Sławek
Szybko zajrzałem do noty PCF8583 i tam jest napisane, ze kiedy nie używasz funkcji alarmu to stan na pinie INT zmienia się na przeciwny co 500ms. Tak wiec impuls jest na tyle długi ze spokojnie można go traktować jak zwykły przycisk naciskany co sekundę. [syntax=vbnet]$regfile = "m32def.dat" $Crystal=8000000 $hwstack = 64 $swstack=32 $framesize = 128...
Witam ! Zmień zapis na ten: Stan_enk = Encoder(pind.2 , Pind.3 , Lewo , Prawo , 0)
6000 * 360 = 2 160 000 czyli 460ns na impuls. więc co najwyżej 9 cykli zegara ATMEGI na impuls :(
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...
Tomaszek_ A co ma timer do tego? Zmienna A zwiększa się o 1 podczas przerwania od pinu INT0. Też nie jestem za zwalaniem winy na Bascom. Nigdy mi się nie zdarzyło żeby Bascom namieszał coś.
Po pierwsze pochwal się jakimś listingiem z tego co napisałeś i nie działa , gdzieś mi się już przewinął przed oczami taki projekt na elektrodzie i jak pamiętam autor również próbował wymusić napisanie programu . Między szukaniem pomocy a wyręczaniem się innymi jest cienka granica . Tym bardziej zastanawia mnie to ,że cały układ można przetestować na...
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...
A gdzie instrukcja CONFIG TIMER1 = COUNTER?
Przepływomierz na litr podaje 648 impulsów jak napisać kod bascom żeby zliczał litry litry = impulsy / 648 Litry mają być typu single.
R10 jest nie potrzebny Kolega pisze bzdury, bez rezystora przycisk dostaje spore impulsy przeciążeniowe z naładowanego kondensatora. zapewne styki switcha sie skleją od tej pojemności 100n A jeśli chodzi o zliczanie impulsów to używa sie do tego Timera.
Może być Timer0 inaczej skonfigórowany np: 8000000/256 = 31250Hz Load Timer0, 250 'zapis w Bascom ' TCNT0 = 6 'doliczy 250 31250/250 = 125Hz = 8ms ' występuje przerwanie Timer0 jest ośmio bitowy, więc może zliczyć od 0 do 255 czyli 256 impulsów. W przerwaniu wpisujesz to co ma być wykonane. 256 - prescaler 250 - dodatkowe zliczanie wyprzedził mnie bart-projects
Witam wspólnotę chciałbym zaznaczyć że z wykształcenia jestem mechanikiem, a z programowaniem nie miałem wcześniej styczności. Przeczytałem książeczkę która mowiła o programowaniu w jezyku bascom, i stworzyłem taki o to kod programu. [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 8000000 Config Timer0 = Timer , Prescale = 256 'licznik do odmierzania...
Mozna to zrealizować na dwa sposoby: 1. Za pomocą przerwania zewnętrznego INTx zliczać ilość impulsów. Podobny temat już jest: 2 Zliczać impulsy na wejściu ICR Podobny temat masz poniżej: http://www.elektroda.pl/rtvforum/topic18...
A wypełnienie sygnału musi być takie samo? Jeśli nie, to może wystarczy mierzyć okres sygnału wejściowego i mnożyć go razy 10/11 a następnie produkować przebieg o takim okresie.
No to coś napisałem na AVRStudio 4.05.0.181 (na kolanie) :) . Co prawda na ATmega8 , ale przeportowanie to pestka(niektóre wektory przerwań do skasowania/zmiany nazwy i "2313def.inc" zamiast "m8def.inc" , prędkość kwarcu Xtal też do poprawki...), raczej tu chyba nie ma rozkazów niezaimplementowanych w AT90S2313 . ;included in next file - line ".device...
Witam Czy w BASCOM’ie jest jakaś komenda która zlicza liczbę impulsów na jakimś z portów?? Pozdrawiam Michał
Nie możesz wykorzystać timera do zliczania impulsów?
Czytam i sam się pogubiłem hehe . Czy tu chodzi o względne przesunięcie (tmf) czy bezwzględne (satanistik). Parę miesięcy temu robiłem sterowanie PID dla servo Xmega w bascom . [youtube]https://www.youtube.com/watch?v... Nie obyło się bez problemu , który polegał na zliczaniu bezwzględnym więcej niż 65535 impulsów . Mój wpis z innego...
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...
No tak, BASCOM - no to niestety ja nie pomogę :cry:
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...
Elementy to komplety, nadawczy przezroczysty, odbiorczy czarny (filtr niby jest) A gdyby puszczać paczki impulsów przez nadajnik i zliczać je odbiornikiem? Przynajmniej jak słonko zaświeci, to nie wykryje mi tego jako przeszkody... Już lepiej tak.
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...
Witam. Wolno czyli tak około jednego dotknięcia na sekundę, a jak już szybciej dotykam to licznik stoi a jak zrobię to na porcie d2 to wtedy po jednym dotknięciu wyskakują duże liczby np: 100. Program będzie musiał złapać około 50 impulsów na sekundę. Pozdrawiam.
Przedstawię Ci kolego przykład zastosowania Pulsein żebyś miał jaśniej. Myślę że będzie "rzeczowiej". To przykład dla dekodowania transmisji pilotów podczerwieni. Sygnał podłaczony jest do zewnetrznego przerwania INTx i w momencie zmiany na pinie program skacze do tej procedury. Mierzy impuls i poddaje rozwadze jego długość. [syntax=basic4gl]Int_1isr:...
W skrócie : ustawiasz co który impuls zegarowy ma byc zliczany, potem ładujesz do rejestru OCR2 wartosc z którą bedzie porównywał i w momencie zliczenia tylu impulsów ile jest w OCR2 następuje zmiana stanu na wyjsciu OCn... najprzyjemniejszą informacją jest to, że procesor robi to niezależnie od wykonywanego programu ;) wiec nie ma mowy o jakichkolwiek...
Pozwolę sobie umieścić post pod postem żeby wiadomość dotarła do zainteresowanego. Jeszcze lepszym wyjściem dla takiego zegara będzie zastosowanie dedykowanego rezonatorka 32768Hz (32,768KHz) Wartość 32768 to w zapisie binarnym dokładnie piętnaście bitów. Jeśli więc Timer będzie zliczał generowane impulsy to po 32768 uzna że mineła sekunda :D Bascom...
To też jest rozwiazanie,ale dla mnie chyba nie mozliwe do zastosowania (uzywam t0 i t1 do generowania pwm) zastanawiam sie tylko co powoduje bledy i jest to chyba ostatni projekt ktory programuje w bascomie... bascom fajny jest moze na poczatek, ale wieksze projekty hmm to chyba nie.
Zamiast zliczać ilość impulsów w stałej jednostce czasu, mierz czas pomiędzy poszczególnymi impulsami.
Wolałbym nie pisać Ci gotowca ;) natomiast moja rada jest taka. Uruchomić timer i jeśli częstotliwość tych impulsów jest dość wysoka to bezpośrednio w przerwaniu timera dawać sygnał rozpoczęcia i zakończenia zliczania i zliczać w pętli głównej programu, a jeśli częstotliwość impulsów jest mała (np. w ciągu 5 czy 10s ma liczyć) to lepiej zrobić dodatkowy...
To rozwiązanie chcę użyć do zliczania sygnałów z czujnika. Na chwilę obecną zliczam impulsy na zmiennej i jest taki efekt, że w trakcie zliczania program wykonuje zliczanie i nie mam możliwości przełączać innych wyjść. (zliczanie jest jednym etapem gdzie musi zostać wykonana określona liczba obrotów)
znam bascoma za słabo żeby napisać coś takiego, ale może kto inny by napisał moje pomysły: prędkość na zasadzie takiej jak licznik rowerowy (chyba zliczanie impulsów) można by dodać przejechaną trasę i temperaturę (ds18b20) oraz woltomierz (chyba przetwornik A/C wbudowany w ATmegę32) ja polecam zrobić to na jakimś lcd alfanumerycznym (z graficznym więcej...
Proponuję napisać program od nowa. Zrezygnować z Gosub'ów. A w przerwaniu ustawiać tylko flagę. Odsługę i zliczanie robić w pętli głównej. Gosuby to masakra programu. A w tym Twoim zupełnie nie potrzebne.
Mozna wszystko nieco uprościć: 1. Podączamy linie to INT0 i INT1 (bez zian) 2. T0 zlicza czas w tybie 16-bitowym (bez dodatkowej pętli) 3. w momencie wykonania przerwania z T0 impulsy zostaje zczytana wartość z rejestrów odpowiedzialnych z kanałów z INT0 i INT1 4. potem jakas procedura potrzebana do wizualizacji danych no i skok do 1 z uprzednim wyzerowaniem...
Czy ten kod nadał by się do zliczania impulsów z INT0, ewentualnie co trzeba by zmienić ?
Konfiguracja timera '51 jest inna : [syntax=basic4gl]Składnia: CONFIG TIMERx = COUNTER | TIMER , GATE = INTERNAL | EXTERNAL , MODE = 0 | 1 | 2 | 3 gdzie: x0 – TIMER0, 1 – TIMER1, Opis: TIMER0 i TIMER1 mogą pracować jako liczniki impulsów zewnętrznych gdy pierwszy parametr jest ustawiony jako COUNTER. Impulsy zliczane muszą być dostarczane...
Chodzi Tobie tylko o szybsze, czy o to, że ma zliczać impulsy tylko wtedy jeśli ich częstotliwość jest równa 100 Hz?
Witam, Zależy mi tylko na tym, żeby Arduino zliczał impulsy z kontraktrona do 5 - 1 impuls- świeci się dioda led 1 - 2 impuls zapala się dioda led 2 - 3 impuls zapala się dioda led 3 - 4 impuls zapala się dioda led 4 - 5 impuls zapala się dioda led 5 i dodatkowo daje sygnał ciągły HIGH na pin SILOWNIKA przez cały 5 po 6 impulsie reset i znowu: - 1...
No, tak dobrze to nie jest. AVR-y (a w nich timery) nie mogą poprawnie zliczać impulsów o częstotliwości większej niż połowa częstotliwości zegara zakladając na wejsciu wypełnienie przebiegu 50%. Niezbędne będzie zatem zastosowanie preskalera. Proponowałbym ATMEGA8 z kwarcem 16MHz i z prescalerem /4 zbudowanym np z cyfrówki 74F74. Mamy zatem poniżej...
Mnożenie można zrobić robiąc programową symulację PLL. Zwykła symulacja wymagała będzie użycia jednego Timera i dość zamotanego kodu. Ale można inaczej. Dwa Timery. Jeden Timer zlicza okres przebiegu. A drugiego ustawia sie żeby zliczał powiedzmy do 1/3 wartości zmierzonej pierwszym Timerem. Taki układ ma już w miarę dobre parametery bo powinien działać...
chodzi mi żeby jeden mikroprocesor działał jak pięcioprzyciskowy pilot (który mam zamiar zamknąć w długopisie) a drugi odbierał to co drugi wysłał (bezprzewodowe przyciski). To co mi z teco wyszło to zliczanie impulsów lecz nie dekoduje(pokazuje 255, 63).
Witam! Mam pytania: jak w praktyce zastosowac timery? Jak one działają? W którą stronę zliczają? Jak zczytac ich stan? Do ilu mogą zliczać? chciałbym, aby ktoś wytłumaczył mi to na przykładzie Atmegi8 i języka Bascom. Wiem już że: -Timery zliczają impulsy które same generują wg. prescalera -Prescaler to taki dzielnik, który bierze jakąś część taktowania...
Ta.... 1) Help, jest ładnie opisane... 2) Co masz ustawione jako wejście impulsów? (Co zliczają liczniki)? 3) Portb = &B255 co to za twór?
Mam prostokąt (PWM) na timer1. Czy zliczać Timer1 czy Timer0? Timer ma być ustawiony na time czy counter. Wydaje mi się że najlepiej byłoby ustawić na zliczanie impulsów czyli counter i po odliczeniu 59 zatrzymać Timer1 na czas 1 lub 2 impulsów. Wszystko OK ale nie udaje mi się to w praktyce. Albo nie generuje nic, albo nie zatrzymuje po odliczeniu....
Moglby mi ktos wylumaczyc jak napisac program do sterowania takimi wyswietlaczami. Musze to napisac w BASCOM-51 na at89c2051. Wyswietlacze sa podlaczone w taki s sposob jak na fotce. Nie liczy sie tu teraz jakie porty itd ale poprostu idea sterowania takimi wyswietlaczami ijak to napisac. Ogolnie ma to byc licznik zliczajacy impulsy i wyswietlacy wartosc...
Hmm. A można to co już napisałem przerzucić na Arduino?Bo tego sporo - połowa programu. Przyciskiem wyboru wybieram a potem chce żeby z czujnika szczelinowego dawało impuls do zliczania.
Trzeba tu zaznaczyć, że metoda zliczania impulsów w czasie nie jest tożsama, pod względem efektów, z pomiarem czasu między kolejnymi impulsami. Pierwsza metoda nadaje się do wyższych częstotliwości, a druga do niższych. Problem tkwi w rozdzielczości pomiaru i szybkości uzyskania wyniku. Licznik AVR'a reaguje na impulsy o częstotliwości maksymalnej niższej...
Witam. Mam pytanie podobne do tematu. Jak podłączyć sygnał z zwenatrz zeby licznik np TIMERO zliczał te zewnetrzne impulsy?I jaki do tego program w bascomie? Prosze o przykład...
A jak ustawić zliczanie z wejścia T1 (PB1) ? Dla Timer1=Counter itd, zawartość się nie zmienia (mimo Start Timer1) i podanych impulsów na T1.
Banalne zadanie. A więc włączasz licznik(lepiej TIMER1-większa pojemność), tak, aby odliczał ci te 10sekund. Dajesz zmienną którą zwiększasz np co 1sekunde (zmienna o nazwie sekundy). W czasie odliczania do 10s w pętli głównej zliczasz impulsy przycisku i zwiększasz je w innej zmiennej (np. impulsy). Po 10 sekundach w zmiennej sekundy będzie10s a w...
Czy ktoś z was zrobił może kiedyś w Bascomie stoper? Zastanawiam się, czy transmisja mikrokontroler <-> wyświetlacz LCD nie będzie "wąskim gardłem"? Jak myślicie? A może komuś udało się to zrobić? Może ma ktoś na zbyciu działające procedurki? Na pewno wyświetlacz LCD nie będzie problemem, tymbardziej, że chodzi raczej o stoper z restrem 0,01s....
Program chyba jest ok, jak cos to zamieszcze listing, jest w bascomie. Moze jeszcze inaczej, nawet jesli zewrze bezposrednio wejscie T0 do +5V to daliej zlicza a wtedy przeciez wartosc jest ustalona. Czujnik nie jest stykowy :) szkoda ze nie mam oscyloskopu... :(
Nie lepiej zerować przez RS'a zmienną która zlicza impulsy ?
Zauważ, że przy zliczaniu impulsów w cyklu pomiarowym np. 1s można zliczyć max 15000/60 = 250 impulsów z enkodera. Czas pomiędzy dwoma impulsami to min. 4ms, a więc przy kwarcu 1MHz timer odmierzy minimum 4000 taktów. Błąd pomiaru w każdym przypadku to średnio 1/2 impulsu - w przypadku 1) mamy przy maksymalnej prędkości błąd względny 0,2%, który rośnie...
1: Musisz napisać odmierzanie czasu ,czyli tych twoich 30 min. 2: Musisz napisać zliczanie impulsów. 3: Jeśli chcesz mieć to wszystko regulowane, to musisz jeszcze napisać jakieś MENU. Chyba że wykorzystasz wejścia ADC i zrobisz to na normalnych potencjometrach liniowych.
. Zamierzam zrobić tak by mogli wprowadzić korektę (jeśli będzie potrzebna) i zapisać w eeprom. czy to dobry pomysł? Jakoś tak; $Crystal=12000000 Config Timer1 = Timer , Prescale = 8 On Timer1 Inter_1mS Inter_1mS: Counter1 = Counter1 + Licznik (64036 - wychodzi z obliczeń, że da to 1ms) /tu odliczę sobie 103/ Błednie to rozumujesz, albo błednie podałeś...
Sorry, Wiesz ja to sie z tym bawie tylko i program pisze w bascomie metoda prob i bledow. Nie ma większego znaczenia w jakim środowisku programujesz (Basic albo C). Istotny jest koncept projektu i sposób rachunkowy, reszta to tylko inna forma zapisu programu. Wybrałeś za narzędzia: Timer1 i jeden z interruptów zewnętrznych. Zatem jest tez bez znaczenia...
jeśli dobrze rozumiem to timer0 ma pracować jako licznik impulsów podanych na jego wejście zewnętrzne . Wejście T0 w mega8 to pin 4 portuD ( noga 6 ) a tam " wisi wyświetlacz na który procek " sypie " impulsy
No to oszacujmy przypadek niemiły - masz trzy enkodery każdy 400 imp/sek, jak złośliwie trzy się ustawią to dadza impulsy w takim układzie, że musisz to sprawdzać z częstotliwością min 3 x 400 Hz plus zapaspowiedzmy około 1500Hz. Jeżeli w BASCOMie ci sie to uda aby pętla główna była krótsza niż 0,66 ms (no coś jeszcze z tymi zliczanymi impulsami bedziesz...
Skoro kolega chce zliczać Timerem 2 opadające zbocza impulsów, to na którą nóżkę M16 podaje kolega te impulsy? Przeglądałem opis wyprowadzeń i nie widzę tam wyprowadzenia T2.
Po długim analizowaniu problemu narodziło mi się coś takiego: 'pętla główna Dim I As Integer Dim Impulsy As Long Dim Sek As Integer Tccr1a = &H00 'ustawianie trybu pracy timera1 Tccr1b = &H0C Ocr1ah = &H7A 'załadowanie liczby 31250 do licznika Ocr1al = &H12 'przykładowa liczba do odmierzania (1s) Tcnt1h = &H00 ' zerowania rejestrów do zliczania...
Rozumiem o co ci chodzi tylko nie potrafię ubrać tego w język BASCOM. Wiem że muszę naliczać zmienną 4 razy następnie ją zerować i wartością zmiennej będą case-y. i tak będzie sobie przełączać. Ale co zrobić ze zliczaniem impulsów częstotliwości pulein ? też w case-ach ją podawać ? znalazłem także super projekt http://mirley.firlej.org/sterownik_tasmy...
Mam użyć Timera do zliczania ilości impulsów i jeśli jest mniej niż 55 to ma sygnalizować że połączenie zostało zerwane? Czy jak mam użyć tego timera?
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...
...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....
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...
WItam , otóż borykam się z problemem uruchomienia INT0 ,który ma zliczać impulsy(1 sekunda) z wyjścia INT PCF8583(stan niski), i co powiedzmy 15 impulsów(15s) ma wykonywać się podprogram. Mógłby ktoś pokazać mi jak skonfigurować INT0 w Bascom ? Dziękuje i pozdrawiam :D
Nie tędy droga, Ty musisz zrobić coś dokładnie odwrotnego - nie wygenerować sygnał, ale go zmierzyć. Rozwiązania są 2, ale jeśli programujesz w bascomie i nie masz ochoty na operacje na rejestrach w procesora to kurczą się do jednego. Mianowicie: 0. ustawiasz timer na zliczanie impulsów i zmianę wartości jakiejś zmiennej - parametry dobierz w zależności...
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...
hunterhouse W AVR-ach sprzętowo można zatrzasnąć zawartość timera , ale uruchomić zliczanie trzeba programowo.Natomiast w 51-ce można uruchomić i zatrzymać timer sprzętowo.Jeśli na P3.3 jest stan wysoki i flaga GATE timera1 jest ustawiona , to timer zlicza doputy , dopuki stan na P3.3 nie zmieni się na niski.Problem jest tylko z tym , że Charly chce...
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,...
Pomysł jest straszny. Poczytaj o timerach. :D No dobra, ale w tym przypadku timer ma zliczać impulsy i ilość tych impulsów dodawać lub odejmować od zmiennej? I czy do tego wystarczy jeden timer, czy dwa (do dodawania jeden i do odejmowania jeden)?
A jak ją przyciąć? Teoretycznie mam tak zrobione obliczenia, żeby wyszła liczba max 3 cyfrowa. Ale czasami zdarza się, że wynik wychodzi większy (np. na postoju impulsy wtrysku są zliczane, a przejechana droga jest 0, i jak przejadę np. 0,1m, i impulsów zliczyło sporo, to pierwszy wynik ma więcej cyfr, i robi się śmietnik).
ja ci radze zrobic to w bascomie. nauka moze ci troche zajac moze dzien ale jak nauczysz sie to ten proram napiszesz w 10 min kup sobie ksiazke nie powiem ze jest super ale napewno ci pomoze albo sciagnij polskiego helpa do bascoma
Wydaje mi się, że najpierw powinno być „uruchomione” odliczanie tych 0,1 sek, wyzwalane pierwszym pikiem z „paczki”. Potem trzeba odczekać te 0,1 sekundy na zanik „szumów” i zacząć zliczanie w czasie 0,9 sek. Ilość zliczonych pików podzielona przez czas da mi częstotliwość. Wynik ma się utrzymywać na wyświetlaczu...
Kolego e marcus , w maszynie drukarskiej lepszym rozwiązaniem jest zliczanie impulsów w zadanym przedziale czasu, tak jak pisałem, kłopoty sprawia raczej wolny przebieg maszyny i jej zatrzymania, co powodowałoby odliczanie czasu do nieskończoności. Pomysl z czujnikiem Halla jest dobry, wystarczy na obwodzie cylindra nakleić odpowiednią ilość magnesów....
a nie moglibyście poprostu napisać początku programu z ustawioną konfiguracją timerów dla attiny 2313 tak żeby zliczał 10s no i zrobić miejsce (klamry albo coś) gdzie wprowadza się to co ma robić prgram?? prosze A może od razu napisać cały program? Po co się czepiasz tych timerów, bascom ma wbudowane jakieś gotowe funkcje do opóźnień czasowych.
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....
Witam, Zacząłem zabawę z AVR-em. Oczywiście trzeba uruchomić pomysł w miarę szybko więc BASCOM. Programy "kroczki" testuję na konfiguracji na wyrost, czyli Atmega16 z taktem 16MHz. Popełniłem program testowy który w założeniu miał zliczać impulsy poprzez timer. Źródłem impulsów jest PCF8593, procek obsługuje to przez PortB.0 (Wejście dla timerka). Konfiguracja...
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ż...
Dzieki wszystkim za zainteresowanie. Poszperałem wczoraj wieczorem i znalazłem że w mode=1 wartość ładuje się instrukcją 'counter [0,1]=wartość lub jak koledzy napisali np. tl0=&h5f th0=&h45, a load działa tylko w mode=2. Mam nowe pytanie przy kofiguracji takiej: Config timer0=counter , gate=internal , mode=1 powinien zliczać impulsy podawane na pin...
Książki do nauki już kupiłem tj. Piotr Górecki Mikrokontrolery dla początkujących oraz Marcin Wiązania Programowanie mikrokontrolerów w języku Bascom, do tego wydrukowałem cały Help. Dodatkowo kupiłem moduł uruchomieniowy AVT 3500 oraz moduł uruchomieniowy dla Atmega16. Zmami opanuję ten cały materiał, chciałbym wykonać na procesorze Atmega16 sterownik...
Walcze z licznikiem na Atmega 32 inicjacja wyglada tak : DDRB = 0xff; // DDRB jako wyjscie // t0 JAKO LICZNIK PORTB |= _BV(0); // BEZ PODCIAGNIECIA NIE CHCE LICZYC TCCR0 = _BV(CS01)|_BV(CS02); //_BV(CS00)| cs0 rosnace/~opadajace zbocze TCNT0 = 200; TIMSK |= _BV(TOIE0); // T0 wywoluje przerwanie Caly problem polega...
mam problem ze zliczaniem a wlaściwie mnożeniem wartości. kluczowe fragmenty w kodzie niżej: Start Timer1 Waitms 500 Stop Timer1 A = Timer1 * 0.000167 Timer1 = 0 Odo = Odo + A Odo1 = Odo1 + A niby wszystko OK jednak po jednym impulsie ODO wynosci 0.0001669 a odo2 = 0.000152. blad jest potem powielany razy ilość impulsów wszyskie zmienne sa DIMowane...
Jestem początkującym z programowaniu w C.Opiszę problem : Zbudowałem licznik zwojów do nawijarki na ATMEGA 8 . Licznik liczy zwoje przy pomocy optobariery szczelinowej i tarczy z dziurką(czyli zliczanie gdy na wejściu stan niski) liczy w przód i w tył(przy odwijaniu). Jedno wejście ATMEGi zlicza impulsy (PULSELOW) , drugie to wejście sterujące aby zmieniać...
Witam i dziękuję za pomoc. Nie mam żadnego doświadczenia w pisaniu programów,chcę zrobić licznik zliczający od 9999 do 0 w dół i wgórę, procek to attiny2313,czy zlicznie zrobić poprzez zadeklarowanie zmiennej i do niej dodawać lub odejmować impulsy zliczane z wejścia procka?, w jaki sposób używając podanych wcześniej programów obsługi 74ls164 wyprowadzić...
Witam serdecznie kolegów. Jeśli nie znasz Bascoma nie wypowiadaj się - Bardzo prosze. Potrzebuje wykonać Generator impulsów z wypełnieniem. Regulowana częstotliwość jak i wypełnienie. W Bascomie niestety nie jest to takie proste. Sprzętowy jest PWM ale stała częstotliwość. Prześledziłem chyba wszystkie wątki w tym zakresie i raczej wypowiadają się tylko...
Zrób tak: 1 licznik do odmierzania czasu, przerwanie co np 25ms 2 licznik do zliczania impulsów Jeżeli nastąpiło przerwanie np 25ms, to zlicz liczbę impulsów. W taki sposób masz dokładniejsze odmierzanie czasu, funkcja wait do tego się nie nadaje. Przeanalizuj sobie ten temat: http://www.elektroda.pl/rtvforum/topic16... a potem dodaj to co napisałeś...
michal2666 --> sposobów jest milion. 1 sekunda to hetar czasu zresztą tak samo jak 16ms to także hektar czasu ;) Powiedz lepiej na co ty masz wykorzystany tenże swój Timer1 bo zaraz się może okazać, że także i jego można spokojnie wykorzystać do tych celów. Inna możliwość to - użycie Timera0 do odliczania impulsów do czasu upłynięcia 1sek i wtedy dopeiro...
Witam wszystkich!! mam taki problem... napisalem program w BASCOMIE: Dim Generator As Byte , Czujnik As Byte , Wynik As Byte , Gen As Byte , Czas As Byte Portd = 3 Cls Do Debounce Pind.0 , 0 , Gen , Sub Debounce Pind.1 , 0 , Czu , Sub If Generator = 10 Then Wynik = Generator - Czujnik Generator = 0 Czujnik = 0 Lcd "WYNICZEK= " Lcd Wynik End If Waitms...
Witam ! Dzięki wielkie za porady, po pierwsze przeniosłem cały program do pętli głównej i timera0 już nie używam, Właczyłem tryb CTC i nim pięknie generuję częstotliwość. Ale niestety w toku dalszych prac pojawił się następny problem. otórz w układzie potrzebuję wykorzystać jeszcze przerwanie od INT0 http://obrazki.elektroda.net/59_12685081...
zliczanie impulsów bascom bascom zliczanie zliczanie impulsów enkodera
samsung jasny zmiana rozdzielczości laptop naprawić włącznik
projektowanie mebli kuchenka amica 53gg5 43zptgn
MT-246D Italy - triak czy tyrystor? Rozpoznanie elementu Moduł sterowania silnikiem w pralce Grundig GWN 59673 C - brak obrotów bębna