Proszę niech mi ktoś powie czy dobrze myślę: Gdy ustawiam Timer1 w tryb CTC = 4 (WGM13=0, WGM12=1, WGM11=0, WGM10=0) to zapis do OCR1A nie jest buforowany, czyli powinien zmieniać się natychmiast po wpisaniu do niego wartości. Timer1 wciąż zwiększa swoją wartość o 1 i gdy osiągnie ona wartość taką jak w OCR1A to wystąpi przerwanie a Timer1 zostanie...
A może wyłumaczyć mi ktoś tak jaśniej niż whelpie bascoma ;) co to jest ten prescaler i co on dzieli. Może tak po kolei jak twój program widnieje: 1. Jeżeli PORTB jest przeznaczony do obsługi LCD to nie konfiguruj go w ogóle w stylu jaki podałeś w pierwszym poście. Config Portb = &B11111111 : Portb = &B11111111 ===> źle!!! Może to powodowac zakłócenia...
też niedawno zacząłem zabawę z uP ale naskrobałem coś takiego, jeśli źle, to mnie poprawcie. $regfile = "attiny2313def.dat" 'attiny2313 $crystal = 1000000 ' 1MHz Config Portb = Output Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.0 , Rs = Portb.2 Config Lcd = 16 * 2 'wyświetlacz 2 linie po...
Mam Attiny2313, wewnętrzny rezonator 4MHz, Timer1 16 bitowy. Czas jednego cyklu dla rezonatora 4MHz wynosi 0,25us Preskaler ustawiony na 1024 Timer ma zliczać do zadanej wartości, zgłosić przerwanie od doliczenia do pewnej wartości i się wyzerować. Ustawiam wartość do jakiej ma liczyć timer: 62500 62500*1024=64M 64M*0,25us=16s Niestety układ zlicza...
Z tym kodem jest pomiar zliczeń Timera ale przy większych częstotliwościach powyżej 10Hz znowu pojawia mi się cała gama liczb zamiast zbliżonej wartości jak poprzednio. Kolejny problem polega na tym, że jeśli zatrzymam generator to wyświetlacz cały czas pokazuje ostatnią wartość zamiast np. zero. Zatem trzeba skonfigurować przerwania Timera. No i oczywiście...
Komentarze nie są dla nas- tylko dla Ciebie. $regfile = "attiny2313.dat" $crystal = 12000000 Config Timer1 = Timer , Prescale = 256 Config Timer0 = Counter , Edge = Falling Config Lcd = 16 * 2 Config Lcdpin = Pin , Db7 = Portb.7 , Db6 = Portb.6 , Db5 = Portb.5 , Db4 = Portb.4 , E = Portb.3 , Rs = Portb.2 Cursor Off Cls Timer0 = 0 Start Timer0...
emarcus dzięki teraz już gra. Mam jeszcze takie pytanie bo tak jak wcześniej pisałem docelowo chcę zrobić miernik indukcyjności. Przejrzałem projekty mierników w necie i na elektrodzie i są oki tylko większość z nich opiera się na mikrokontrolerze PIC 16F84A. W sumie mam wsad do procka w asm ale kiepsko znam asemblera wiec postanowiłem napisać własny...
Użyj timera1 w trybie CTC (zobacz w dokumentacji). W tym trybie timer1 liczy od zera do wyznaczonej wartości, generuje przerwanie (SIG_COMPA1), a następnie jest automatycznie zerowany. W ten sposób unika się rozbieżności związanej z opóźnieniem pomiędzy generacją przerwania a wpisaniem nowej wartości do TCNT1. Dodatkowo sugeruję zdefiniowanie F_CPU...
Witam! Mam problem z timerami w języku C (w moim projekcie) dlatego zwracam się do Was o pomoc. Napiszę od początku, żeby przedstawić o co mi chodzi. Zbudowałem kiedyś sterownik taśmy led RGB oparty na mikroprocesorze attiny2313, w którym za pomocą jednego przycisku zmieniam podstawowe kolory na pasku ledowym (czerwony, zielony, niebieski) oraz ich...
Timer0 i timer1 używają tego samego preskalera. Dlatego instrukcja prescale=64 zmienia warunki dla funkcji getrc5. Zajrzyj do noty katalogowej ATtiny2313 i nie pisz głupot więcej. Dodano po 14 Odmierz20ms1: 'funkcja obsługi serwa1 Timer1 = 65286 'przy wartosci 65286 timer1 bedzie generował przerwanie co 2ms Incr Licz2ms1 'zwiększ licznik zliczający...
Witam ,napisałem program który ma odmierzyć czas lotu helikoptera (do wyczerpania bateryjki) ,niestety po 2 tygodniach utknąłem na czymś takim: $regfile = "attiny2313.dat" 'wybór procesora attiny2313 $crystal = 8000000 Config Pinb.0 = Output 'dioda sygnalizująca odmierzenie czasu Config Pinb.1 = Output 'buzzer mający piknąć 3 razy po odmierzeniu...
Do tej pory troszkę bawiłem się AT89C2051. Wykonałem pewien układzik który za pomocą Timera0 zliczał impulsy na wejściu T0 podczas 1sekundy którą odmierzałem Timerem1. Jako, że musiałem przeprogramować 51 do innych celów chciałbym go zastąpić Attiny2313 bo mam dwie sztuki. Zacząłem czytać książkę Dolińskiego aby wykonać program ale mam pewne problemy....
markus_wolff - wszystko się zgadza bo preskaler jest nastawiony na clk/64 - czyli przerwanie timer1 co sekunde jj - dzięki , na pewno dziś poczytam john_t - przecież już doszliśmy z kolegą markus_wolff , że ustawienia bitów w pony prog są dobre ( bo 1 tzn - unprogrammed, co w pony prog daje pustą kratkę w przeciwienstwie do 0 - programmed - czyli haczyk)....
Witam po raz kolejny pojawił się problem z moim programem otóż chcę aby kiedy wzrośnie temperatura i będzie wyższa lub równa zadanej to serwo obraca się w prawo poczym się zatrzymuje następnie kiedy temperatura będzie niższa od zadanej wtedy serwo obraca się w lewo i zatrzymuje się. [syntax=basic4gl] '************* Konfiguracja uC *****************...
Lysoleq -> "Dlaczego po wykonaniu przerwania INT1_IRQ program skacze do 0x00D a następnie do TIMER0_IRQ?" tak na wstępie - to teraz aż przyjemnie patrzy się na twój kod ;) .... ale do rzeczy - mówisz , że program jakby skacze do przerwania Timera po przerwaniu INT1 .... nie mogę teraz za bardzo tego przeanalizować ale może być taka sytuacja, że: wystąpiło...
"jacekk232" chodzi mi o to aby mozna regulowac predkosc obrotowa za pomoca przyciskow S1 i S2 z rozdzielczoscia od 1obr/min do maksimum. Zmienilem podlaczenie przyciskow S1 i S2 aby mozna bylo wykorzystac licznik/timer procesora Attiny2313. Tylko nie bardzo wiem jak skonfigurowac timer zeby mozna bylo ustawic liczbe krokow?! Kolejny problem to jak przeslac...
Witajcie! W sieci znalazłem projekt lampki RGB sterowanej z pilota, projekt pochodzi z tej strony. Postanowiłem jednak z budować do tego swój pilot, a wybór padł na SAA3010: (na schemacie zamiast rezonatora jest kondensator, proszę się tym nie sugerować.) http://obrazki.elektroda.pl/9020128600_1... Pilot jest raczej sprawny i działa...
Kiedyś popełniłem taki programowy PWM x 3 do sterowania RGB (ot tak dla fantazji :D) Config Timer1 = Timer , Prescale = 1 'dla prescale=8 przerwanie co ok 4 ms dla 256 co 15 ms dla 1024 co 64 ms Config Int0 = Falling 'Config Portb.6 = Input 'Set Portb.6 ' Końcówka Dla Int0 Ddra = &B01111111 ' ustawienie portu a jako wyjście Config Rc5 = Pinb.6 Pwm_r...
Dobry układ edukacyjny :) zamiast łączyć dwa tranzystory termokurczakiem lepiej wziąć od razu dwa tranzystory w jednej obudowie - jest to o tyle lepsze, że oba są na tej samej płytce krzemowej. Kosztuje grosze a działa zdecydowanie lepiej. Z całą pewnością taki element jest bardziej pro i user friendly. Ja po prostu złożyłem ten miernik z elementów,...
Oto kod jednego z programów z którym mam problemy: 'C029f.bas Generator impulsów prostokątnych ' UWAGA! Wejsciem EN(able) modułu LCD steruje końcówka PB.1 ' do wyjscia PB.3 dołączona przez rezystor 1k anoda diody LED (katoda do masy) Dim Impuls As Word , Przerwa As Word , Czas As Single , Zmiana As Bit , Napis As String * 9 Config Timer1...
Jako, że od niedawna sam uczę się dopiero C, to proszę bardzo poniżej, najpierw kod do odbiornika RC5. Sprawdzony, krótki i odporny na zakłócenia oraz kody z innych pilotów - działa wyśmienicie i w ciekawy sposób wykorzystuje bit TOGGLE: // zmienne do obsługi kodów IR w standardzie RC5 volatile uint8_t address; // adres RC5 volatile uint8_t command;...
Zobacz co się dzieje: TCNT1 ma wartość 65535 i za chwilę nastąpi przerwanie, wykonywana jest instrukcja timer1_=TCNT1 i w tym momencie następuje przerwanie. TCNT1 po powrocie ma mniejszą wartość ale jest już po herbacie - licznik==1 warunek po if jest spełniony PORTB=0 i czekamy na następne przerwanie. Dlaczego 20 cykli jest dobrze? Bo przerwanie musi...
Witam sprawdź ten kod co prawda są inne numery portów i inny procek ale jak zmienisz powinno działać. Problem jest jeden w momencie jak naciskasz przycisk i zmieniasz końcówkę na WYJŚCIE to stan tego pinu Musi być (0) Niski , żeby nie zrobić zwarcia. '$sim $regfile = "attiny2313.dat" $crystal = 11059200 $baud = 9600 enable interrupts 'włącz...
Usuń <br/> z końca linka, bo przez to link nie działa. Pytanie, czy te wolne piny zostawiłeś w powietrzu. Bo one generują przerwanie, więc jeśli "dyndają", to w kółko wystawiany może być stan wysoki, który powinien po tych 304us zejść na niski, ale może nie zdążyć przez kolejne przerwania generowane przez "dyndadła". Wyobraź sobie, że to wykonuje...
Ja robiłem to tak. $map $regfile = "ATtiny2313.dat" $crystal = 1000000 Dim ... Config Timer1 = Timer , Prescale = 8 ' ustawienie przerwań Enable Interrupts Enable Timer1 On Timer1 Przerwanie Do program glowny Loop '*********************************** Przerwanie: Timer1 = 64287 ' okolo 1 setna program przerwania Return W przerwaniu musisz...
Fakt ilość informacji które podałem jest znikoma :P, urządzenie które usiłuje zbudować ma za zadanie kontrolowanie świetlików LED, na podstawie informacji uzyskanych poprzez RS - 485 z głównego sterownika, sterownik świetlików generuje odpowiednią sekwencję (sygnał PWM o zadanym wypełnieniu i pulsacji). Problem w tym iż nie do końca mam pomysł jak wygenerować...
Hmmm... zezwalam na wywołanie przerwania przy przepełnieniu Timer1. A obsługi przerwania nie ma. (Co się wtedy stanie?). Tylko, czy w przypadku NIEustawienia TIMSK TC1 będzie zliczał nadal? Zaraz sprawdzam, dziękuję za pierwszą wskazówkę.
Dziękuję serdecznie za odpowiedzi. Przepraszam że nie wspomniałem o zegarze który ustawiony jest na 8MHz. Sprawdzałem w fuse bitach odnośnie dzielnika i okazało się że w m8 nie istnieje tak jak to były np w attiny2313. Dziękuję za pomoc koledze landy13 rzeczywiście bit ten jest w innym rejestrze, moje niedopatrzenie. Po zmianie wszystko ruszyło. Pozdrawiam...
Pusty blok jest dlatego, że utknąłem na konfiguracji Timer0. Jeśli chodzi o rejestry, to podejrzewałem, że jest tak, jak Kolega pisze. Wartość TCNT0 = 6; trzeba będzie wpisać do przerwania Timera Przy ustawieniach: [syntax=c] TCCR0A = (1 << CS01)|(CS00); // źródłem CLK, preskaler 64 TIMSK = (1<<TOIE0); //Przerwanie overflow (przepełnienie...
Ciągle zaglądam, jednak chwilami się gubię ;p Czyli preskaler jest ustawiany jedynie przez TCCR0B. Czyli na Timer0 nie ma mżliwości uruchomienia dwóch trybóow np PWM i CTC, gdyż tylko w rejestrze TCCR0A można ustawić jedną wartość, nie ma jako alternatywnego TCCR0B -bo on służy do ust preskalera. Dobrze mówię? Został mi tylko Timer1, żeby zrealizować...
Oczywiście, że pomieszałeś, bo pod PD3 jednocześnie masz podłączone sterowanie anodą wyświetlacza i przycisk - jak wciśniesz przycisk, to odpowiednia cyfra wyświetlacza będzie zawsze aktywna... Użyj Timer1 w trybie CTC do odmierzania 0.01s - przy F_CPU = 1MHz chcesz mieć przerwanie z f=100Hz czyli odliczasz do 10000-1. To będzie za mała częstotliwość...
Nie możesz używać Waitms nigdzie indziej poza pętlą główną. Trzeba to obejść. Wiadomo, że w podprogramach jesteś co 4ms. Co do Portb.5 to nigdzie nie widzę zerowania i dlatego jest ustawiony non stop. [syntax=basic4gl]$regfile = "attiny2313.dat" $crystal = 1000000 Config Portb = Output Portb = &B1111111 Config Portd = &B11111000 Portd = &B1111111...
Jeśli do timera załadujesz wartość 64153 to przerwanie nastąpi co 1,004 msek Reszta w moim poście wyżej Dodano po 1 Dla dokładnie 1 msek : prescale = 1, wartość timer1 = 54477
Odbiornik RC5 działa. 1 na pilocie wyłącza diodę, 2 włącza $regfile = "attiny2313.dat" $crystal = 1000000 Config Rc5 = Pind.2 Config Pind.2 = Input Config Portb = Output Dim Address As Byte , Command As Byte Enable Interrupts Do Getrc5(address , Command) If Address = 0 Then Command = Command And &B01111111 Select Case Command Case...
Witam! Głowie się z tym nie wiem którą godzinę i nie mogę dojść czemu tak się dzieje. Mam tego typu program: #include <avr/io.h> #include <avr/interrupt.h> float m_sekundy_wtrysk=0, m_sekundy_obr=0, wynik2=0; uint8_t i=0, k=0, znacznik=0; float wynik=0; ISR(INT1_vect){ //przerwanie od złącza PD3 (INT1) TCCR1B |= _BV(CS10);...
Ciąg dalszy bojów z tym kodem i jeżeli to możliwe prozba o dalszą pomoc. Wiec tak , obecnie podaję czas pracy silnika X1 oraz czas postoju T(klawiszami zwiększam albo zmniejszam parametry X1 oraz Y). Generalnie będzie to jeden z dwóch trybów pracy, drugi ma być z ciągłą regulacją płynną klawiszami UP i Down. O co teraz proszę - o pomoc w skonstruowaniu...
...Napisałem taki soft. Ale nie działa... A dlaczego robisz to programowo(przerwanie) :?: Jeśli musisz otrzymać ten przebieg na PINB.3, to wykorzystaj Timer1, a jeśli możesz użyć PINB.2 , to użyj Timer0. Wykorzystaj tryb CTC, to generowanie przebiegu 36kHz, nie zajmie procowi ani jednej instrukcji ;) ... PS Zapomniałeś o "prologu" i "epilogu", które...
Przerwanie do dosłownie kilka komend. Służy tylko do multipleksowania wyświetlacza. Jeśli się dobrze orientuję, to trwa ono kilka/kilkanaście cykli zegara, czuli kilka mikrosekund. Przy czasie tych opóźnień nie powinno mieć to znaczenia. Zresztą poniżej kod przerwania: ISR(TIMER1_COMPA_vect) //PRZERWANIE, GDY TIMER DOLICZY DO WART. PORZADANEJ...
Witam ponownie, Mam nadzieję, że tym razem mój program wygląda nieco lepiej. A oto kod: $crystal = 4000000 $regfile = "2313def.dat" Config Lcd = 16 * 1 Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.6 , Rs = Portb.7 Dim P As Bit 'Bit aktywnego pomiaru Dim Pz As Bit 'Bit zakonczenia pomiaru Dim...
Tak mi to wyszło to mój pierwszy program (nie licząc włącz-wyłącz diode) wiec proszę o wyrozumiałość. Częstotliwości jeszcze nie obliczyłem bo mam z tym trudności. Nie wiem tylko czy dobrze zrozumiałem ze timer1 w trybie Pwm jako jedno przerwanie zlicza jeden cykl [syntax=basic4gl]$regfile = "2313def.dat" $Crystal=8000000 Config Pinb.3 = Output Config...
Witam, Mam problem z zmuszeniem do pracy jako PWM Licznika "Timer0" Timer jeden działa mi jako przerwanie co jedna sekunde wiec nie moge go użyć do tego. Próbowałem zrobić to tak jak w tym temacie, ale wyświetlacz wtedy wariuje. http://www.elektroda.pl/rtvforum/topic28... Gdy wykasuje z kodu linijke: 'Config Timer0 = Pwm , Prescale = 64 , Compare...
Witam! Ze względu na niedokładność funkcji waitms(); postanowiłem uruchomić licznik TC1 w ATTINY2313. Ma to być obsługa pilota (prawdopodobnie JVC). Więcej danych: - ATTINY pracuje z częstotliwością 1MHz (wewnętrzny oscylator) - TC0 jest już zajęty innymi działaniami (w czasie obsługi pilota TC0 nie musi pracować) - czas, który chcę odczekać to 14700us...
Nastąpiły niewielkie postępy. Udało się uruchomić wewnętrzny timer, ale wynik bardzo odbiega od rzeczywistego. Najczęściej pokazuje wynik 0 lub jakąś liczbę jedno czy dwu cyfrową. Bardzo rzadko jest to liczba trzycyfrowa. Program teraz wygląda tak: 'Samochodowy obrotomierz 'Marcin Wiązania 'E-mail: mwiazani(at)poczta.fm $regfile = "attiny2313.dat"...
Witam. Piszę ponieważ mam problem z programowym PWM na attiny2313A. Ustawiam Timer w tryb CTC. Po zrównaniu TCNT0 z OCR0A powinno samo wyzerować rejestr TCNT0. Niestety tak się nie dzieje, jeśli sam się tym nie zajmę to serwa szaleją. Z obliczeń wynika, że przerwanie TIMER0_COMPA_vect powinno wykonywać się co 0,01ms. PWM ma działać tak: Uruchamiamy...
Nie spełniają? Najdroższy cyfrowy tam przedstawiony kosztuje 224,- Kč -> mniej niż 30 Zł. Ale mniejsza z tym, bo Twoje żądanie potrzebuje aż 96 załącz/wyłącz cykli na dobę. A tu będzie z takimi zegarami problem. Co do dokładności zegara na procku, to albo jakiś RTC albo moduł DCF albo da się też takim podobnym kodem: $regfile = "Attiny2313.DAT"...
Witam, Mam problem z uruchomieniem dwóch timerów. Timer0 ma obsługiwać przerwanie pochodzące z INT1 (Signal1), natomiast Timer1 (Signal0) z INT0 (ale może być odwrotnie). Każdy z timerów ma wykryć impuls PWM większy od 1,5ms i zapalić lub zgasić diodę / diody. Po wgraniu poniższego kodu, diodki migają chaotycznie, nie ma żadnej reakcji na zmianę szerokości...
Oto program który napisałem $regfile = "attiny2313.dat" 'rodzaj mikrokontrolera $crystal = 8000000 '8MHz Dim Pozycja1 As Integer 'zmienna określająca położenie serwa1 Dim Pozycja2 As Integer 'zxmienna określająca położenie serwa2 Dim Czas1 As Integer 'zmienna pomocnicza do odmierzania czasu Dim Czas2 As Integer 'zmienna pomocnicza do odmierzania...
Dopisałem do rejestru TCCR1B bit WGM12 który według tabeli ustawia CTC, oraz skasowałem zerowanie licznika w funkcji przerwania. http://obrazki.elektroda.net/61_12865649... Przeglądają jeszcze dokumentację natknąłem się, że częstotliwość tego równa jest połowie częstotliwości zegara, tak więc zwiększyłem wartość do porównania 2x i teraz nawet...
Zamieszczam program miernika według wskazówek emarcusa. Jest to pierwsza w moim życiu próba napisania czegoś poważniejszego niż zapalanie i gaszenie LED-ów. Program nie kompiluje się, co mnie nie dziwi, są pewnie w nim podstawowe błędy... Ale od czegoś trzeba zacząć. Proszę o poprawienie, podpowiedzi. A tak w ogóle to zaczyna mnie wciągać :) [syntax=basic4gl]'...
Napisałem prosty program do fazowej regulacji napięcia za pomocą triaka przy uzyciu pilota (rc5). #define F_CPU 8000000L #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include "rc5.h" volatile int16_t czas=65379; SIGNAL (SIG_OVERFLOW1) { sei(); PORTB |= 1<<PB0; // ON _delay_us(9);...
Witam Mam nadzieje że trochę pomogę w tej kwestii. Poniżej daję kod do obsługi kodu Rc5 w przerwaniach: '************* Konfiguracja uC ***************** '***************************************... $regfile = "attiny2313.dat" $crystal = 12000000 Config Portb = &B11111111 : Portb = &B11111111 Config Portd = &B11111011 : Portd =...
Zaczynam zabawe z mikrokontrolerami i chciałem napisac w bascomie na ATiny2313 stoper liczący z dokładnościa do 0,01 ale utknąlem na wyswietlaniu aktualnego czasu na lcd - to znaczy nie ma z tym problemu ale funkcja lcd jest strasznie wolna. Przerwanie zglaszane jest co 10 ms i mam wrażenie ze w tym czasie komenda lcd nie jest w stanie wyslac wszystkiego...
To był tylko przykład. Przydaje się wtedy kiedy nie możesz użyc pinu podległego Timerowi. W dodatku w tym przerwaniu możesz mieć trzy piny trzykolorowej diody RGB i zmieniając wypełnienie poszczególnych kanałów na jednym timerze mieć kolorki :) Nikogo nie przekonuję do swoich racji tylko pokazuję możliwości. Przykładowy kod ze strony http://mirley.firlej.org/programowyPwm.....
Zmodyfikowałem przerwanie do takiej postaci: ISR(INT1_vect) //przerwanie od złącza PD3 (INT1) { if( ((PIND&0x08)==0)&... ) //jeśli został zwarty pin... { TCCR1B |= _BV(CS10); //start timera (przerwanie przez zrównanie) znacznik=1; //oznacz że rozpoczeło się liczenie...
Witam! Zbudowałem prosty układ i chciałbym na nim nauczyć się dobrze obsługiwać i synchronizować przerwania. Jego głównym założeniem będzie liczenie co jedną sekundę do 99 na dwóch wyświetlaczach siedmiosegmentowych(obsługa "multipleksacją") z dodatkowymi opcjami(odebrać coś z komputera itp). Pisałem w C a z assemblerem dopiero zaczynam dlatego proszę...
Witam... Temat ten maglowany był tutaj już wieeellee razy.. ale niestety, nie znalazlem rozwiazania na moj problem, wiec go Wam przedstawie. Założenia projektu: PROSTY programowy generator PWM na AtTiny2313 o czest. 50Hz (okres 20 ms) a zmiennym wspołczynniku wypełnienia impulsu dodatniego wahajacym sie od 0.7 do 2.5 ms (chodzi o sterowanie serwomechanizmami)...
Witam, może sprecyzuj problemy jakie masz po kolei - bo teraz to już nie wiem za bardzo czy nie działa ci "sztuczka" z usypianiem i budzeniem procka? czy nie za bardzo działa ci nadajnik RC5 ? nie pokazałeś wprawdzie kodu swojej procedury nadawczej RC5 ale coś czuję przez skórę, jeśli chodzi o błędy w nadawaniu u ciebie, że to właśnie ona jest temu...
Udało mi się znaleźć fajny kod z opisem programowego pwm-a od RedLina. Przerobiłem go trochę na moje 7 kanałów. Domyślnie był na 3. https://filmy.elektroda.pl/29_1428477691... Wygląda na to jakby mikrokontroler się nie wyrabiał, ale nie jestem pewien. Jak można byłoby to zoptyamlizować ? Odnośnie korekcji jasności świecenia, jak mógłbym ją tutaj doimpementować...
'$sim 'to jest programik do sterowania silniczkiem w obu kierunkach 'za pomocą sygnału do sterowania serwa w odbiorniku zdalnego sterowania. 'sygał odbierany przez wejście odwracające komparatora analogowego z progiem 1.1V 'Sterowniki do silników modeli samolotów,chociaż są lekkie, nie mają zwykle możliwości zmiany 'kierunku obrotów silnika.(I...
Może spróbuj w ten sposób : $crystal = 4000000 Config Pind.5 = Output 'ustawienie wyjścia na pinie który standardowo sygnalizuje przepełnienie timer-a Config Timer0 = Timer , Prescale = 1 'ustawienie timer1 dzielnik 1 On Timer0 Przerwanie_timer1 'wywołanie przerwania po przepełnieniu timera Timer0 = 145 'wartość początkowa od której timer bedzie zliczł...
Witam wszystkich wszech wiedzących. Mam taki drobny problem, otóż w zestawie uruchomieniowym zl11avt zaprogramowałem mikrokontroler attiny 2313 żeby na wyświetlaczach led był zegarek z budzikiem. Po zastanowieniu sie zobaczyłem że mam 4 porty wolne i mogę wykorzystać je do czego chce. Chciałbym żeby to był normalny zegarek ale gdy na PD2. (wolnym) pojawi...
[syntax=basic4gl] Dim Przerwa As Byte 'licznik czasu przerwy Dim Pomoc1 As Byte , Pomoc2 As Byte , Wysw As Byte 'zmienne pomocnicze Dim Random As Byte 'zmienna do uzyskania przypadkowości Dim Zliczaj As Bit '1 - zezwolenie zliczania czasu Dim Setne As Byte 'licznik setnych części sekundy Dim Dzies As Byte 'licznik dziesiątych części sekundy Dim Wygasz...
Witam Chciałem do kuchni wstawić czujnik PIR, ale z dodatkową zaletą, czyli stopniowym zwiększaniem i zmniejszaniem PWM, dodatkowo jeśli podczas zmniejszania PWM nadejdzie przerwanie INT1 od czujnika PIR, to program ma przestać zmniejszać, tylko zacząć zwiększać i to nie od zera, ale od wartości na której "zastało" go przerwanie INT1 od PIR. W sumie...
Witam. Mając trochę wolnego czasu postanowiłem wrócić do zmagań z PIDem. W sieci znalazłem program PIDa w Bascomie na Atmegę8 (maluszek Attiny2313 okazał się niestety za mały). W programie wyłączyłem różniczkowanie - aby było łatwiej. Program działa dość dobrze tzn. obroty utrzymują się na żądanym poziomie ale troszkę oscylują wokół wartości zadanej....
A więc tak : - na przyszłość podawaj pełne nazwy, łatwiej bedziesz rozumiany. ;) - zajrzałem do pdf-ów od AT90S2313 i ATtiny2313 (trudno zgadnać którego miałeś na myśli) i tak - AT90S2313 (s.18 DOC0839.pdf) ma 11 wektorów przerwania wliczając RESET, a ATtiny2313 ma ich 19 (s.43 - doc2543.pdf). Wyciągając moją słabo działającą szklaną kulę jestem w stanie...
Rzeczywiście masz rację poświata występuje. Myślisz ze opóźnienie wystarczy? Próbowałem też zrobić tak: PORTB = cyfra1 -> PORTB = 0xFF -> zapal kolejny wyśw. -> PORTB = cyfra2 .. itd. Tak aby podczas zmiany wyświetlaczy nie była wyświetlana żadna cyfra, i w rzeczywistości wyświetlało dobrze, lecz gdy Timer1 zgłosił przerwanie i nastąpił skok do obsługi...
Witam! Mam dziwny problem i od paru godzin nie mogę znaleźć jego przyczyny. Mianowicie nie wiem dlaczego kontroler nie reaguje na zmianę stanu na wejściu PD2. Mam tam podpięty przycisk który ma włączać diodę podpiętą do PD6. Układ działa na 100% pod względem technicznym, ponieważ sprawdziłem go innym programem. Czuję że przyczyna jest gdzieś w napisanym...
Witam Napisałem sobie programik do sterowaia diodami led poprzez PWM. wszystko super chodzi, ale chciałem sobie zrobic teraz bajer, aby dany kolor utrzymywał się przez okreslona ilosc sekund. Do tego chcialbym zaprzac przerwanie np od timera T0. Niestety mimo moich wielokrotnych prob przerwanie od timera T0 nie jest nigdy wywolywane :-( a oto fragment...
Witajcie. Idea jest taka: do rejestru pwm wpisuję wartość sinusa co pojedyncze przerwanie. Po filtrze dostaję czystą sinusoidę niestety o bardzo małej częstotliwości - około 150Hz - chciałbym osiągnąć pomiędzy 600Hz a 1kHz. Czy ktoś ma pomysł jak zrobić to lepiej? Programem poniżej programuję 2313 ale docelowo ma to być 8515 i wykorzystane mają być...
Poniżej zamieszam kod w Bascom pisany dla zestawu uruchomieniowego ZL11AVR. Dioda podczerwieni dołączona do Pinb.3. Chyba najważniejsze z tego, to komenda wyzwalająca migawkę: Sonysend &HB4B8F , 20 (Sony alpha korzystają z 20 bitowego protokołu SIRC) W razie pytań postaram się pomóc. [syntax=basic4gl] 'Program zegara wykorzystującego przerwania...
Oto kod... lecz jeszcze nie sprawdziłem czy działa. $crystal = 8000000 $regfile "attiny2313.dat " Config Timer0 = Timer , Prescale = 64 Config Timer1 = Pwm , Pwm = 10 , Prescale = 64 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down Config Int0 = Rising On Int0 Impuls On Ovf0 Przepelnienie Enable Interrupts 'T0 - sumaryczna wartośc timera0 Dim...
Dzień dobry. Zbudowałem miernik odległości w oparciu o ATtiny2313, czujnik HC-SR04 i wyświetlacz LED 7 segmentowy 4 cyfrowy, wspólna katoda. Program napisany w języku C w Atmel Studio. Problem polega na tym, że układ działa poprawnie tylko do odległości 70 cm. Powyżej zaczynają migać segmenty, na cyfrze jedności i dziesiątek, które nie powinny się zapalać....
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...
Da się i własnie na flagach timera powinno się to zrobić. Samo taktowanie obniżaniem wartości to nie wszystko. Dioda zapala się już przy bardzo małej wartości PWM i potem dokładanie jej czasu intensywność świecenia zmienia coraz mniej. Dlatego przy ściemnianiu mało się dzieje i potem nagle dioda szybko gaśnie. Chciałem wiec uzyskać taki efekt by im...
$regfile = "attiny2313.dat" $crystal = 10000000 $hwstack = 32 $swstack = 8 $framesize = 16 Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.1 , Rs = Portb.2 'konfiguracja podłączenia LCD,na płytce testowej Config Lcd = 16 * 2 Config Timer1 = Counter , Edge = Falling , Noise Cancel = 1 , Prescale = 1 Config...
Witam, projektuje urządzenie wykorzystujące pastylki DS1990 i w czasie pisania programu natknąłem się na problem z prawidłowym odczytem numeru klucza po przyłożeniu pastylki do czytnika. Nikiedy na wyswietlaczu otrzymuje calkiem przypadkowe dane. Błąd występuje w przypadku około 5% odczytów. Okrojony do minimum fragment programu: $regfile = "attiny2313.dat"...
Witam Chciałbym zaprezentować Wam kolejny projekt, który wykonałem kilka lat temu i generalnie wtedy miałem go przedstawić na elektrodzie ale jakoś czas uciekał a ja nie mogłem się do tego zabrać. No ale koniec wstępu, przechodzę do rzeczy. Prezentuję wam naświetlarkę UV służącą do wykonywania płytek PCB metodą fotochemiczną. Naświetlarka powstała z...
http://obrazki.elektroda.pl/3089511800_1... Witam, dziś prezentuje swój bezprzewodowy termometr pracujący na częstotliwości 433 MHz. Urządzenie składa się z nadajnika i odbiornika. Nadajnik odczytuje temperaturę pieca C.O. i wysyła ją do odbiornika. W odbiorniku mamy możliwość ustalenia górnego i dolnego progu załączenia alarmu, który...
https://obrazki.elektroda.pl/8213915500_... Czasomierz dla klejarki pistoletowej Bosch PKP 18 E. https://obrazki.elektroda.pl/3128317200_... Po kolejnej awarii pistoletu do klejenia na gorąco, kupiłem klejarkę firmy Bosch. Klejarka ta, wymaga siedmiominutowego wstępnego rozgrzania, aby umożliwiała właściwe klejenie....
Witam wszystkich forumowiczów. Ostatnio złożyłem sobie układ sterownika domowego z pewnej strony internetowej. Wszystko złożyłem z jak największą starannością. Zaprogramowałem uc ale wydaje mi się że układ nie działa tak jak powinien. Próbowałem znaleźć przyczynę problemów ale niestety do dzisiaj mi się to nie udało. Niestety nie wiem czy jest to problem...
http://obrazki.elektroda.pl/9785417500_1... Witam wszystkich Przyszedł czas aby wykorzystać przedstawiony przeze mnie w http://obrazki.elektroda.pl/6714514800_1... Sygnał start i stop jak widać na schemacie przechodzi przez tranzystor Q1 i Q2, bramki Schmitt’a i podawany jest na wejścia INT0 i INT1 procesora. Diody...
Zrób tak żeby w przerwaniu zatrzymywało tylko licznik i startowało go na nowo i zapisywało to do jakiejś zmiennej. Potem w pętli głównej robisz obliczanie obrotów na bierząco = cały czas. do tego można użyć jeszcze tajmer0 aby co jakiś czas odświerzyć wynik na jakimś wyswietlaczu. W ten sposób procek cały czas będzie coś robił. A swoją drogą to chyba...
Grysek Wielkie dzięki za "rdzeń" programu. Dopisałem resztę teraz wygląda to tak: $regfile = "ATtiny2313.dat" $crystal = 16000000 'Kwarc w Hz Config Timer1 = Timer , Prescale = 1024 'Kofiguracja Timera Stop Timer1 'Zatrzymanie Timera Load Timer1 , 49911 'Załadowanie Timera On Timer1 Sekunda 'Instrukcja po przepelnieniu Config Pinb.0 = Input...
Niestety nie pomogło, ale powiem, że w odrózneniu od sampla Bascomowego gdzie jest tylko odblokowane globalny system przerwan (Enable Interrupts) w moim przypadku na tym tylko słychac jakies bardzo ciche buczenie, podobne do 50 Hz z sieci. Dopiero gdy dodałem do programu dodatkowo Enable Timer1 to wtedy wyraznie słychac jakies piski z buzzera które...
Witam Próbuję wychwycić jakąkolwiek reakcję na przerwanie od ICP, ale mi się nie udaje. Oto kod: [syntax=c]void iniPOMIAR() { TIMSK &= ~(1<<OCIE1A); // TCCR1B |= (1<<WGM12) | (1<<WGM13); TCCR1B |= (1<<CS10); //preskaler 1 TCCR1B &= ~(1<<CS12); //preskaler 1 TIMSK |= (1 << ICIE1); TIFR |= (1<<ICF1); TCNT1=...
Witam! Poniżej przedstawiam skrócony kod mojego programu: #include <avr/io.h> #include <avr/interrupt.h> #define F_CPU 10000000 #include <util/delay.h> char znaki[10]={48, 49, 50, 51, 52, 53, 54, 55, 56, 57}; //znaki ASCII: 0 12 3 4 5 6 7 8 9 //__________________________POMIAR______... volatile...
Witam Przyszedł czas wolny więc zabrałem się za zgłębienie nauki Bascoma, celem było nauczenie się Tablic. Jako przykładowe i zarazem przydatne mi urządzenie chciałem złożyć regulator fazy z podwójnym wyświetlaczem siedmiosegmentowym LED. Schemat jako taki na razie nie powstał, wszystko jest na płytce stykowej. Udało mi się "ogarnąć" wyświetlacz, lecz...
Chciałem zrobiś prosty porogramik na procku attiny2313 który przy uruchomionym timerze tc/1 co sekunde przechodziłby do innej etykiety. napisałem następujący program : Config Portd = Output Config Portb = Output Portd = 0 Portb = 0 Config Timer1 = Timer , Prescale = 64 Enable Interrupts Enable Timer1 On Timer1 Nxtd Nosave Dim A As Bit Dim B As Integer...
attiny2313 timer1 attiny2313 przerwanie atmega timer1 przerwanie
czujnik ciśnienia trafic inercyjny opóźnieniem schemat elektryczny avensis
naped elektrobim kompresor kowal
EURA AC-20 C7 – wyciszenie dźwięku klawiatury, buzzer, modyfikacja, brak opcji mute Chrysler Pacifica Hybrid – wyłączenie imitatora dźwięku AVAS, legalność, skutki, serwis