Nie wiem czy to może coś mieć do rzeczy ale konfigurujesz przerwanie na porcie Int0 na falling a potem obsługujesz przerwanie od Int1. Przy resecie jak nic nie ustawiasz to przerwania zewnętrzne są aktywne stanem niskim. Jak nie ustawiasz Int1 na falling a potem pozwalasz na przyjmowanie przerwania z Int1 to możliwe, że wciśnięcie guzika powoduje kilkakrotne...
Do odczytu stanu portu służy rejestr PIN. Czyli masz źle zrealizowane warunki w funkcji przerwania.
po pierwsze i najwazniejsze - w przerwaniu N_I_G_D_Y nie daje sie opoznien, a juz szczegolnie tak dlugich jak 50ms. Popraw to i zobacz jakie da to efekty. A tak apropo - włączasz przerwanie od TXC z UARTu, ale nigdzie nie masz jego obsługi - jeśli przerwanie wystąpi, to procek się resetuje (czyli dioda gaśnie). 4\/3!!
Przede wszystkim PCINT wymaga większego nakładu programowego. Przy włączonych wielu źródłach danego przerwania PCINT trzeba analizować, który pin zgłosił przerwanie i w jaki sposób się to odbyło (które zbocze). PCINT jest niżej w hierarchii przerwań, zatem na obsługę tego przerwania trzeba czasem dłużej poczekać (w zależności od konstrukcji programu)...
Nie jestem pewien, ale wybudzanie da się chyba tylko stanem nie zboczem... doczytaj w dokumetacji:> Przed uśpieniem(procek wykonuje kod) , INT0 może być ustawione na falling , ale przed wykonaniem instrukcji SLEEP , należy zmienić sposób wyzwalania na LOW LEVEL i ... włączyć przerwania , jeśli usypiamy proca w przerwaniu. Poza tym , bit ISC01 może...
..Wydaje się, że wszystk0o jest dobrze Po co włączasz przerwania :?:
Czy przerwania są kolejkowane i po obsłużeniu komunikacji wykona kod przypisany do drugiego przerwania, czy informacja zostanie utracona? Może się tak zdarzyć, jeśli obsługa jednego przerwania będzie na tyle długa, że w czasie jej trwania jakieś przerwanie zostanie wywołane dwa razy (lub więcej). Czy komunikacja USB będzie działać stabilnie gdy podłączę...
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...
Rodzaj przycisku jest bez wiekszego znaczenia . Algorytm : -jesli sygnal "0" nastapi przerwanie-skok do obslugi przerwania -czekaj w procedurze przerwania np. 100 mS -jesli po tym czasie sygnal jest dalej "0" to byl nacisniety przycisk -jesli "1" to byl to sygnal falszywy - zaklocenie -powrot z obslugi przerwania
Odepnij kwarca i zobacz czy dalej działa jeśli tak procesor dziala na wewnętrznym oscylatorze rc , jeśli nie to ustaw pułapki w symulatorze i sprawdz czy przerwania występują dokładnie co określiny czas .
już pisałem co zrobić ale tym razem ty nie doczytałeś chyba, więc: po pierwsze - ustaw wyzwalanie przerwania INT0 zboczem opadającym (falling) po drugie - tuż po wejściu w przerwanie wyłącz je disable INT0 ale zaraz po tym daj Enable Interrupts, żeby mógł działać Timer potem odbierz kod RC5 ustaw swój znacznik Odebrano a resztę przetwarzaj w programie...
1. Ustawienie dzielnika częstotliwości (prescallera) włącza licznik. 2. Po wystąpieniu przepełnienia licznik automatycznie liczy od zera. 3. Tak, przerwania są globalnie wyłączane na czas obsługi któregoś z nich.
Konfigurujesz WD na 256 i startujesz. Teraz jeśli chcesz by WD wybudził procesor, ale go nie zresetował to MUSISZ włączyć przerwanie od WD. W obsłudze przerwania nie musisz nic robić. Procek wroci w miejsce gdzie użyłeś SLEEP. Teraz jeśli możesz przez tę sekundę kiedy pracuje resetować WD co 200ms to nic nie trzeba robić, ale jesli coś tam dłuzej trwa...
Przerwania typu PCINT działają podczas zmiany stanu pinu, obojętnie czy to jest zbocze narastające czy opadające. Poprostu ma być to zmiana stanu, tak więc jeśli naciśniesz przycisk to przerwanie bedzie generowane dwa razy (w momencie naciśniećia i puszczenia). Natomiast inaczej jest w przypadku przerwań INT0 i INT1 gdzie możesz sobie wybrać kiedy ma...
np. Nie da się. TImer0 może zliczać tylko z pinu PD4. I to z PinD.4 a nie PortD.4 ;) Można i z PinD.0, ale nawet przerwania żadnego do tego nie ma więc trzeba by programowo. A nawet jak przerwanie by było (mowa o przerwaniach INTx) to Timer tego nie zliczy. Trzeba by programowo zwiększać zawartość licznika Timera0, ale po cholerę. Jeżeli to ma być...
"Początkowo program działa poprawnie" to nie dziwne, że na początku działa ci poprawnie a potem leci w przysłowiowe "maliny" nie potrafisz kolego jeszcze dobrze się posługiwać przerwaniami i samą konstrukcją programu - masz tak namieszane że szok w zasadzie czytając sam program to nie wiadomo dokładnie co chciałeś uzyskać pierwsza wskazówka - najpierw...
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...
Dziękuje że nie daliście mi gotowca, przynajmniej się czegoś nauczyłem. No to gratuluję, ale niestety musisz się jeszcze nauczyć duuużo więcej, bo nadal jest źle. Multipleksowanie wyświetlacza miałeś zrealizować w procedurze obsługi przerwania a Ty zrobiłeś dokładnie odwrotnie, czyli przeniosłeś cały kod z funkcji main() do procedury obsługi przerwania,...
Akurat ważniejszy jest mały spadek napięcia, żeby stan niski pozostawał niskim również za diodą. Zrobiłem szkic pokazujący o co chodzi w tym różniczkowaniu i ANDowaniu: http://obrazki.elektroda.pl/7732349900_1... Przy zwykłym różniczkowaniu widać, że brakuje szpilki wskazującej początek impulsu pierwszego kanału. Można ją odtworzyć...
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...
Load Timer0 = 45 - jak sądzę oznacza nadanie wartości początkowej timerowi. Oznacza to, że powinieneś załadować tę wartość do rejestru TCNT0. Zakładam, że funkcja inicjująca BASOM inicjuje go w tryb normalny (czyli mode 0). W funkcji przerwania: - Incr A, Incr B - po prostu dodaj jeden do zmiennych A i B lub wykonaj inkrementację - If A = 305 Then ......
Ja osobiście nie mam problemów z przenaszalnością kodu w firmowym asemblerze Atmela, nawet pomiędzy różnymi wersjami rdzenia, gdyż są w nim wbudowane definicje pozwalającej na asemblację warunkową. Przykład - instrukcja lpm , zamiast której używam następujące makro: .macro LpmPlus #if ((__CORE_VERSION__==V2E)|...
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...
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ł...
Czekam na sugestie z góry dziękuje za pomoc;) Robisz totalnie złe założenie niestety. Timer sprzętowy działa bardzo dobrze i precyzyjnie. Nie może on przepełniać się w trybie normal wcześniej niż po 256 tyknięciach zegara ;) ... zatem przez złe założenia - jeszcze wyciągasz złe wnioski i nie w tym miejscu co trzeba szukasz błędu. A błąd polega na tym,...
#include <avr/signal.h> Wywal, nowa wersja gcc dla avr wymaga juz tylko <avr/interrupt.h> Zresztą, dwie poniższe funkcje w ogóle nie korzystaja z przerwań, więc możesz się pozbyć handlerów (SIGNAL(...){}) i uaktywniania przerwań (UCSRB = (1 << RXCIE) | (1 << TXCIE);) zresztą cały ten fragment jest źle. UCSRB = 1 << TXEN;//...
Czas otwarcia wtryskiwaczy mierzysz za pomocą 1 timera, ale nie tak od razu. Są dwie metody: pierwsza to podpięcie (przez transoptor) wtryskiwacza do wejścia timera i wejścia przerwania - po wykryciu przerwania (początek stanu niskiego) startujesz timer, przestawiasz stan aktywacji wejścia INT na przeciwny i procek wraca do pętli głównej, po ponownym...
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ł"...
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...
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! Mam taki oto kod: #include <avr/io.h> #include <avr/interrupt.h> #define F_CPU 10000000UL #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 volatile uint16_t m_sekundy_wtrysk=0, m_sekundy_obr=0, licznik_z, wynik_z; //dokładność od 0.1ms do...
Witam, wiem że powinienem dostać łopatę za wykopalisko sprzed kilku lat, ale jak wpisuje w google attiny2313 przerwania to wyskakuje jako pierwsze, znalazłem stronkę która może się przydać wielu innym osobom, a są tam opisane problemy dotyczące nazw przerwań praktycznie dla każdego AVR'a. W tym wątku był problem związany z nazewnictwem dlatego wklejam...
Idea polega na tym, że wskaźniki krążą po buforze w tym samym kierunku, tak jakby koniec bufora połączony był z początkiem, stąd nazwa "bufor cykliczny". Po dojściu do końca bufora wskaźnik przeskakuje na jego początek. Pierwszy zawsze jest wskaźnik zapisu, za nim podąża wskaźnik odczytu. Jeżeli oba wskazują na to samo miejsce to znaczy że bufor jest...
Zobacz jak ja to zrobiłem na Mega8 http://obrazki.elektroda.pl/8838731900_1... Program jaki zastosowałem korzysta z przerwania INT0 które po naciśnięciu klawisza wyprowadza procesor ze "śpiączki" , wysyła dane na IR i usypia go ponownie.Dla mnie takie rozwiązanie jest lepsze niż chwilowe zasilanie procesora poprzez diody. Poniżej wklejam...
łatwiej się już chyba nie da. Sorki, ale ja bym raczej powiedział, że: "JUŻ GORZEJ SIĘ NIE DA :(" Co to za rozwiązanie gdzie w środku siedzi jeszcze obrzydliwy Wait !!! brrr ale żeby nie być gołosłownym, który tylko krytykuje.... Ok, panowie - widzę, że wasze zmagania spełzają na niczym, pokażę wam więc jak się powinno podchodzić do programowania....
Nie mogę sobie poradzić z przerwaniami, nie widzę w którym miejscu zrobiłem błąd. Kompilator czepia się linii ISR(INT0_vect) i ISR(INT1_vect) [syntax=c] * main.c * * * generator impulsów bramkowych * * PB2, PB3, PB4 przyspieszenie impulsu * *PD6 wejście załączjące zgrzewanie * *PD0 steruje tyrystorami * *INT0 i INT1 impulsy 0 sieci * * Created on: 07-09-2012...
Witam, Mam problem z obsługą przerwań zewnętrznych uC Attiny2313. Do pinów INT0 i INT1 mam podpięte przyciski i za ich pomocą chciałbym załączać diody LED. Wykorzystuję generator wewnętrzny. Napisałem program, ale w ogóle nie reaguje na przyciski. Oto on: #include <avr\io.h> #include <avr\delay.h> #include <avr\signal.h> #include <avr\interrupt.h>...
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, mam problem z układem wyposażonym w Attiny2313 - docelowo ma być conajmniej zegarkiem z PCF, natomiast mam problem przy zliczaniu impulsów z portów - gdy którakolwiek zmienna osiągnie wartość około 25 attiny samoczynnie się restartuje. Być może problem jest banalny - jestem tu nowy i proszę o pomoc. Kod (Bascom) ograniczyłem do minimum: $regfile...
Moim problemem jest brak stabilności kodu dla tego mikrokontrolera. Kod skompilowałem w AVR Studio 4 z WinAVR w aktualnej wersji (2010). Kłopoty objawiają się poprzez skok do początku programu. Nie jest to reset - np. zakłócenia na linii RESET. Analizowałem rejestr statusu MCUSR. Początkowo przyjmuje on wartość 0x01, co znaczyłoby reset od POR. Jest...
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...
Układ jest fizyczną realizacją projektu http://obrazki.elektroda.pl/4955329500_1... http://obrazki.elektroda.pl/2160094000_1...
przerwanie deklaruje tak Enable Interrupts Enable Int0 Enable Int1 On Int0 Prawo On Int1 Lewo i wszystko działa jak należy ale jak podam stan niski na stałe to cały procek sie blokuje a chciałem żeby w przerwaniu zrobił tylko tyle Prawo: Portb.0 = 0 Portb.2 = 0 If Startt = 1 Then Portd.6 = 1 Portb.1 = 1 Else End If Return Lewo: Portd.6 = 0 Portb.1...
Witam Wszystkich! po wielu dniach walki z attiny poddaję się i zwracam do Was o pomoc. Problem bardzo podobny do tych, które się tu pojawiały, chodzi mianowicie o przerwanie zewnętrzne w attiny2313. Przeczytałem wszystkie możliwe posty na ten temat (a przynajmniej mam nadzieję, że niczego nie przeoczyłem), i niestety nie pomogły mi. Wiele forów i poradników...
Witam, mam taki problem. Napisałem program. Po naciśnięciu przycisku nr 1 zaświeca diody w kolejności 123, po wciśnięciu 2 w kolejności 321, po wciśnięciu 3 231, a po wciśnięciu przycisku nr 4 mają migać Płytka została wykonana przeze mnie. Płytka sprawdzona, jest poprawnie wykonana. Zasilanie podłączone poprawnie. Reset odciągnięty do VCC rezystorem...
Cześć Mam takie szybkie pytanie, w Attiny2313 na porcie B znajdują się piny od wewnętrznego komparatora i jednocześnie cały port służy jako wejście dla przerwań PCINT. Korzystam z komparatora i kilku wejść PCINT, czy to będzie działać ?? Czy jedno wyklucza drugie ?? Dziękuję za odpowiedzi i zainteresowanie. Pozdrawiam
Witam W załaczniku potrzebne pliki. Attiny2313 z nastawionym zewnętrznym kwarcem, div8 wyłączone, kwarc 11.059200MHz, kondensatory 15pF, stos ustawiony na koniec ramu, prędkość zmniejszona już do 2400 a pomimo to dalej nie wysyła wszystkiego co powinno. Obsługa: t - pokazuje w terminalu napis (jakieś 15 znaków) z - załacza jeden reset x - wyłacza reset...
Witam Mam problem z napisanym programem na attiny 2313, program może jest prosty ale dopiero co się uczę programowania mikroprocesorów w Bascomie.Program sam w sobie działa ale jest problem z drganiami na przełącznikach,switche mam podciągnięte do gnd,diody katodami do gnd anodami do procka.Czytałem o funkcji debounce i o timerach ale narazie timery...
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...
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...
Witam Mam pewien problem z tym kodem If Alarm = 2 Then Goto Alarmowanie Alarm = 0 End If to wszystko działa. Zmienną definiuję następująco: dim alarm as byte Nie mam pomysłu co robię źle.
Napisałem krótki i prosty program do tego aby podczas debbugowania krokowego sprawdzić jak zachowuje się uC. Przerwanie pochodzi z zewnątrz (INT0). I teraz jest tak : przerwanie jest wykryte, ale zamiast skoczyć do funkcji obsługującej to przerwanie program skacze na początek funkcji main (). Co jest nie tak ?? Próbowałem już przy pomocy SIGNAL(), INTERRUPT(),...
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...
http://obrazki.elektroda.pl/3265192600_1... Witam serdecznie. Na wstępie powiem iż jest to moja pierwsza konstrukcja jaką przedstawiam na forum i liczę na konstruktywne opinie. Podstawowe założenia projektu: 1. Zbudowanie "żarówki" (źródła światła) emitującego światło RGB oraz białe, 2. "żarówka" musi być zasilana z 230V i musi mieć...
http://obrazki.elektroda.pl/9114516200_1... Autorski projekt wyłącznika zdalnie sterowanego za pomocą pilota RC5. Cały układ kontrolowany jest za pomocą mikroprocesora z rodziny AVR, ATtiny2313. Na uwagę zasługuje zasilanie układu bezpośrednio z sieci elektroenergetycznej o napięciu 230V, zrealizowane przez zasilacz bez transformatorowy....
Witam, Kilka uwag: 1. nie skonfigurowałeś trybu pracy timerów (rejestry TCCRxA, TCCRxB) Po resecie timery pracują w trybie "Normal", natomiast w twoim przypadku znacznie lepszy byłby tryb "CTC" 2. ustawiłeś prescaler a 1 a nie na 1024 3. brak zachowania stanu PSW i rejestrów w przerwaniach. W twoim konkretnym przykładzie nie spowoduje to błędu ale już...
Można było pokusić się o podtrzymanie samego procesora, ale n.p bateria nie wystarczyła by na długo, a nie można przecież uśpić procesora (odliczanie czasu). Też zrobiłem zegar na ATtiny2313 ale właśnie z podtrzymaniem. Po wykryciu zaniku zasilania mikrokontroler wyłącza wszystko co zbędne i zmniejsza sobie taktowanie, pozostawiając jedynie przerwania...
(...) ' 5 Data 250 ' 6 Data 131 ' 7 Data 251 ' 8 Data 219 ' 9 Wstępna ocena dostępnych informacji W kodzie widzimy dwa liczniki (Liczba_ok i Liczba_nok) zadeklarowane jako zmienne typu Word, a także tablice na cyfry (Cyfra_ok i Cyfra_nok) jako typ Byte. Z punktu widzenia zakresu wartości samych liczników (od 0 do 999) nie powinno to powodować błędów...
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...
Witam , mam kawalek kodu i zauwazylem , ze w symulatorze programu nie wykonuje mi przerwania na timer1 , timer0 dziala bardzo dobrze i symulator go symuluje . Oto programik $regfile = "attiny2313.dat" $crystal = 8000000 Config Portb = Output Config Portd = &B1111000 Dim Adres As Word , Adh As Byte , Adl As Byte , T1pom As Byte Dim I As Byte , T As Byte...
Musisz zaznaczyć cały tekst który chcesz pokazać jako kod, a następnie zaznaczyć napis Code $regfile = "attiny2313.dat" $crystal = 8000000 'kwarc 1MHz $prog &HFC , &HE4 , &H9F , &H00 ' generated. Take care that the chip supports all fuse bytes. Config Timer1 = Timer , Prescale = 64 'timer1 jako licznik 15536 Config Int0 = Rising 'detetor zera...
Zastosowałem się do rad Kolegi Saabotaz i Piotrva. Kod wygląda tak: Cls powoduje, że procesor w ogóle nie pracuje - tzn nie reaguje na RC5 ani na zwieranie wejść ? Wolałbym nie używać Cls , bo jego brak oszczędza 13% miejsca pamięci programu
Prosiłbym kogoś znającego temat o sprawdzenie moich wyliczeń. Do Attiny2313 podpinam kwarc 8Mhz dla timera daję preskaler 4, czyli ck/256, czyli timer jest naliczany co 32us 1s / 0.000032s = 31250 - czyli 31250 naliczeń timera to dokładnie sekunda timer1 jest 16 bitowy więc liczy od 0 do 65535, czyli 65536 cykli - więc aby przepełnił się po zliczeniu...
if((PIND & _BV(PD2)) PORTB |= _BV(PB2); else PORTB &=~_BV(PB2); Jak to ewentualnie zapisać w jednej linii to już sam pomyśl.
[syntax=c]ISR(TIMER0_COMPA_vect){}[/synt...
W tym problem, że warunek może jest sprawdzany ale wykonanie przerwania zmienia zmienną c ale nie jest ona brana pod uwagę przy wykonywaniu pętli while. Sam program główny działa prawidłowo, przerwanie przerywa działanie programu głównego ale wykonanie programu przerwania nie wpływa na wyokonywania odpowiedniego fragmentu programu głównego. Chodzi mi...
Może źle zrozumiałem pierwszy post, ale przyciski podłączone do PA nie wygenerują przerwania PCINT(patrz nota katalogowa). A no tak, masz rację. :) W przypadku ATtiny2313 na PA nie będzie PCINT, ale w przypadku ATtiny2313A już tak, bo w tej wersji procesora dodali obsługę PCINT na każdym pinie każdego portu. Ja posługuję się DS'em od ATtiny2313A i...
Może pokaż na początek jak jest zrobione zasilane awaryjne. Aby korzystać z przetrwania musisz: - odblokować przerwanie INT0 w rejestrze GIMSK (ustawienie bitu INT0 w stan 0) - skonfigurować kiedy ma być zgłaszane INT0 , bity konfiguracyjne ISC00,ISC01 w rejestrze MCUCR - zainicjować vektor przerwania od INT0 (jeżeli nie robi tego kompilator) - odblokować...
przerwania attiny2313 flagi przerwania attiny przerwania
garmin nawigacja symbiana pompka podszybie membrana bierny tonsil
problemy diagbox reset pieca buderus
Podłączenie puszki IPRO z pompą SPINOX 3-15 230V Dysk SSD Patriot P210 1TB widoczny w BIOS, niewidoczny w instalatorze Windows 10