To jest tak: Config Int0 = P3.2 ' Ustawienie przerwania zewnętrznego na pin P3.2 Reset Tcon.0 ' Przerwanie wywoła stan niski Set Tcon.0 ' Przerwanie wywola opadające zbocze (z H do L) To samo z Int1 To tyle pozdrowienia.
. 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ś...
Najpierw dajesz Config INT0=Falling Wprowadzasz zmienną opisującą wybrane zbocze wyzwalające przerwanie (Edge_) i w procedurze obsługi tego przerwania: If Edge_ =0 Then Start Timer1 Config INT0=Rising Else Stop Timer1 Config INT0=Falling End If Niektóre AVR'y umożliwiają konfigurację typu Config INT0= Change Wtedy przerwanie wywoływane będzie po stwierdzeniu...
Proszę. Gotowe bo jak widzę kilka If`ów do tej samej zmiennej zamiast Select Case i tym podobne kwiatki... [syntax=vbnet]$regfile = "m32def.dat" $crystal = 11059200 $hwstack = 64 $swstack = 16 $framesize = 64 Const Timeout_time = 8 'x500ms Config Submode = New ' config LCD 2X16 Config Lcdpin = Pin , Rs = Porta.2 , E = Porta.3 , Db4 = Porta.4 , Db5 =...
Witam. Procek tak się zachowuje bo nie określiłeś czy przerwanie ma być generowane przez zbocze opadające, rosnące czy przez stan niski na końcówce INT. Domyślnie wyzwalane jest stanem niskim więc wykonuje się raz za razem. Instrukcja Config INTx. Przeznaczenie: Konfiguruje sposób wyzwalania przerwania INTx. Składnia: CONFIG INTx = LOW LEVEL | RISING...
Przepraszam ale w pierwszej wypowiedzi popełniłem błąd logiczny - oba przerwania powinny być ustawione na te same zbocze a nie różne. Dlaczego, bo tak jak napisałem wcześniej nie będzie można określić kierunku zmian, zawsze bedzie ta sama kolejność wywoływania przerwań. Obojętnie czy kręcimy w lewo czy w prawo. np. ChA narastanie 0->1 a ChB opadanie...
Witam Jak wielu spotkałem się z problemem problemem kłopotliwej obsługi pilota z RC5. Po poszperaniu w necie wpadłem na http://www.elektroda.pl/rtvforum/topic20... ten temat. Jak się okazało wszystko na tym programie pracowało, ale nie zawsze. Kłopotem było napisanie programu "pod pilota". Oczywiście pochwała dla Sabotaz'a który problem "ruszył"...
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...
Chyba w końcu to zrozumiałem... poniżej przykładowy kod zmieniający kilka przykładowych poziomów jasności świecenia - DZIAŁA ! ;-) $regfile = "m16def.dat" $crystal = 16000000 Config Pind.6 = Output Bramka Alias Portd.6 Dim Moc As Byte Dim Wart_timera As Word Config Int0 = Falling 'rising wyzwala zbocze narastające Config Timer1 = Timer , Prescale...
Szanowny Panie (at)tadeko9 , przepraszam za mój poprzedni, faktycznie szorstki, ton. Co złego to nie ja :D W pierwszym poście dołączył Pan taki kod: Dlatego dołączam od razu ten dla powyższego kodu. [syntax=avrasm]2: $regfile = "attiny2313.dat" 3: $crystal = 4000000 4: $hwstack = 40 5: $swstack = 16 6: $framesize = 32 7: 8: Config Portd.2 = Input :...
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. Zbudowałem taką mała etykieciarkę do nakładania kodów kreskowych. Prosty układ w sterowaniu. Silnik krokowy napędza wałek główny, poprzez wyzwolenie sygnałem zewnętrznym (24DCV wchodzi na transoptor i do uC) impulsowany jest sterownik krokowego poprzez PWM z uC. Po wykryciu sygnału z czujnika etykiet (także transoptor 24DCV) zatrzymuje silnik...
Witam Napisalem sobie program w Bascomie ktory liczy czas stanu niskiego na pinie INT0. Powiedzmy ze wszystko dziala wporzadku ale zastanawia mnie jedna rzecz. Ponizej przedstawiam kod programu. Atmege48 idzie na 8 MHz, czyli jeden takt zegara=125ns ?? Czas licze poprzez Timer1(16 bitowy), W przerwaniu od przepełnienia licznika Timer1 napisalem procedurke...
witam! Chcialem prosic o pomoc osoby bardziej doswiadczone, mianowicie mam problem w tym, ze nie chce mi uklad wejsc w obsluge przerwania od timera1, ktory ma liczyc. Projekt ma dzilac tak, by po pojawieniu sie zbocza opadajacego ma wejsc w obsluge przerwania, a nei chce tego mi zrobic :( oto wycinki programu...: $lib "glcdks108.lbx" $crystal...
Witam. Faktycznie obsługa LCD jest bardzo prosta. 1. zainicjować LCD ( wybór trybu 4 lub 8 bit ) 2. ustawic dane na pinach D4 do D7 lub D0 do D7 3.ustawic zbocze opadajace na E Zanki wysylamy przy RS=1 Komendy wysylamy przy RS=0 W trybie 4 bitowym. Bajt wysylamy na dwa razy 1. starsza czesc bajtu i zbocze opadajace na E 2. mlodsza czesc bajtu i zbocze...
witam mam mały problem napisałem taki program ma byc on na attiny13 :) $regfile = "attiny13.dat" Config Portb.2 = Output Config Int0 = Falling Enable Interrupts Enable Int0 On Int0 Czekaj Set Portb.2 Do Loop End Czekaj: Reset Portb.2 Waitms 5 Set Portb.2 Return Kiedy na wejscie podamy 0 to na wyjsciu ma sie pojawić 0 przez 5ms i po tych 5ms stan wyjscia...
Dzieki wielkie, a jeszcze jedno pytanie, bo sklecilem teraz program, ktory bedzie mi zliczal w przyblizeniu ile auto "pożarło" juz paliwa, wiadomo ze dokladnosc tego bedzie niewielka, ale chodzi mi o przyblizenie, czy ten kod bedzie poprawny, najbardziej interesuje mnie to czy dobrze zrobilem obsluge przerwania timer1. Jezeli timer1 dojdzie do 65536,...
Witam Próbowałem na zrobić komunikację przez UART (tak i programowy jak i sprzętowy) między mikrokontrolerami Atmega8-16PU (DIP28) i Atmega8A-AU (QFP32). Program jest wzorowany na programie z książki Pawła Borkowskiego AVR&ARM7. W książce interfejs UART jest przedstawiony na przykładzie programu który łączy ze sobą dwa mikrokontrolery. do każdego z...
WItam Mam taki prosty programik, ktory ma reagowac na 1,2,3,4 lub 5 impuls (zbocze opadajace) w zaleznosci od tego co ustawie. Problem polega na tym ze caly program dziala tak jak chce. Reaguje na 1,2,3 itd zbocze ktore ustawie tylko ..za kazdym razem po przerwaniu miga mi dioda led. Wyglada to tak jak by uC sie resetowal i zaczynal start programu od...
Rozwiązuj problem modułowo,trzeba napisać najpierw najważniejsza cześć czyli obsługa przerwania zewnętrznego.Pin INT0 należy ściągnąć rezystorem stosownie do ustawionego trybu ,jeśli ma wykrywać zbocze opadające to rezystorem do zasilania,jeśli narastające to rezystorem do masy.Wewnętrzny pullup różnie się zachowuje w tej sytuacji. Robi się to tak:...
Dawno w Bascomie AVR nie robiłem - i faktycznie w ustawieniach kompilatora nie ma nic o nozce pod którą podłączasz odbiornik, ale należy ją zadeklarować poleceniem config rc5 - co zresztą pewnie korzystając z pomocy zrobiłeś. Jednak nadal problem jest w tym, że odbiór kodu musi zostać zainicjowany - i właśnie dlatego MUSISZ sprawdzać stan nogi programowo...
Łap. Naciskając przycisk enkodera wybierasz czy ustawiasz sekundy czy minuty. Mikrokontroler przykładowy żeby tylko kompilator błedy sprawdził. Podstaw swój i swoje wyprowadzenia. [syntax=basic4gl]$regfile = "m328pdef.dat" ' config for encoder_switch Config Portd.4 = Input : Przycisk Alias Pind.4 : Portd.4 = 1 ' config for encoder Config Portd.2 = Input...
Mam maly problem ze zliczaniem czasu stanu niskiego na pinie INT0. Napisalem programik ale nie chce on liczyc czasu. A zmienna Ilecykli czasem zawiera wartosci ujemne, i ogolnie pokazuje jakies nieprawdziwe wartosci. bede wdzieczny za pomoc $regfile = "m48def.dat" $crystal = 8000000 $baud = 4800 Config Timer1 = Timer , Prescale = 1 On Timer1...
Próbuję zrobić emulator dekodera PT2272 (dekoder pilotów radiowych), transmisja nie jest zbyt skomplikowana i wykonanie kodera było proste. Problem zaczyna sie po stronie odbiorczej. Na przebiegu zaznaczyłem wszystkie 4 stany jakie występują w słowie kodowym. Są to odpowiednio "0" "1" "T" i ostatni synchronizujący. http://obrazki.elektroda.pl/4855744500_1...
Witam Wszystkich Chcę wprowadzić atmegę w power down za pomocą Int0, a także wybudzić go ze snu za pomocą Int0. Nigdy wcześniej tego nie robiłem Ogólnie szkielet programy wyglądałby tak: Code: $regfile = "m8def.dat" $crystal = 1000000 ................. ' konfiguracja przerwania: Config Int0 = Falling Enable Int0 On Int0 ' -tu brakuuje kierunku do subrutyny...
opracowałem mój program do bramy.. lecz mam jeszcze jeden problem z tym przerwaniem INT0. Gdy np brama się otwiera i po zwarciu zworki portd.2 od INT0 układ prawidłowo zatrzymuje się lecz jak teraz włączę żeby brama się zamykała na zwartej zworce i po chwile od-zewrze przejdzie na stan wysoki zamykanie bramy się zatrzymuje jakby przerwanie działało...
Rozumiem Twoją ideę, ale nie za bardzo wiem jak ją zaimplementować w Bascomie. Na razie mam coś takiego: http://obrazki.elektroda.pl/7270697700_1... Nie wiem czy coś takiego się sprawdzi przy większej prędkości pracy i transmisji radiowej, czy tam nie będzie zbyt dużych rozbieżności w czasie trwania? Co do Twojego pomysłu spróbuje coś...
odświeżę mojego kotleta, ponieważ problem znów powrócił urządzenie które skonstruował znajomy przestało działać, czujnik w skrzyni generuje impulsy prądowe 7mA i 14mA przez wysokie i niskie zbocze na wieńcu wałka zdawczego. Chce zwiększyć częstotliwość tych impulsów dokładnie o 1,12 w stosunku we/wy dodam jeszcze wsad z atmegi8 użytej do tego urządzenia...
Mam mały problem z programem napisanym w bascomie , mianowicie założenia są takie jest to odbiornik pilota IR na atmega 8 chodzi mi o sam algorytm dekodowania sygnału , który ma dekodować wszystkie rodzaje pilotów obojętnie czy są w standardzie RC5 czy SONY na wyświetlaczu LCD mam mieć wyświetlane umownie wartość jedynek i zer i problem polega na tym...
Ok, nikt więcej nic nie podpowiedział, więc pomyślałem jeszcze trochę. Wydaje mi się, że sniffowanie transmisji będzie łatwiejsze. Wyświetlacz obsługuje sprzęt audio, więc nie ma tutaj szybkich zmian na wyświetlaczu. Po przeczytaniu datasheetów, doszedłem do wniosku, że w momencie opadania zbocza E wszystkie sygnały muszą być stabilne. Wydaje mi się,...
Nie wiem czy kod w Bascom na coś Ci się przyda ale właśnie na takiej zasadzie jak w tym programie zrobiony mam pomiar prędkości wiatru w moim pozycjonerze. Troszkę inaczej wykorzystuję tu timery niż założyłeś ale... Zostawiłem Ci tylko fragment odpowiedzialny za liczenie impulsów i dodałem obsługę wyświetlacza. Program jest na tyle prosty, że z interpretacją...
Przepraszam za dłuższą nieobecność. Nie mając nic nowego (i mądrego) nie pisałem. Ale w międzyczasie polutowałem zestaw startowy, a ostatnio napisałem inny program, który umożliwia (w zamyśle) liczenie dokładniej częstotliwości dla "paczki" impulsów, tym razem około 500 Hz. Wiem, że to dosyć skomplikowany tok myślenia, pewnie można to zrobić prościej,...
Pisząc program stanąłem przed problemem odbioru kodu RC5 z pilota ale z użyciem przerwania. O ile w BASCOM 8051 GETRC5 w przerwaniu działa doskonale, to w BASCOM AVR jest to kompletna porażka. Wadą Bascomowej funkcji GETRC5 jest: 1) Dziadowskie działanie w przerwaniu (niby działa ale traci pierwszy pakiet z pilota) 2) Zastosowanie jej w programie powoduje...
Witam!! Układ sterownika tampoprintu zbudowany na bazie mikrokontrolera AVR, schemat poniżej, zasilanie dostarczane przez dwie osobne przetwornice +5V dla logiki oraz +24V dla elektrozaworów i oświetlenia, na przewodach zasilających koraliki ferrytowe, pole masy na płytce, tranzystory sterujące cewkami zabezpieczone diodami, przy samych cewkach we wtyczkach...
Niedokładnie przeczytałeś. W zakładce nawigator: Config Timer- uwaga! po ustawieniu prascale licznik natychmiast zaczyna zliczanie. Można użyć start Timerx i stop Timerx Np. Config timerx, prescale 'timer zaczyna liczyć stop Timerx 'timer stoi- ale już coś zliczył Timerx=y 'timer ma wartość początkową =y - np.0 Start timerx ' Timerx zaczyna liczyć od...
Przerwania PCINTx wykonują się przy każdej zmianie stanu logicznego, niema możliwości konfiguracji np. tylko dla zbocz narastającego lub opadającego. Stan zbocza na poszczególnym pinie sprawdzasz w przerwaniu. Attiny13 ma 6 pinów PB.0-PB.5 (PCINT0 do PCINT5) które mogą wywołać przerwanie. I tu jest jedna myląca rzecz :) dla tych pinów jest tylko jeden...
Ok rozumiem. Spróbuj tego. Użyte przerwanie. Można też zrobić bez zależnie od potrzeb. $regfile = "m8def.dat" $crystal = 8000000 Dim Zmienna As Word Dim A As Bit Config Pinb.1 = Output Config Pind.2 = Input Set Portd.2 '============ definicje timera ================================ Config Timer1 = Timer , Compare A = Toggle , Compare B = Disconnect...
W niektórych uC mozna ustawic Config intx = change
wynik końcowy faktycznie za każdym razem jest inny. (at) emarcus możesz podpowiedzieć jak powinien wyglądać serwis int1? Popatrzyłem troche bliżej na twoj kod. Z jakiego powodu potrzebujesz otrzymać wynik ("Czas_2") z dokładnocią aż do 9 miejsc decimal? Jeżeli jeden z czynników iloczynu (rozdzielczość timera) jest liczbą wymierną z dokładnościa do...
Hej, Dzielnik zmieniłem i jest przed diodą. Dodanie kondensatora C6 za diodą powodowało, że przy rozłączeniu zasilania mega nic nie zapisywała i zliczała od zera. Podobnie jak wpisanie polecenia RISING. Odlutowałem C6 i zmieniłem polecenie na FALLING. Zamieniłem dzielnik tak jak był na początku a więc 100K i 18K tak aby comparator wyzwalał się przy...
Nie zadeklarowałeś na jakie zbocze reaguje INT, czyli masz domyślne ustawienia procesora (rejestry są ustawione po resecie na domyślne). Jakie dane wystawia Twój odbiornik IR, czy w stanie spoczynku masz stan H czyli +5V? Jeśli tak to przerwanie powinno być tylko na zbocze opadające. Twój odbiornik ma stan wysoki jak nic nie odbiera, każdy wysłany bit...
Generalnie, W Bascomie obsługa RC5 pozostawia wiele do życzenia dlatego też Mark w najnowszej wersji ma wprowadzić obsługę RC5 na przerwaniu ICP ("prawdziwie" w tle) według poniższego kodu, który udostępniam i polecam: [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 8000000 Config Timer1 = Timer , Capture Edge = Falling , Prescale = 8 '1 tick= 1...
Witam Niestety tamten sposób - program miał wade, przykładowo kiedy jeden z kanałów zmienił swój stan kilkukrotnie stan licznika był zmieniany w jednym kierunku (w zależności od stanu drugiego kanału) prostymi słowy wahający się enkoder generował błędy rozwiązałem ten problem ustawiając wejście by reagowało na zbocze rosnące i opadające. [syntax=bascom]$regfile...
W sumie z tego co widzę nie potrzebujesz generować sygnału PPM - wystarczy Ci jego detekcja, wyznaczenie neutrum (1,5 ms, ale nie przywiązuj się do dokładnej wartości) oraz po zauważeniu założonego odchylenia od neutrum proste załączenie jakiegoś PINu (ewentualnie danie tam sygnału PWM żeby ładnie migacz migał) Jak pisałem nie znam Bascoma, programuje...
Sygnał podaję na nóżkę PORTD.6, mam go skonfigurowanego tak: [syntax=basic4gl]Config Portd.6 = Input[/syntax] Timer konfiguruje jako timer, ponieważ chcę mierzyć czas trwania zbocza: -konfiguruję za zbocze opadające -przepisuję wartość timer1 do zmiennej A -przełączam na zbocze narastające -przepisuję wartość timer1 do zmiennej B -od zmiennej B odejmuję...
Witam. Jestem początkujący w programowaniu więc proszę o wyrozumiałość. Potrzebuje program sterowania klapą (otwieranie i zamykanie dwie krańcówki góra dół i silnik lewo prawo). Chce aby jazda w gore lub w dol odbywała się w momencie zmiany stanu pewnej zmiennej zewnętrznej konkretnie zboczem rosnącym. Wyczytałem, że w Bascomie można zrealizować t przerwaniem...
Witam. Robię sobie komputerek spalania do samochodu. Wszystko ładnie wychodzi poza czasem wtrysku a co za tym idzie - spalaniem. Występują jakieś zakłócenia i nie wiem dlaczego. Może ktoś pomoże....:) Kod: $regfile = "m168def.dat" $crystal = 16000000 ''''''''''''''''''''''''''konfiguracja portów'''''''''''''''''''''''''''''''''' Config Portd...
Troche sie zamotałem i nie wiem jak wybrnąć... Jak zliczyc przerwania on timer0, innymi słowy jak policzyc ile 1ms wystąpiła przy podczas przerwania wtrysku... [syntax=basic4gl] $regfile = "m128def.dat" $crystal = 16000000 $hwstack = 32 $swstack = 32 $framesize = 32 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6...
Witam. Próbuję napisać program odpowiedzialny za pomiar odcinków czasowych pomiędzy impulsami sygnału S1 i S2 (zgodnie z załącznikiem). Proszę o prześledzenie kodu, wszelkie uwagi i sugestie mile widziane. Nie mam pewności co do poprawności pobierania wartości licznika TIMER1 za pomocą TCNT1. 'program do pomiaru okresu sygnałów podpiętych do PD.2(INT0)...
A ja dzisiaj nie byłem w pracy. Wziąłem zaległy urlop z 2007r. I oto co zrobiłem 'program do pomiaru czasu wciśnięcia przycisku podpiętego do PD.2(INT0) i PD.3(INT1) przez układ RC tłumiący drgania przycisku. 'Przy tych ustawieniach Timer1 zwiększa się co 128us a licznik przepełnia się co 8.389s 'Program sprawdzony i działa. 'W celu...
bascom zbocze zbocze bascom bascom zbocze opadać
ws2812 choinka mercedes bezpieczniki światła cofania wymiana grzałki
amica awx712dj candy grandovito
UPS on-line do agregatu Barracuda 2800 – Eaton 9SX, APC SRT, Vertiv GXT5, Riello, CyberPower Barracuda 2800 AVR a piec CO z 3 pompami IBO – czy wystarczy AVR czy potrzebny czysty sinus?