Potrzebuję napisać licznik impulsów w Bascom 89cx051 o następujących parametrach: Wprowadzam ilość impulsów za pomocą trzech klawiszy (pierwszy klawisz ustawia pozycję nad liczba która będzie zmieniana, drugi i trzeci służą do zmiany góra-dół), po ustawieniu odpowiedniej liczby (maksymalnie 7 cyfr), wciskam czwarty klawisz (start) w tym monecie na wyjściu...
Zrobiłem jakiś czas temu taki układzik na attiny-13 do sterowania dwoma serwami i linijką diodową pokazującą położenie. Niestety do obsługi dwóch serw trzeba po zaprogramowaniu zablokować ISP: '(Program sterownika dwóch serwomechanizmów. Mikrokontroler Attiny 13. Funkcjonalność: Sygnały Ppm 1 - 2 ms: Sygnał Ppm Serwo1 - Port Pb0 - Pin 5...
Witam, Sądze, że program nie byłby za skomplikowany, odczyt danych z portu i wysłanie go RSem to żaden problem, a pomiar prędkości można zrealizować na liczniku, licząc albo impulsy albo czas, czas byłby lepszy w przypadku małych obrotów "kółka od myszki". Jeżeli mógłbyś to wrzuć schemat to będzie szło zrobić program. Jak chcesz to moge go napisać w...
Tutaj umieściłem materiał o przetwornicy 400V do zasilania detektora Geigera Mullera: Licznik Geigera Mullera. Jest to druga wersja projektu prostego licznika impulsów oparty o mikrokontroler Atmel Attiny26L, współpracuje z przetwornicą do dozymetru opisaną Układ pobiera prąd około 6mA przy 4.5V, uruchomienie podświetlania zwiększa pobór prądu do około...
Const odlicz=65436 rem dla zegara 12MHz odliczy tylko 100 impulsow (100us) dim licznik as word dim koniec as bit Config Timer1 = Timer , Mode = 1 , Gate = Internal On Timer1 etykieta Counter1 = odlicz do start timer1 bitwait koniec,set reset koniec rem petla powtarza sie co 100 us loop etykieta: licznik = counter1 rem To ma eliminowac czas od momentu...
Może ten temat troche pomoże jest na innym kwarcu ale zasada ogólnie ta sama Takie rozwiązanie w Bascomie jest najprostsze, tzn pomiar czasu poprzez komendę Wait 1(odczekanie 1 sekundy), odliczenie 1 sekundy podczas, której Timer1 jako licznik zlicza ilość impulsów. Już tak robiłem, ale domyślnie to rozwiązanie nie jest raczej zbyt dokładne, wolałbym...
chcę napisać "Licznik Impulsów" chodzi o to że gdy zostanie wciśnięty microswitch na LCD powinna zostać dodana cyfra do "obecnej wartości" (zmienna K) nie rozumie jakie cyfry tzn ze ma się zwiększyć wartość tej zmiennej o jeden?? bo jeśli o to chodzi to przedstawię Ci program w C i to banalnie prosty, który zniechęci Cię od Bascoma. Ja wiem też to...
Właśnie mam już cały program gotowy w bascomie , nie umiem w tej chwili na tyle dobrze C żeby napisać obsługę PCF, dwóch DS18B20 plus MPX4115. Także chodzi właśnie mi tylko o rozwiązanie pomiaru ciśnienia co 5-10 minut. Ok doszedłem wkońcu jak to zrobić . Skoro program spełnia oczekiwania programisty, to musi byc dobry! Niemniej jednak te 3 przedstawione...
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...
a moze wykorzystac timer/counter do zliczania impulsow zewnetrznych? chyba po to jest. dla 2313: do TCCR0 zaladuj 0b00000110 dla opadajacego zbocza a 0b00000111 dla narastajacego zbocza. wtedy licznik bedzie zliczal impulsy z wejscia T0 czyli PD4 czyli pin 8. licznik T0 jest 8-bit czyli 256 zliczen, wiec jak potrzebujesz pojemnosc 65536 (16-bit) musisz...
Sprawa jest dosc prosta. Mozesz wykorzystac do tego wejscia licznikow T0 i T1. Wystarczy tylko odpowiednio skonfigurowac rejesrt TMOD. Jezeli konfigurowales rejestry specjalne w Asemblerze to nie bedziesz mial zadnych problemow w Bascomie (trzeba do niego wpisac odpowiednia wartosc binarna TMOD=&BXXXXXXXX) Mozesz tez uzyc polecenia CONFIG TIMER . Musisz...
Najwygodniej i najtniej zrobisz to na mikrokontrolerze. Do tego wystarczy jakiś maluszek np. AT90S2313. W Bascomie znajdziesz wszystko do obsługi LCD, i liczników.
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...
Witaj Rozumiem, że : licznik zlicza impulsy z wej. np. Port.d wej.0 wyświetla na wyświetlaczu, liczy on p. do 10 i liczy od nowa. TAK ?? to ci to napisze tylko daj znac pozdrawiam
' D.CH.ELECTRONICS INC ' Program sterownika rolety licznikiem jest port EEDR Config Portb = &B11111100 ' ustawiam pind.7 i 6 jako wejści dla S1 i S2 Portb = &B11111111 ' stan spoczynkowy Dodano po 9 Tak wygląda kod źródłowy do tego układu. Układ steruje pracą silnika DC pracującego na napięciu 12V. Sterowanie odbywa się poprzez zmianę polaryzacji za...
Dobry będzie taki program? Można coś jeszcze poprawić? Może lepiej byłoby ustawić jakieś wyższe prescale w timerze np.8, żeby mniej tych impulsów zliczał (można by wtedy operować na mniejszych liczbach, program działałby na pewno szybciej - ale czy mierzyłby równie dokładnie?) Na pewno na elektrodzie był już poruszany temat obrotomierzy, ale szukajka...
emarcus:: Czy Ciebie całkiem pogieło? Jak chcesz pomnożyć częstotliwość rozkazem MUL? Ewentualnie jak chcesz tym pomnożyć impulsy? Bez obrazy ale to zupełnie co innego. Dodano po 19 Na mój gust cos takiego: $regfile = "M8def.dat" $crystal = 8000000 $hwstack = 64 '---------------------------------------...
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...
Witam. Posiadam kilka kompletów tego nadajnika i odbiornika (433MHz) i tak jak kolega wspominał w eterze mega dużo śmieci. Ale... znalazłem rozwiązanie tego problemu śmieci! Zmierzyłem miernikiem częstotliwości wyjście odbiornika podłączonego tylko do zasilania i u mnie były takie wyniki: od około 600Hz nawet do 3kHz sygnały śmieci które zmieniały się...
r"]Idę w jakimś kierunku ....... ? Niezupełnie, nie najlepsza ta droga..... Po pierwsze: wybór processora i parametrów. -Attiny13; praktycznie nie masz możliwości taktowania go 10 Mhz. Masz do wyboru: 1.2, 4.8, 9.6 Mhz. albo też 'zasilić' go (CLK1) z gotowego (zewnętrznego) źróła zegarowego co nie ma w zasadzie ekonomicznego sensu. Jego timer0 z przyjętym...
Teoretycznie licznik można kasować przez event system ale on już jest podłączony do event system do dekodera, nie znalazłem w rejestrach opcji więcej nić jednego kanału zdarzeń do jednego licznika. Co do impulsów step dir - sterowniki CNC dostępne na rynku mają takie wyjście i nie wysyłają pozycji po RS232 a ingerowanie w same programy sterujące CNC...
Jdno pytanie czy ponizsza konfiguracja bedzie prawidłowa : Chodzi o to aby licznik zliczał impulsy wewnętrzne z kwarcu przez czas jaki na int0 bedzie stan wysoki. w momencie pojawiania sie zbocza opadającego aby program przchodził do obsługi przerwania : Fragmenty w bascom : config timer0 = timer , gate = external , mode =1 set Tcon.0 - reakcja na zbocze...
Witam mam prośbę do osób bardziej doświadczonych w temacie mikrokontrolerów zrobiłem opisywane enkoder na przerwaniach z noty znalezionej na stronie bascoma i chodzi jak należy jednak chce zrobić to tak jak opisywałem wcześniej nie chce przerabiać urządzenia i przyznam się ze mam problem z wrzuceniem tego co kolega napisał powyżej do procka może ktoś...
ok ja podpowiem co to jest :D COnfig timer0 = timer 'ustaw timer jako licznik impulsów wewn. zegara procesora Mode=1 ' tryb pracy czujnika, to jest ladnie opisane w datasheet do procesora, 1 w tym przypadku oznacza normalna prace timera czyli zlicza impulsy gate = internal ' najprawdopodobniej chodzi tu o taktowanie licznika ale nie pamietam dokladnie...
No przecież prosto. Konfigurujesz timer1 do pracy w normalnym ale nie robisz start timer. robisz przerwanie dzialajace na zbocze np. narastające-> Dalej : robisz zmienną flaga w przerwaniu robisz if flaga=1 then start timer1 flaga=0 else stop timer1 w rej od timera masz czas... kopiujesz gdzie Ci tam pasuje flaga=1 zerujesz licznik endif I tyle, oczywiście...
Witaj, No save spokojnie możesz użyć.... pod warunkiem, że nie korzystasz w obsłudze przerwania z instrukcji Bascoma bo jeśli tak to nie odkładając rejestrów na stos, zgubisz ich wartości i w najlepszym przypadku będą się działy różne rzeczy. Ja bym napisał wstawkę w asemblerze odkładając wcześniej na stos używane rejestry w tym SREG. Możesz też użyc...
[syntax=basic4gl] $regfile = "M32def.dat" $crystal = 16000000 '************************* WYSWIETLANIE-porty ********************************** Lcd_port_ddr0 Alias Ddrb Lcd_port1 Alias Portb Lcd_port_ddr1 Alias Ddrb Lcd_rs Alias Portb.lcd_rs_number Lcd_reset Alias Portb.lcd_reset_number Lcd_cs Alias Portb.lcd_cs_number Lcd_sck Alias Portb.lcd_sck_number...
na wejścia podłączony jest enkoder(pierwszy zrobiłem z myszki komputerowej) w zależności na którym wejsciu pojawi się pierwszy impuls to przerwanie jest obsługiwane jako pierwsze . może cos z tego skorzystasz. obsługa przerwań jest na dole Dodawanie: i Odejmowanie:. Ale Panowie litości w krytyce to jest mój pierwszy program w Bascomie. Tak się złożyło...
..... Na pewno da się to zdobić porgramowo.... Hmmmm, można pokusić się o implementację programowa zliczania (pisałem o metodzie wyżej) i wtedy sprawdzić maksymalne osiągi procesora lub niestety może okazać sie, że nie bedzie wyjścia i bez "uładu dodatkowego" a mysle tu o QEP - Quadrature Encoder Pulse (standardowo implementoany w DSP i niektórych...
Problem wyniknął z mojego poprzedniego tematu... ;) Wszelakie przykłady jakie znajduję na necie dotyczą timera w trybie 1-2, a nie potrafię znaleźć nic w "3" :| Chcę użyć timer0 jako "podwójny licznik": 8-bitowy licznik impulsów i 8 bitowy licznik czasu. Wg. dokumentacji: No dobra, ale jak to wygląda w praktyce? Jeśli mam 1/2 licznika i 1/2 timera to...
Witam jest dość początkującym w dziedzinie programowania i potrzeba mi połączyć tak aby na jednym wyświetlaczu pojawił sie zegar i licznik impulsów z halotrona jako obrotomierz zegar: $regfile = "m8def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera $crystal = 8000000 'informuje kompilator 'o częstotliwości oscylatora 'taktującego...
Kiedyś robiłem coś takiego dla znajomego. Procesorek _ LCD 1x16 + dwa przyciski "góra" "dół" . Całość praktycznie wielkości wyświetlacza. Odliczał nastawione impulsy po osiągnięciu zera otwierał styki przekaźnika . Była też opcja że kilka imp. wcześniej ( przed zerem ) otwierał jeszcze jeden przekaźnik. Chodziło o to że sterował silnikiem i wtedy zmniejszał...
Kod w C: void main(void) { wlacz_timer(); while(1) { if(przyszedl_impuls) { przyszedl_impuls = NIE; if(pierwszy_odczyt) { pierwszy_odczyt = NIE; } else { czas_miedzy_impulsami = stan_timera - stan_timera_poprzedni; //czas jest w cyklach zegara timera. Musisz przeliczyć go na sekundy...
Mam problem z licznikiem timera 3 w atmedze64. Chodzi o to, że licznik oprócz impulsów z wejścia T3, zlicza mi także impulsy z wejścia INT5(OC3C). Są to sąsiednie piny, więc pomyślałem że może być zwarcie, ale nie ma. Kod wygląda tak: $regfile = "m64def.dat" $crystal = 16000000 ''''''''''''''''''''''''''konfiguracja portów''''''''''''''''''''''''''''''''''...
Jestem początkujący w dziedzinie programowania Atmelków. Mam zamiar zrobić licznik impulsów , który w pierwszej linii wyświetlacza LCD 2*16 , będzie wyświetlał ilość impulsów , zaś w drugiej ma pokazywać ilość obrotów na minutę. Generalnie ma to rejestrować przebiegi wolnozmienne ok 1Hz nawet ciut mniej. Zaczerpnąłem kawałek kodu oczywiście z netu ,...
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....
Witam Z pewnością tematów opisujących ten problem jest dużo. Jednak pozwolę sobie zadać pytanie: Czy i w jaki sposób mogę policzyć impulsy przychodzące do dwóch wejść uC. Sygnał nie jest podłączony do wejść T0, T1, INT0, INT1, tylko do PD6 i PD7 Atmegi8 ? Dziękuję za pomoc.
poki co to tylko bascoma cos kumam
Witam, Mam problem z programem na Atmege8a, mianowicie: Piszę program sterujący pracą silnika (za pomocą L293D) który dodatkowo będzie zliczał w czasie impuls od przerwań zewnętrznych i tu pojawia się problem: kiedy napisałem program obsługujący tylko pracę silnika, wszystko działa sprawnie, kiedy napisałem program zliczający impulsy w czasie, również...
Witam, chciałbym zbudować licznik impulsów na atmega 8 który by zliczał ile impulsów było w czasie 1 sekundy i wartość tych impulsów wysyłała w postaci binarnej na wyjścia procesora. Dodano po 1 Język w którym bym to chciał to C znalazłem identyczny projekt na forum ale w bascomie a w tym języku się wogóle nie orientuje
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...
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 w moim przypadku, bo sporo zajmuję się różnorodną kręcącą się...
Witam Problem można rozwiązać podobnie jak proponował M.S. jednak połączyć procesor z licznikiem 74HC4040. Ma on wejście szeregowe i wyjście równoległe. Na wejście tego licznika można podawać impulsy (TTL) o częstotliwości nawet do 98MHz !!! Zasada zostaje ta sama bo się bramkuje wejście ale częstotliwość mierzona jest o wiele większa a procesor może...
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...
Dokładnie, chodzi tylko o pomiar drogi i spalanie. Timer0 skonfigurowany jako licznik - liczy impulsy prędkości. Timer1 - wyskalowany na 0,5s i w tym czasie liczy czas otwarcia wtryskiwacza. Potem przeliczenia. Co do C to już próbowałem i póki jets prostszy sposób (bascom:)) to C w życiu mi się w głowie nie zagnieździ, nie mówiąc już o asm ;]
mam prośbę i skierowano mnie tutaj.. potrzeba mi zrobić układ na atmega8 w języku bascom a sam nie wiem jak to wykonać w 100%... Działanie proste urządzenie jeżeli dostanie 100 imp / sek zapali jedną diodę od 100 do 200 imp / sek zapali drugą a od 200 w górę zapali trzecią... pewnie dla was to proste jak obręcz ale proszę o pomoc... z góry THX dokładnie...
Nie do końca rozumiem o co Ci chodzi, ale: Jeśli timer pracuje jako czasomierz (zlicza wewnętrzne cykle zegarowe), to pin nie ma nic do rzeczy. Można go wykorzystywać w dowolny sposób. Jeśli natomiast timer skonfigurowany jest do pracy jako licznik i zlicza impulsy / zbocza na wejściu T1 (czyli pinb.2) to pozostaje jedynie zrezygnować z tej funkcji...
Witam, Mam taki problem. Chcę wysyłać do PC informację w formie takiego temp1;temp2;f1;temp3 i coś jeszcze. Jak wysyłam informację to chcę żeby ona była raz wyświetlana powiedzmy co ok 1-2s a nie tak jak na screenach pod kodem. (to jest losowe). Co może być nie tak. Timera2 używam jako odmierzacz czasu a timer0 do pomiaru częstotliwości (na 555) $regfile...
Witam! Program pisany w Bascomie, jest to prosty programik ktory pokazuje temperature w aucie, przejechany dystans itd. Timer0 wykorzystywany jest jako licznik (zlicza impulsy drogi), przy przepelnieniu licznika wywolywane jest przerwanie. Timer1 wykorzystywany jest jako timer, odmierzam nim 1ms, czyli co 1ms wywolywane jest przerwanie. Problem polega...
Mam silnik z przekładnią który daje 5 impulsów na jeden obrót przekładni, obrotów jest 139 to liczyłem na piechotę ale chcę wykorzystać Atmege 8 do sterowania tym silnikiem i nie mogę dojść do ładu z liczeniem tych impulsów. Próbowałem liczyć impulsy funkcja DEBOUNCE i szło dobrze dopóki nie zwiększyłem prędkości obrotowej, zaczęło gubić impulsy Następnie...
kiedyś popełniłem taki zapłon i zrobiłem to tak że jeden licznik zliczal impulsy na podstawie których wyznaczał obroty silnika. Wyprzedzenie zapłonu przybiera dość ostrą wartość w zakresie obrotów czyli mozna przyjąć że po przekroczeniu pewnej wartości następuje znaczna zmiana kąta wyprzedzenia zapłonu. Zatem zadaniem drugie licznika było wyznaczanie...
Witam czy ktoś mi zmodernizuje ten program tak aby liczył mi same impulsy i je aktualizował na bieżąco a po przekroczeniu liczby 999 się resetował i liczył od nowa $crystal = 4000000 $regfile "attiny2313.dat" Dim Wynik As Long Config Timer1 = Counter , Edge = Rising Cls : Lcd "Obrotomierz" : Wait 1 Do Timer1 = 0 Start Timer1...
Do skonstruowania tego projektu zainspirował mnie projekt automatycznej nawijarki do cewek autorstwa niestety nieżyjącego już Zbigniewa Raabe. Ten projekt miał jak sam autor zaznaczył pewną wadę - można było nim nawijać tylko cewki, w tym projekcie to wyeliminowałem przez zastosowanie nie silników krokowych a najpospolitszej wiertarki dość dużej mocy....
Z tym priorytetem to nie do końca jest tak jak myślisz. Dziala to tylko w przypadku jednoczesnego otrzymania sygnału przerwania, natomiast po wejsciu do przerwania od licznika obsługa przerwania z enkodera zostanie zawieszona do momentu ukończenia obsługi licznika. W twoim przypadku w niczym to nie przeszkodzi chyba ze faktycznie enkoder generuje "gęste"...
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...
Naprawdę nikt nie jest w stanie nic pomoc ? Miało by to mniej więcej wyglądać tak: -sygnał podawany na ICP ma postać kwadratową -zbocze opadające powoduje zapis wartości timera do rejestru sprzętowego -odejmując kolejne wartości rejestru od siebie uzyskuję czas jaki upłynął między impulsami -obliczając odpowiednio czas uzyskuję ilość impulsów na minutę
Niby prosty problem, ale za to jakże denerwujący. Robię licznik impulsów (obrotów) który powinien także rozpoznawać kierunek obrotów. Na wale jest magnes, a dookoła 3 czujniki halla. Obroty prawe, po każdej sekwencji 1,2,3 powinno dodać 1 Obroty lewe, po każdej sekwencji 1,3,2 powinno odjąć 1 Staram sobie to rozpisać rozrysować na wszelki sposób, ale...
Witam. Mam problem z timerem, który będzie liczył impulsy na wejściu T1 Wgrywam taki kod: [syntax=basic4gl]$regfile = "m8def.DAT" $crystal = 8000000 $baud = 9600 Config Timer1 = Counter , Edge = Rising Timer1 = 0 Do Start Timer1 Stop Timer1 Waitms 500 Print Timer1 Loop End[/syntax] Problem jest w tym, że jak daje zasilanie na t1 to cały czas uzyskuję...
Witam mam prosty program. Timer zlicza naciśnięcia przycisku. Problem polega na tym że po jednokrotnym naciśnięciu wartość zwiększa się o jakąś ilość (nie zawsze o 1). Jak temu zaradzić? np. żeby zmiana stanu licznika była możliwa tylko co określony odcinek czasu. [syntax=basic4gl]Config Pinb.0 = Input Set Portb.0 Config Timer0 = Counter , Edge = Falling...
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...
Program wyświetla to co chcesz ale w symulatorze to trwa bardzo bardzo długo. i Teraz ja licznik odlicza 100 impulsów to musisz pozmieniać obliczenia. Podczas symulacji w warunkach wpisz mniejsze wartości to się szybciej doczekasz tego wyświetlenia na lcd albo zwiększ zmienne ręcznie podczas symulacji. sygnał 125khz do generowania PWM 1,25khz. Nie rozumiem?...
nie no to jasne ... jak coś komuś nie wychodzi to na bank wina Bascoma ... tylko ze jak ma liczyć impulsy to ma być skonfigurowany jako licznik COUNTER a nie jako czasomierz TIMER czyli nie CONFIG TIMER0 = TIMER , PRESCALE= 1 | 8 | 64 | 256 | 1024 tylko CONFIG TIMER0 = COUNTER , EDGE= RISING | FALLING
Mikrokontroler to najpewniej Atmega 8 lub 328, co za tym idzie albo Bascom albo Arduino zależy na czym to prościej można zrobić. Nie jest możliwe żeby po 2 było 4. Będzie to albo 3 albo 1. Co do schematu spróbuje jak najszybciej go narysować.
Mam kłopoty z konfiguracją portów na Attiny2313 w Bascom AVR. Próbuje ustawić porty i uzyskać żeby przycisk działał jako przycisk wyboru a czujnik dawał impuls dla licznika. Nie wiem czy dobre porty wybrałem. LCD ma być podłączony do portów PB. Jestem w programowaniu początkujący. [syntax=vbnet] 'Porty do czujnika-6,7 porty do LCD-12,14,16,17,18,19...
Zobacz coś takiego: $regfile = "m328pdef.dat" 'definicja mikrokontrolera $crystal = 16000000 'częstotliwość taktowania mikrokontrolera $baud = 9600 'szybkość transmisji szeregowej $hwstack = 40 'rozmiar stosu sprzętowego $swstack = 40 'rozmiar stosu programowego $framesize = 40 'rozmiar ramki stosu 'Inicjalizacja portów wejściowych i wyjściowych...
Mam w domu 4 piloty - Samsung (wieża), karta tv (pixel view), Panasonic (tv), samsung (tv) i żaden nie działa mi przy zastosowaniu funkcji getrc5 :( Wpadłem na pomysł napisania własnej procedury obsługi pilota. Już zrobiłem pierwszy krok ku temu, zależy mi na pilocie od wieży, pracuje on na układze bu2478. Chyba nie jest to RC5. przy pomocy komputera...
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...
Macie panowie racje. Generalnie to dawno temu zaczlem przygode z bascomem wtedy na 89C4051 ale poleglem i dalem sobie spokoj na wiele lat. Teraz wrocilem do tematu. Zaczalem od prostackich programow gdzie np delay 1sekunda sluzyl mi do mrugania ledami itd. Wstawialem takich delai wiele i mi diodki mrugaly jak cos tam mialem zglosic. Ale zaczalem sie...
Przyczyny są dwie 1. Błąd w programie 2. Zakłócenia. Jeśli program jest ok to przeanalizuj obwód wejściowy, czy sygnał ma odpowiednio strone zbocze? Jeśli sygnał pochodzi ze styków mechanicznych to bez odpowiedniego układu filtrującego na pewno zliczane fałszywe impulsy. 1. Zliczanie jest sprzętowe na TIMER0/COUNTER0, ewentualnie program może źle czytać/przetwarzać...
Poszukałem trochę dodatkowych materiałów do wchłonięcia przez moje szare komóreczki :) 13 Liczniki Słowo licznik to próba przetłumaczenia słowa timer. Ja używam tego słowa jako odpowiednika, ale nie wszyscy się z tym zgadzają i twierdzą, że należy używać słowa timer, gdyż nie można dokładnie przetłumaczyć znaczenia. Licznik to układ liczący o rozdzielczości...
Witam Dim Licznik As Byte Config Timer0 = Timer , Mode = 1 , Gate = Internal Enable Interrupts Enable Timer0 On Timer0 1ms Counter0 = 64535 Start Timer0 Do Loop 1ms: Counter0 = 64535 Start Timer0 Incr Licznik Return A wynika to z tad:czestotliwosc kwarcu (w tym przykladzie-najprosciej,moze byc inny)wstepnie dzielona jest pzez 12 (wynika to z budowy...
$crystal = 12000000 $regfile = 89c2051.dat Dim Pwmcount As Byte , Count As Byte , Vals As Word , Valcount As Word , Countscale As Byte Config Timer0 = Timer , Gate = External , Mode = 0 Config Timer1 = Timer , Gate = Internal , Mode = 2 On Int1 Readint On Timer1 Pwm Load Timer1 , 250 'przeladowanie timerka dla PWM przy 250uS Set Tcon.2 P1 = 3 Count...
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...
Witam wreszcie znalazłem chwile czasu. czyli ma podleczyć START i STOP po portd.1 i portd.2 i kod zmienić -> $regfile = "m8def.dat" $crystal = 8000000 Config Pind.1 = Input Config Pind.2 = Input Config Pind.3 = Input Set Portd.1 Set Portd.2 Set Portd.3 Bramka_start Alias Portd.1 Bramka_stop Alias Portd.2 Przycisk Alias Portd.3 Nie bardzo...
Dlaczego mnie to interesuje? Mimo długiego poszukiwania i dyskusji z kolegami nie uzyskałem "gotowego" rozwiązania na obsługę tego urządzenia. Uzyskane rozwązania miały pewne wady, które przedstawię. Zamówiłem układ AVT-5042 Pewne rozwiązanie. I teraz moje rozwiązanie. Na początek wykres. Grube pionowe przerywane linie oznaczają stabilną pozycje i...
Wystarczy... 😉 To może zacznę najpierw od nauki bascom a i za jakieś dwa lata będzie to śmigać 😀 Dodano po 8 Panowie, znalazłem wczoraj kod, który działa na zasadzie „rejestratora” czasów, i zapisuje wyniki do Eeprom. Później je porównuje z odebranym kodem biorąc pod uwagę pewne odchylenia w czasie trwania impulsu. Program...
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...
Może najpierw zacznę od tego co muszę zrobić. Potrzebuję generatora impulsów PWM, ma mieć kilka częstotliwości do wyboru z góry zdefiniowanych, po wybraniu jednej częstotliwości i naciśnięciu startu wypełnienie ma się zmieniać powiedzmy co 5 sekund o 5%. No to czeka cię zabawa z opcjami Prescaler i Pwm . Bo będzie to najprostszy sposób dla Ciebie....
Kol. Roko . Częściowo takie rzeczy pojawiły się już w polskiej pomocy do BASCOM-a On-Line. Obecnie jest jednak ona czasowo niedostępna. Przykład: BASCOM AVR - Tworzenie programu W trakcie edycji (...) Jak nie pisać programów. Dość często podczas przeglądania programów udostępnionych przez inne osoby da się zauważyć pewne charakterystyczne i powtarzane...
W twoim programie wg BASCOM-AVR są błędy: Error : 42 Line : 31 Numeric parameter expected Error : 42 Line : 32 Numeric parameter expected Error : 124 Line : 32 LOOP expected Popraw program. Przepraszam za wcześniejsze błędy. Poniżej prezentuję poprawiony kod: [syntax=text] $regfile = "m8def.dat" $crystal = 16000000 $hwstack = 32 $swstack...
Witam ponownie i dziękuję za zainteresowanie. Ad. sbartos. Czy pomógł mi ten link?? Szczerze, to raczej nie za bardzo. Chociaż z tekstu wywnioskowałem, że potrzebny mi jest licznik rewersyjny asynchroniczny, (lecz dalej nie mam pojęcia jak połączyć to wszystko do kupy, aby w końcu zadziałało). Ad. DEMkO Już sprawdziłem i nie znalazłem tam takiego projektu...
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...
Nie umiem odczytać temperatur z ds18b20. Rezystor podciągający jest(4.7k), VDD i GND też są podłączone. Linia danych podpięta jest pod pb.7 Aha wyświetliłem sobie też wartości odczytanych bajtów, zarówno 1szy jaki drugi mają wartość 0xFF. podaję kod może koś znajdzie błąd. Dim Cyfra(10) As Byte Cyfra(1) = &B00000101 Cyfra(2)...
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. . Sterownik będzie miał za zadanie : 1. czekać na sygnał z pilota (odrębny układ) 2. Po otrzymaniu sygnalu z pilota odpalić...
Witam kolegów mam taki problem potrzebuje programu do mierzenia prędkości obrotowej silnika. Idea pomiaru jest znana, wykorzystywany jest do tego transoptor obiciowy. Ale to nie jest celem mojego wywodu. Potrzebuje krótkiego pomiaru obrotów zbudowanego na licznikach. Oscylator zewnętrzny 8MHz. Układ już wykorzystuje globane przerwania pochądzące od...
Witam. Dawno nie pisałem w BASCOM-ie a zdecydowałem się na niego bo myślałem, że tak będzie szybciej i prościej. Nic bardziej błędnego. Do napisania był dwu-trybowy program uśredniający do nieco przerobionego radiometru SOSNA. Ale nie w tym rzecz. O ile kod który zamieszczam powstał w miarę szybko o tyle błędu nie potrafię wyeliminować 3 dzień. Po krótce...program...
Ja trochę nie rozumiem: po co Ci i przerwanie i timer? 1. Chcesz liczyć timerem to na P3.4 podajesz liczone impulsy, a timer konfigurujesz jako counter i podajesz które zbocze impulsów ma zwiększać stan licznika. 2. Chcesz liczyć przerwaniem to impulsy podajesz na P3.2 i znowu: podajesz które zbocze ma wyzwalać przerwanie. W przerwaniu zwiększasz dowolną...
mcy: zibi11 pisze o uC rodziny '51, a nie o AVR i tam się nie da odliczać 1s przy kwarcu 11M (jak się domyślam to zapewne jest kwarc 11,0592MHz). Tajmer w '51 jest 16 bitowy i jeżeli od momentu wystąpienia przerwania do wejścia do procedury obsługi minie mniej niż 250 cykli maszynowych to NIE MA problemu z czasem potrzebnym na przeładowanie licznika!!!...
Symulator zatrzymuje się zawsze na 9 wierszu w którym jest On Timer1 Gosub Sekunda Być może wersja demo ma jakieś ograniczenia. Kompletny kod po zmianach to $regfile = "ATtiny2313.dat" $crystal = 16000000 'Kwarc w Hz Config Timer1 = Timer , Prescale = 1024 'Kofiguracja Timera Stop Timer1 'Zatrzymanie Timera Load Timer1 , 49911 'Załadowanie...
Przecież Ty w ogóle tu timerów nie używasz a polecenie waitms 60000 ZATRZYMUJE program na 60 sekund a przecież nie o to Ci chodzi... Poczytaj na forum oraz w helpie do bascoma jak używać timerów (timerów- nie opóźnień) i tego użyj, gdy będzie impuls to kasujesz rejestr licznikowy. Dodatkowo w przerwaniu od timera zwiększasz sobie jakąś zmienną, no co...
Witam czy ktos moze mnie oswiecic w jaki sposob zapisac wartosc do rejestru Counter1 pod bascomem ? Mam taki prosty program i za nic w siecie bascom nie che go lyknac ............. I taki oto blad ASSIGNMENT ERROR line 8 Procesor ma ten timer w sobie. Jezli to wina bascoma to w jaki sposob zapisac ta wartosc z poziomu jakiejs wstawki assemblerowj ?...
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ż...
Rzeczywiście zapomniałem o programie, poniżej w całości. Jest obsługa pilota z nauką, obsługa impulsatora i sterowanie przekaźnikami. Dodam że to pukanie słychać przy sterowaniu pilotem i impulsatorem. To błąd chyba jest w części dotyczącej zapisania danych do DS-a. [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 4000000 $hwstack = 32 $swstack =...
Witam! Zajmuję się aktualnie matrycą diodową składającą się ze 120 słupków i 7 wierszy. Ma ona wyświetlać dowolnie wprowadzone napisy. Zapisane są one w procu 8535, który jednocześnie wysyła je na 7 wierszy, a także daje sygnał taktujący do 2313. Po przyjściu impulsu taktującego 2313 uaktywnia kolejne układy 4514(jest ich osiem) i podaje na nie odpowiedni...
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...
Witam Oczywiście, że da się taki generator zrobić. Odpowiednią częstotliwość da się zrobić używając Timera, natomiastdo ilości impulsów zadeklarować licznik i po sprawie. Oczywiście taki generator będzie miał ograniczenia odnośnie maksymalnej częstotliwości. Programu niestety nie mam ale poczytaj sobie o Timerach a szybko będziesz dojdziesz do tego...
Wielkie dzięki za odpowiedź! Chyba mniej więcej już wiem o co chodzi. Jeśli dobrze zrozumiałem to w swoim programie ustawiasz TCCRx = 26 , OCRx = 1, czyli po 26 impulsach zegarowych pojawia się pierwszy impuls dla OCR i generowane jest przerwanie, bo OCR=1. Zmiana stanu na wyjściu OCxn, czyli 2 zmiany na impuls. Przy zegarze 16MHz daje to ok 308kHz....
No wiec programik jest. Dziala liczy tylko reset nie dziala tak jak powinien. Po nacisnieciu RESET wygaszaja sie 3 ostatnie wyswietlacze a pierwszy wywietla liczbe ktora mial przed wcisnieciem reset. Dop kolejny impuls zliczony powoduje wyswietlenie 1 na pierwszym wyswietlaczu. $regfile = "89c2051.dat" $crystal = 12000000 Config Timer0 = Timer...
Użyj jednostki input capture do precyzyjnego pomiaru czasu między impulsami. W przerwaniu input capture możesz od razu liczyć i wprowadzać zmiany do wypełnienia PWM'a. PWM oczywiście sprzętowy, nie ma sensu robić go ręcznie. Obie funkcje pracują na liczniku 1, wszystko znajdziesz w dokumentacji. Co do kontroli obrotów, algorytm też może być bardziej...
Alez jest komentarz, ze liczby sa nieprawidlowe. Wklepalem byle co, zeby pozniej sobie dokladne wartosci obliczyc, a nie zawracac sobie glowy duperelami w tamtym czasie. Co masz na mysli piszac "chlapniesz"? Chlapanie tutaj na forum czy w swoim kodzie? :) Hm skoro widzisz jeszce jakies kwiatki, to bede wdzieczny, jesli sie nimi podzielisz ze mna. :)...