Bascom zawsze używa metody obliczeniowej, która należy do zmiennej wynikowej. Oznacza, że w tym przypadku Bascom wykonuje obliczenia na bajtach. Wartość obliczeniowa2 jest typu Word. Czyli (1) = Liczba_ok / 100 zmienna Liczba_ok traktowana jest jako byte. Jedynym sposobem na konwersję jednego typu na inny jest po prostu przypisanie go w ten...
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).
. 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ś...
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...
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...
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?...
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....
Bo kontaktrony w licznikach rowerowych są jakieś szybsze. Robiłem kiedyś eksperymenty z rowerem i faktycznie zwykłe kontaktrony "rurkowe" nie nadążały się przełączać. Pierwszy z brzegu kontaktron KA-02 ze sklepu na literę T przy napięciu 5V i i prądzie 100mA ma częstotliwość przełączania 125Hz. Czas załączania do oporu 1Ohma wynosi ok 2,5 ms Czas odpuszczenia...
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 Patrz DEBOUNCE pin_portu , stan , etykieta w Help
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ś...
http://obrazki.elektroda.pl/7329866000_1... Miernik częstotliwości o całkiem niezłych parametrach, bo potrafiący mierzyć częstotliwości od 1Hz do 10MHz (9,999,999Hz) z rozdzielczością 1Hz w całym zakresie. Idealny do generatorów funkcyjnych lub jako zwykły miernik. Do tego tani i prosty w wykonaniu, z ogólnodostępnych części, a małe wymiary...
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...
Jeśli chcesz uzyskać takie szybkie przedziały czasowe to proponuję popędzić licznik TIMER1 bez preskalera i ustawić go w tryb CTC by sam się przeładowywał. W przypadku gdy zliczy 1000 impulsów to przerwania właśnie będą generowane z częstotliwością 16kHz (To daje jakieś 400 instrukcji maszynowych możliwych do wykonania między przerwaniami). Niestety...
dużo prościej byłoby jakbyś zastosował 16-bitowy licznik COUNTER1 u mnie w bascomie często "counter1 = 5878" nie działa.. nie wiem może bascom coś miesza przy operacji na tych dwóch rejestrach więc polecam coś takiego jest TH1 czyli starszy bajt counter1 i TL1 czyli młodszy jeśli starszy = 1 a młodszy 0 to całość wynosi 256 korzystając z counter1 (16bitów)...
Proszę postępuj zgodnie ze schematem użytkowym, który załączyłem (post #4 21 Lip 2015 21:39). Tam jest przedstawione gotowe rozwiazanie. Zacisk 21 podłączasz do masy, zaś zacisk 20 do GPIO. Stanem aktywnym jest zwarcie pinu GPIO do masy. Następuje to w momencie pojawienia się impulsu (dokładnie w momencie kiedy na ORNO mrugnie dioda). Dalsza procedura...
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...
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...
masz cos tak jak kursy do bascoma, tam masz jak zrobic licznik na timerze. Pozatym masz dobra ksiazke i helpa
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
Witam! Zwracam się do was o pomc w napisaniu programu do Atmeg8 w bascomie, który miałby pełnić funkcję licznika. Korzystałem z kilku programów, ale ilekroć chciałem sprawdzić działanie na symulatorze Bascom AVR tylekroć żadna cyferka nie posuwała mi się do przodu na wyświetlaczu. :(. Nie wiem czy jest to wina programów, z których korzystałem czy poprostu...
Ok po kolei, wywalam wszystko z programu, zostawiam tylko...... zmienna impulsy jest zwiększana o kilkanaście a nie tylko o jeden ............ Licz: If Scisk = 1 And Ok = 1 Then Incr Impulsy Elseif Scisk = 0 And Ok = 1 Then Decr Impulsy End If Return Kontaktron (Reed switch) generalnie jest stosowany jako proxy switch, czyli w ukladach statycznych....
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,...
(może mi odbije ;) ) Albo się napiję! ;) Tylko wtedy licznik będzie średnio działał, wydaj mi się że w Gdyni jest co najmniej jeden bascomowiec, który skutecznie zapcha pamięć i ram procesora mniej lub bardziej tandetnym kodem. Bascom Rulessss! ;)
Witam, chciałbym prosić pierwszy raz od 16 lat w zasadzie o gotowca. Lub szkic programu żebym mógł sobie go sam napisać. Chcę dokonać przeróbki licznika https://sansan.cc/en/productsinfo.aspx?P... Chcę w nim zrobić: 1. W momencie dotarcia do "umownego" czerwonego pola czyli powiedzmy zapalenia przez licznik diody LED 6000 obr. Atmega...
Dobrze kolega napisał najpierw naucz się migać diodą a później naucz się obsługi timerów. Kolejny krok jak zliczysz 648 impulsów to zwiększasz zmienną litr o jeden. Zerujesz licznik i zaczynasz od nowa. I tak w koło. To jest przepływomierz do wody czy auta?
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ć.
No bo licznik jest bardzo szybki. Twój jeden impuls spowodowany dołaczeniem przewodu to jest kilkadziesiąt impulsów które widzi procesor. Musisz dać tzw Debouncing, albo chociażby kondenstaor na wejściu np 100n.
A na początku dyrektywe $regfile = "M8535def.dat" wrzucił? Potrzebna tam na pewno jest. A bascom pewnie coś chrzani w timerach, żadna nowość. Bascom powinien pozostać tylko dla rodziny 90S (stare AVR) bo z nowszymi sobie często nie radzi...
Zmieniłem jeszcze raz program, tak aby nie wykonywał dodatkowych pętli. W sumie działa sprawniej niż poprzednie wersje ale po pewnym czasie nadal się restartuje [syntax=basic4gl]$regfile = "m8adef.dat" $crystal = 8000000 $hwstack = 40 $swstack = 16 $framesize = 32 Config Pind.0 = Output Config Pind.1 = Output Config Pind.6 = Input Config Pind.7 = Input...
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...
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
Napisałeś, że spodziewasz się ok 13000 obrotów na sekundę. Licznik 16 bit powinien przyjąć Ci to z ponad czterokrotną nadwyżką. Drugi 8bit timer odmierza Ci czas pomiaru - np.: 1/4 sekundy - zależnie od tego jakiego używasz zegara i preskalera timera. Przerwanie timera oznacza że ukończyłeś pomiar ilości impulsów licznikiem. Wtedy zatrzymujesz timer,...
Po prostu byk w BASCOMie. Prescaler jest ustawiany jako CS02..CS00 = 110 a to oznacza, że licznik nie zlicza impulsów zegarowych tylko zewnętrzne na T0 z opadającym zboczem.
...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....
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....
Zawsze byłem ciekaw dlaczego BASCOMowcy tak często stosują Toggle. Może mi to kolega wyjaśni :D Nie lepiej po prostu zastosować zapis 1 albo 0? Nie trzeba wtedy pamiętać jaki był poprzedni stan. Natomiast co do programu to on raczej jest błędny. Dokonuje on Toggle LED w każdym przerwaniu. A chyba powinien dopiero po przekroczeniu wartości A00 i A100?...
Znam Turbo Pascala a Bascom jest do niego bardzo podobny prawie to samo to przerobiłem sobie ten kod pochodzący z tej strony $crystal = 4000000 $regfile "attiny2313.dat" Dim Wynik As Long Config Timer1 = Counter , Edge = Rising Cls : Lcd "Dosimeter" : Wait 1 Do Cls Timer1 = 0 Start Timer1 Wait 40 Stop Timer1 Cls Lcd ; Wynik...
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...
Witam! Jak rozumiem, to masz licznik impulsów zewnętrznych, i chciałbyś prezentować wyniki na bieżąco. Jakiego rodzaju szyny używasz do sterowania tego wyświetlacza? UART-a czy I2C? Jeśli to drugie to na czas komunikacji musisz wyłączyć przerwania, bo może się zdarzyć, że zostaną zakłócone impulsy SCL (zegara).
No jak za każdym razem do licznika wpisujesz zero to jakim cudem ma być spełniony ten warunek timer1= A?
Witam, Potrzebuje zrobić sterownik tranzystorów do zasilacza impulsowego topologi half-bridge. Tranzystory są tutaj sterowane PWM na przemian. Chciałem zastosować sterowanie PWM które miało by działać w następujący sposób: [syntax=vbnet]Config Portb = &B11111111 : Portb = &B11111111 Config Timer0 = Timer , Prescale = 8 Enable Interrupts Enable...
Witaj! Najlepiej, żeby to a bascom basic napisać. Mam i programator i programik i zresztą kiedyś właśnie tylko w tym pisalem kilka prostych programów, ale teraz marnie pamiętam to wszystko...a czas mnie goni z tym projektem..
Kolego jacynka84 . Układy MCS-51 nie posiadają konfigurowalnego preskalera. Jest tylko dzielnik przez 12. Wykonałem go na procesorze 89c2051 z 12MHz kwarcem. Program sam do niego pisałem i wydaje mi się że powinno być wszystko dobrze bo wyliczenia się zgadzają a jednak jest chyba coś nie tak. Gdyby BASCOM był idealny to działałoby to porawnie - z błędem...
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...
Tak jak napisał Motronic- czujnik indukcyjny lub hallotron. Z czujnikami optycznymi będą kłopoty. I chodzi nie tylko o zakłócenia ze świetlówek. One są wrażliwe na silne oświetlenie (słońce zaświeci w hali gdzie stoi maszyna- i ściągają cię z urlopu bo coś się zepsuło) i na zabrudzenia. Taki biały punkt na uchwycie tokarki po paru dniach nie będzie...
Ostatnio pracuje w bascomie... Chce napisać prosty program pod atmega8, który będzie sterował 4 wyświetlaczami 7 segmentowymi.. program ma być licznikiem impulsów które mają być wyświetlane na wyświetlaczach... zastosowałem metodę multipleksy na tranzystorach BC327.. Moje pytanie.. co w kodzie poniżej jest źle ze program nie może skompilować: (błąd...
Cześć. Przeglądałem archiwum ale nic dla siebie konkretnego nie znalazłem. Mam problem z programem (konfiguracją przerwań). Chciałem wykonać mały i prosty licznik obrotów. Wykonałem przetwornik obrót/impulsy na diodach, zakładam że nie występują w nim "drgania styków" :) Otrzymany sygnał chciałem podać na wejście INT0 i za pomocą Timera zliczać pojawiające...
Zrobiłem taki układzik do pomiaru odległości od przeszkody: http://obrazki.elektroda.net/6_125525326... Do tego zaczątek programu: $regfile = "M8def.dat" $crystal = 16000000 'Config Lcdpin = Pin , Db7 = Portb.0 , Db6 = Portb.1 , Db5 = Portb.2 , Db4 = Portb.3 , E = Portb.4 , Rs = Portb.5 Config Portb = Output Enable Interrupts Ocr2...
Aha no ok to jak teraz dobrać odpowiednią ilość impulsów raz żeby na siebie nie nachodziły 2 i żeby to działało to jest uzależnione jeden impuls to 1 polecenie a że tak się jeszcze głupio zapytam ja pracuje teraz nad tym żeby wyświetlacz LED pracował multipleksowo w przerwaniach czyli jak się przepełni licznik to wykona się podprogram multipleksacji...
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...
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. Od niedawna uczę się programować mikrokontrolery i postanowiłem rozpocząć zabawę na układzie attiny2313. Zrobiłem układ, który miał zliczać impulsy (w przyszłości ma to być licznik do motoru) projekt jest zaczerpnięty z tej strony: http://www.portalnaukowy.republika.pl/ob... jednak nie mogę znaleźć nigdzie przełącznika hallotronowego...
Witam! Na podstawie informacji zawartych w książce "Programowanie mikrokontrolerów w języku Bascom" napisałem program: Problem: Problem polega na tym, że program nie działa poprawnie. Po pierwsze procesor zamiast 1 sekundy odmierza ok. 8s. Jest to dla mnie nie zrozumiałe, ponieważ kodu zawierającego instrukcje tyczące się timer0 nie zmieniałem. To samo...
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...
Czy np do prędkościomierza zastosowanie wait wystarczy?wolałbym dokładniej, co będzie jeśli będe chciał cos w tym czasie obliczać. Wystarczy, jak dasz Wait1 przykładowo, to w czasie 1 sekundy licznik policzy ci ilość impulsów z czujnika, a dla dokładności jak pisałem wcześniej, trzeba sobie z generatora puścić daną częstotliwość, aby sprawdzić poprawność...
Witam. Przeszukałem dokładnie internet i nie znalazłem podobnego przykładu stąd zapytanie. Czy może ktoś podpowiedziec jak napisać obliczenia na zmiennych ? Mam zadanie napisać listing i zaprogramować procka , który będzie mierzył ile impulsów z timer1 mieści się w przerwaniu INT1 , tzn. kiedy INT1 =1 wtedy ile w tym czasie impulsów zliczy Timer1. Licznik...
Witam, buduje obrotomierz oparty o czujnik hala, Proszę o sprawdzenie programu do tego schematu. I o wszelkie wskazówki co można by było zmienić. Mam jeszcze pytanie jak w programie bascom ustawić up żeby chodził na zewnętrznym kwarcu 8Mhz? [syntax=basic4gl] $crystal = 4000000 $regfile "attiny2313.dat" Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2...
Skopiowałem z postu 11 tego tematu A wygląda to tak Dodano po 4 Przy kompilacji wyskakuje mi Pass1 zamiast % zużycia pamięci (Flash used)
Config Portb = &B11111100 ' ustawiam pind.7 i 6 jako wejści dla S1 i S2 Tak na pierwszy rzut oka instrukcja konfiguruje pinb.7 i pinb.6 jako wyjścia a pinb.0 i pinb.1 jako wejścia (pozostałe jako wyjścia), a nie jak podano w komentarzu. Debounce Pinb.7 , 0 , Licznik , Sub 'odkłucenie wejścia licznika impulsów Debounce Pinb.6 , 0 , Mikrostyk , Sub 'odkłucenie...
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...
Proponowałbym najpierw sprawdzić oscyloskopowo jak nadaje ta "reszta" pilotów. Niekoniecznie musi to być RC6. Może to być np. SIRC. Na podstawie tego możesz taką procedurkę napisać samemu: http://www.sbprojects.com/knowledge/ir/r... Jak to robi BASCOM przy RC5? Przy odczytywaniu kodów przez GETRC5 robi to po najmniejszej linii oporu. Ustawia licznik...
bascom charakteryzuje sie latwoscia programowania o ile w asemblerze musisz dobrze znac budowe procka to w bascomie az taka duza wiedza nie jest potrzebna <co moze jednak nie jest az takim duzym plusem :roll: >chac np uruchomic licznik w asemblerze trzeba wpisac odpowiednie stany w odpowiednie rejestry natomiast w bascomie zalatwiaja to wpisane...
Witam! Jakiś rok temu zainteresowałem się elektroniką. Zrobiłem kilka układów. Obecnie interesuję się programowaniem mikrokontrolerów. Zakupiłem na allegro zestaw uruchomieniowy EvB 4.3 ( wystarzczy, że wpiszecie w wyszukiwarce i będziecie wiedzieli o co chodzi) - inaczej po prostu płytka uniwersalna. Z tym, że przeważnie do tego zestawu jest dołączany...
Witam chce użyć procesora AT90S2313 do sterowania szybkości silnika. I chyba najlepiej do tego będzie nadawał się licznik timer1 skonfigurowany, jako PWM. Czytałem o tym w pomocy, ale jakoś niewiele mi to gada:( z jakiego pinu będą wychodzić te impulsy??? Z T1(PD5) czy OC1(PB3) czy jeśli wpisze te „dosconnet” to wyjściem biedzie T1 a jeśli...
Witam . Od dłuższego czasu walczę z obsłużeniem licznika impulsów w ww procesorze . Otóż sprawa wygląda następująco . Mam sobie układ taktowany częstotliwością 4 Mhz z kwarcu zewnętrznego . Na pind.5 (t1) przychodzi sobie sygnał prostokątny o częstotliwości 1 Mhz . Jest on podawany przez pewien okres czasu a ja mam zliczyć jego ile było okresów tego...
'C012a Bardzo prosty stoper 0,1-sekundowy Dim Dziesek As Byte , Sekjed As Byte , Sekdzies As Byte , Minjed As Byte Dim 100ms As Byte , Ktorywysw As Byte , Licz As Bit Config Portb = 255 : Portb = &B11111111 : Config Portd = &B1111100 : Portd = &B1111111 Config Timer0 = Timer , Prescale = 64 : Enable Interrupts : Enable Timer0 Dziesek...
to zatrzymanie timera przed załadowaniem wartości jakby pomogło (przynajmniej nie zachowuje się dziwnie) teraz miga w równych odstępach ale nadal nie działa tak jak potrzeba przy ustawieniach jak poniżej P,I = 20 mignięcie diody jak i przerwa trwają po ok 1 sekunde (na razie testuje na diodzie bo oscyloskopu niestety nie posiadam ) a chyba tak być nie...
Witam. Chciałem w celach edukacyjnych zrobić częstotliwościomierz. Ponieważ nie mam za bardzo skąd wziąć zewnętrznych impulsów postanowiłem, że jeden pin procka będzie je generował, a przerwanie int0 będzie liczyć ile tych impulsów było. Do odmierzenia czasu posłużył timer1, który ma odliczyć sekundę (więc wynik od razu w Hz). Po upływie sekundy 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....
Szkoda że na '51, bo na AVR było by łatwiej. Można to zrobić tak: Procki '51 mają wejścia zewnętrznego przerwania wyzwalanego stanem niskim, lub zboczem opadającym. Ciebie interesuje to drugie (bo zboczemn narastającym się nie da jak w AVR). Nie wiem jak wygląda konfiguracja przerwań w BASCOMie, zobacz w dokumentacji, ale podejrzewam że coś w rodzaju:...
na każdym który napiszę jest tak samo, w nowym temacie powyżej podałem ustawienia fuse bitów, zaraz wkleję kawałek na którym teraz się bawię Dodano po 4 to kod na którym teraz się bawie '***************************************... '-------------------- konfiguracje ----------------------------------------... $regfile...
To trochę kwestia gustu. Ja chciałem wykorzystać gotowy metrowy pasek. Chcąc dołożyć drugi, wewnętrzny miałbym problem, bo wszystkie one mają taki sam raster, więc w praktyce musiałbym robić swój pasek z innym mniejszym odstępem między diodami dla wewnętrznego okręgu. A niby dlaczego? Przecież wskaźnik godzinowy wymaga jedynie 12 diod, w czym przeszkadza...
Tłumaczą Ci ludzie już drugi dzień. Zwłaszcza kolega Logan . Czy tak trudno przeczytać w Helpie: Instrukcja ON INTERRUPT Przeznaczenie: Wykonuje skok do podprogramu gdy wystąpiło określone przerwanie. Składnia: ON źródło_przerwania nazwa_podprogramu Jeśli trudno to porzuć programowanie - są łatwiejsze profesje.
Witam, bascom wysypuje mi error 1 w tym programie: $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 1a Config Lcdpin = Pin , Db4 = Portd.6 , Db5 = Portd.4 , Db6 = Portb.0 , Db7 = Portd.7 , E = Portb.2 , Rs = Portb.1 Config Pinc.5 = Input Config Pinc.4 = Input Config Timer1 = Counter , Edge = Rising 'konfiguracja Timera do zliczania...
Witam wszystkich forumowiczów A więc mam problem z bascomem a zaczyna się tak że bascom nie kompiluje mi większości np.config clock $regfile = "m8def.dat" 'Dyrektyway dla kompilatora. $crystal = 8000000 'Oscylator wewnętrzny o częstotliwości 8MHz. Enable Interrupts Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6...
Witam, mam mały program napisałem przy użyciu książki Pana Marcina Wiązania oraz przy użyciu elektrody do obsługi matrycy led, lecz mam nieporządany efekt stroboskopowy. Nie widać liter, tekstu, tylko wszystkie diody mrugają. Czy to jest spowodowane zasilaniem czy też błędem programu? Dorzucam dwa programy, przy których pracowałem i schemat, schemat...
Witam. W przerwaniu wpisałeś : Timer1 = 131 do zliczenia zostało 65536 - 131 = 65405 Przy wpisaniu do Timer0 tej samej wartości do zliczenia pozostaje : 256 - 131 = 125 impulsów. Myślę, że dobrze zrozumiałem Twój post.
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.
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...
Tylko mikrokontroler... bierzesz jakiś AVR... BASCOM + programator za grosze + 2 dni posiedzisz i sam to zrobisz... Prostsza plytka, tańsze, same korzyści... Pozdrowienia
Liczniki są osobnymi blokami uC, więc jeśli sygnał wejściowy jest poprawny, to impulsy powinny być zliczone poprawnie. Podany wyżej program to program użyty w moim mierniku częstotliwości okrojony z niepotrzebnych ci rzeczy, które mogłyby zaciemnić jego sens. Działa przy częstotliwości kilku MHz.
Co można z tego zrobić: Zegarek, wyświetlacz jakichś liczb, minutnik, licznik impulsów, prędkościomierz do roweru, obrotomierz... Jak: Poszukaj o programowaniu procesorów AVR (przez ISP), dokumentacja ATTiny2313, języki C, BASCOM
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...
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...
Zrobiłem taki schemat 'na kolanie' (czyt. bardzo niechlujnie :) ) i za nic nie mogę zejść poniżej sześciu scalaków. Robiłem to na licznikach '192 (dwie sztuki), dekoderach '47 (dwie sztuki), bramki NAND schmitt (wykorzystane są dwie, ale w obudowie są 4) i bramki NOR (wykorzystana jedna, chociaż w obudowie też są 4). NANDy oczywiście do eliminacji drgań...
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...
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...
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 '---------------------------------------...
Przeniosłem Temat był raportowany!
Musisz zliczoną ilość impulsów podzielić przez 100 :>
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...
Czyli bardziej taki komputerek podkładowy, bo licznik, jak sama nazwa wskazuje, liczy impulsy, ew. prędkość.
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...
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...
Po przepełnieniu licznika on się zeruje automatycznie? W większości trybów licznik zeruje się podczas przepełnienia. Wyjątkiem są niektóre tryby PWM, np. Phase Correct PWM Mode: The phase correct PWM mode is based on a dual-slope operation. The counter counts repeatedly from BOTTOM to MAX and then from MAX to BOTTOM.
Udało mi się odpalić program z książki Pana Wiązani, ale tam timet odmierza 1s Jak to przeliczyć? Jest jakiś na to wzór? Rzeczywiście musiało się 'udac odpalić' bo ten program nie jest pozbawiony błędów (!) \ A jak zrobić żeby odmierzał np 10 sekund? Zmiana preskalera wydłużyła max do 2sekund czas. Aby timer1 odmierzył inne/dowolne interwały czasu,...
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 ,...
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ę
Programu się wstydzę, bo jest bardzo "prostacki", i pewnie zagmatwany :) Wydaje mi się że te resety wynikały z tego, że przerwanie od T0 (które może się pojawiać nawet co ok 0,3s) "nakładało" się z przerwaniem od T2, chociaż takie coś chyba nie powinno mieć miejsca:) A może do odmierzania 0,5s użyć DS1307? Bo mam przygotowaną płytkę pod niego, gdybym...
licznik impulsów bascom bascom licznik impulsów licznik impulsów
gumka przewodząca wyświetlacza alpine kostki termostat weller
radio samochodowe denon avr1910
Marquardt 1297 Trigger Switches for Power Tools: Variants, Ratings, and Replacement Guide Jak dorobić pilot do bramy wjazdowej: instrukcje i porady