co do bascoma, to może kolega zumek tu zajrzy wtedy napewno coś poradzi ;) a jak nie to znajdź go i zapytaj na PW pozdr Bascom w tym przypadku nie ma nic do rzeczy , a przyczyna jest prozaiczna ;) Procek idzie spać w przerwaniu , a w takim przypadku WSZYSTKIE przerwania są wyłączone :D Już mi pora , przejść w STANDBY ;) Piotrek
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...
Mimo że port ma 7 wyprowadzeń to zawsze ustawiaj 8 bitów, bo to wciąż port 8-bitowy tylko że z obciętymi nóżkami. Regulację szybkości robi sie łatwo. Dodajesz jakąś zmienną np LICZ i teraz co każde wejście do przerwania timera to zwiększasz tą zmienną o 1. Teraz porównujesz ją z drugą zmienną np SZYBKOSC. Jeśli LICZ > SZYBKOSC to wykonujesz zawartość...
Witam wszystkich :D Zanim zalozylem ten temat b. duzo szukalem tego co potrzebuje i wiem ze bylo juz pisane na ten temat ale nie znalazlem nic konkretnego wiec pisze . A chodzi mi o to ze potrzebuje napisac program w bascom do attiny 2313 ktory mial by utrzymywac procka w trybie uspienia a gdy wcisne jeden z 2 guzikow to ma sie obudzic wyslac dany kod...
Ach Chorwat.....cały czas jest tak samo... próbowałem ręcznie podciągać i ustawiać wartość pin'u przerwania na 1 i na 0, nawet zmieniłem przerwanie na Int0... myślę, że po prostu Bascom albo Attiny tu wysiada :cry:; chyba czas sie przesiąść na C albo Asm'a...oj będzie ciężko. Pomimo tego wciąż liczę na cud :D, że ktoś wymyśli coś co mi pomoże.
Narazie odpuszczam tryb powerdown aż nie zrozumiem dokładnie o co chodzi z flagami. ] Teraz diody migają ale całkiem inaczej niż przewiduje program i dzieje się to niezależnie od stanu przerwania int0. Czy jeszcze gdzieś jest błąd? Program jest dość krótki, niemniej jednak jest w nim kilka pdstawowych błędów. Zwróć uwagę na: Int0 masz na wejściu PB1,...
Do odczytu stanu portu służy rejestr PIN. Czyli masz źle zrealizowane warunki w funkcji przerwania.
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...
Problem nie jest mały. Musisz poczytać o przerwaniach i Timerach. W helpie po polsku napisanym przez Zbigeen i umieszczonym na stronie Bascoma. I zapomnieć na jakiś czas o wait. Bo w takim "liniowym" programie bez przerwań to tego się nie da zrobić.
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...
Jeżeli ktoś by chciał obsługę USART do attiny 2313 bądź atmega32 w *.C, to mam przerobiony pod siebie kod. W C czasami brak poprawnego działania RS'a może być spowodowany tym że wpisze się wektor przerwania od uart'u a nie od uasart'u, rózni sie w nazwie dokładnie tymi wyrazami.
Witam, Na wstępie chciałbym powiedzieć, że zanim zdecydowałem się napisać ten post, używałem szukajki na tym forum i wujka google ale bez pozytywnych rezultatów (przeczytałem bardzo wiele tematów i skopiowałem wiele kodów). Przejrzałem także plik Help w Bascom. Problem polega na tym, że funkcja getrc5 zwraca zawsze wartości adresu = 255 oraz komendy...
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...
Witam Podlaczylem dwa microswiche do Int0 i int1 i masy i probuje taki programik na zwiekasznie i zmniejszanie zmiennej, lecz procesor nie reaguje na przyciski, dlaczego? $regfile = "2313def.dat" $crystal = 8000000 Dim Z As Byte Config Int1 = Low Level Config Int0 = Low Level Config Lcd = 16 * 1a ' konfiguacja wyświetlacza Lcd Enable Interrupts...
Mam program, tak jak poniżej, nie reaguje na przerwanie z int0 i int1. Program ma sterować silnikami od drzwi garażowych '--------------------Sterownik bramy by Peter507------------------------------' Enable Interrupts Enable Int0 Enable Int1 On Int0 Przerwanie On Int1 Przerwanie1 Dim Licznik As Byte , Licznik1 As Byte , Stan_bramy As Byte , Opcja1...
Witam Potrzebuję programik na attiny2313 napisany w bascom. Mam ten procek , oscyloskop i trochę ogarniam bascoma a potrzebuje to dopasować do zepsutego urzadzenia. Podane czasy są orientacyjne , wyliczone na kartce. Te czasy będę musiał dopasować , stąd potrzebuję to w bascom , opóźnienia związane z obsługą "coś ma zrobić" są nieistotne , skoryguję...
Poprawiłem tytuł na bardziej oddający problem i zgodny z regulaminem p. 3.1.15. Ponadto proszę się zapoznać z zasadami korzystania z działu: http://www.elektroda.pl/rtvforum/topic34... LordBlick Witajcie. Oświećcie mnie dlaczego ten program nie działa tak jak powinien. Przełączam przełącznik który pin PB1 zwiera do masy (pojawia się zbocze opadające...
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...
Jakie są polecania w bascom do obsługi pcint0 potrzebuje uruchomić to przerwanie w attiny 13. Gdyby ktoś jeszcze wiedział czym sie różni to przerwanie od ont0 to byłbym wdzięczny za podzielenie sie wiedzą.
Piszę program, do czasowego wyzwalania migawki: Na pokładzie mam attiny13, tact-switcha, oraz diodę led i transoptor. Układ ma wysyłać impuls ok 300ms co określony czas. Czas ustawia się poprzez wciskanie przycisku - jedno wciśnięcie = 0.5s więcej. Dłuższe przyciśnięcie (pow. 3s) powoduje ustawienie minimalnego czasu(0.5s). Problem jest taki, że im...
Proszę o prosty program który będzie obsługiwał przerwanie INT2 opadającym zboczem na procesor atmega 8535 w bascomie. Wynikiem działania obsługi przerwania może być zaświecnie ledy na dowolnim porcie. Próbowałem różnych konfiguracji i nic nie działa, INT0 i INT1 działa a INT2 nie :( z góry dziękuję george2002
wader_669 to mogę chociaż poprosić o wskazówki od czego zacząć ? A co do helpa to czytałem go. Mirekk36 czy chodzi ci o to If Address = 0 Then 'clear the toggle bit 'the toggle bit toggles on each new received command 'toggle bit is bit 7. Extended RC5 bit is in bit 6 Command = Command And &B01111111 Aha ja mam RC5 podłączoną pod pin PD6 a nie pod przerwania...
Dwa układy działające z pilota w kodzie rc5 . Attiny 2313 jako odbiornik i nadajnik . Układ ma odebrać dane z pilota i to samo wysłać . Po za tam ma wykonać pozostałe rozkazy. To działa bez problemu . Z helpa Bascom wyczytałem ze wysyłanie RC5 jest na PORTB.3 . W moim kodzie nie dział to. [syntax=vbnet]'Odbiornik RC5 'Wyjścia w stanie niskim tak długo...
Witam, Napisałem program, który po wciśnięciu switcha (podaniu napięcia na PinB. 1 i PinB. 2 przez kilka sekund) ma migać diodami w kolejności 123 lub 321 w zależności od wciśniętego switcha. Po naciśnięciu switcha 1. diody przez cały czas zaświecają się po kole 123 i tak przez cały czas. Przerwać może tylko wciśnięcie switcha numer 2 i włączenie funkcji...
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.
Mam jedno pytanie czy są małe avr-ki ,attiny w obudowach dil ośmino nóżkowe , które posiadają sprzętowy uart . Albo jak w bascomie mogę napisać procedurę do np. attiny 25 który nie posiada takiego sprzętowego uarta żeby można było użyć komendy print program ma wysłać kilka zmiennych .W atmega 8 jest specjalna nóżka tx oraz rx do transmisji szeregowej...
Witam Napisałem prosty programik w Bascom i nie działa mi ale nie wiem dlaczego:( A więc na: PB 0 daje - a na PB 1 + PB 2 + PB 3 + ... $regfile = "attiny2313.dat" $crystal = 1000000 Config Portb = Input Portb = &B01111111 Config Portd = Output Portd = &B0000000 Do If Pinb.0 = 1 And Pinb.1 = 0 Then Waitms 10 Portd.0 = 1 Waitms 10 Portd.0 = 0 End If If...
wita wszystkich. Mam taki problem.... jest program napisany za pomoca srodowiska bascom AVR wgralem go do Attiny2313 i nie pyra ani widu ani slychu, moze wiecie co jest nie tak w tym kodzie: Config Portb = 255 Portb = &B11111111 Config Portd = &B1111100 Portd = &B1110111 Do 'pętla Debounce Pind.0 , 0 , Zwieksz , Sub Loop End Zwieksz: Incr Eedr 'zwięk...
jakby kolega na początku napisał o co mu chodzi to było by mniej problemów. Q1. Czy jeśli ATTINY2313 jest traktowany częstotliwością 20 MHz oznacza, że przerwanie timera może być równie często generowane? niestety nie. 20MHz to czestotliwośc taktowania, timerów i rdzenia. samo wywołanie przerwania i potem wyjście z niego to około 15 cykli. jak będziesz...
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...
pier - twój program działa bardzo dobrze, dokładnie tak jak go napisałeś. A że napisałeś go badziewnie to taki masz efekt. Błędy: 1) W przerwaniu INT0 wyskakujesz z niego GOTO do głównego programu, tak nie można. Wyjdź z przerwania komendą RETURN, ale na jego końcu a nie przez podmianę GOSUB. Powinno być: If Sw = 1 Then Powerdown i RETURN na koncu....
Witam Chciałem zrobić prosty sterownik światła na pilota. Poniższy kod nie daje się skompilować - czy są jakieś przeciwwskazania do pracy Attiny45 + RC5 ? [syntax=basic4gl] $regfile = "attiny45.dat" 'etykietka mikrokontrolera $crystal = 9600000 'standardowy zegar wewnetrzny $hwstack = 16 ' rozmiar stosu sprzętowego $swstack = 16 ' rozmiar stosu programowego...
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...
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...
Koledzy, nie wiem jak to jest w Attiny, ale spotkałem się z dwiema rzeczami w innych uC: 1. Timery mają własne przerwania, czyli nie musisz zajmować żadnego innego przerwania, które może Ci się przydać do czegoś innego. 2. Jest coś takiego jak priorytet przerwań, zatem jeden z timerów będzie ważniejszy, jeśli obydwa naraz wygenerują przerwanie.
Przerwania i Timery to rozwiązanie idealne i książkowe, na początek, ale tylko do nauki możesz zrobić na Wait'ach, ale nie polecam tej metody bo prowadzi do złych nawyków...
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...
Nie bawiłem się ATtiny2313, ale jeśli ma PWM to da się zrobić jakieś odtwarzanie dźwięku z próbek. Robiłem takie coś na ATmega128. Puszczasz generator PWM na najwyższej częstotliwości i jakiś timer do generowania przerwania okresowo. Timer determinuje częstotliwość prókowania. Podczas każdego przerwania timera wpisujesz nową próbkę do rejestru generatora...
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ć...
A na jakim to jest procku? ATMEGA czy ATTINY? Dużo zależy od czystości sygnału i jego amplitudy. Zliczanie można zrealizować na przerwaniu INT0 ale wczśniej dobrze aby sygnał przepuścić przez komparator aby ukształtować ładny prostokąc, można też wykorzystać wbudowany w procek komparator analogowy.
Podejrzewam, że te Waitms w obsłudze przycisków blokują wyświetlanie. Spróbuj je do testu usunąć. Oczywiście przyciski nie będą wtedy działać poprawnie, ale sprawdzisz wyświetlanie. Obsługa wyświetlania powinna być przeniesiona do obsługi przerwania, ale to już większa przeróbka programu. To przygasanie tak bardzo przeszkadza?
Dawno Bascoma nie używałem ale to będzie coś takiego: On int0 czas 'przerwanie zewnetrze (wejście impulsów) do czestotliwosc=1/czas 'obliczenie czestotliwosci z czasu pomiedzy impulasmi loop czas: stop timer0 'zatrzymaj timer czas=timer0 'odczyt z timera timer0=0 'wyzerowanie timera start timer0 'ponowne uruchomienie timera return Oczywiście...
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...
Po co stosować tu przerwanie? Kardynalny błąd to stosowanie polceceń opóźnień w przerwaniach. W tym programie problem tkwi w: If Przycisk = 0 Then Waitms 100 If Przycisk = 0 Then Incr Sekwencja If Sekwencja = 0 Then Incr Sekwencja If Sekwencja = 4 Then Sekwencja = 1 End If End If End If End If Popraw na: If Przycisk = 0 Then Waitms 100 If Przycisk =...
GETRC5 używa licznika TIMER0. Albo TIMER2 jeśli go układ posiada i tak go skonfigurujesz w CONFIG RC5. Aby ustrzec się dziwnych błędów (z adresami linii poza programem) nie zapomnij o wpisaniu nazwy pinu w CONFIG RC5. Sam kod bazuje na dokumentach ATMELa: http://www.atmel.com/dyn/resources/prod_... I tam można całą procedurę prześledzić....
ł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....
Lecz zrobiłem sobie testy: Że na wyświetlaczu wyświetlam wartość B, i jak się okazało, jeśli zamienię Config Timer0 = Timer , Prescale = 1 na Config Timer0 = Timer , Prescale = 8 to wartość B zmienia się szybciej! Dlaczego tak się dzieje? Może dlatego że jest jest prescale =1 to przerwanie jest wykonywane co 32us czyli w czasie tego waitams 20 trafia...
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...
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...
Dosyć odważnie sobie poczynasz na mikrokontrolerze mającym 2kB Flash i 128B SRAM :D ale do odważnych świat należy. Odchudziłem Ci trochę kodzik. Obsługa przerwania timera została stuningowana moim programem NoSave Tool. Teraz mikrokontroler nie odkłada na stos większości rejestrów a tylko te potrzebne - w tym przypadku tylko jeden :D Przekłada się to...
Witam Piszę program pod sterownik na attiny2313. Na chwilę obecną jest obsługa wyświetlacza LED 3 cyfry multipleksowanego przerwaniami z timer0. Chciałem wprowadzić attiny w tryb power down. Jak doczytałem tryb powerdown powinien ustawić wszystkie porty w tryb wysokiej impedancji więc spodziewałem się, że gdy wejdzie w ten tryb to wyświetlacz zgaśnie....
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ł...
O układ DS3231 lekko zahaczyłem (...) Cenę sprawdziłeś? Dodano po 1 W pętli głównej procesor nie robi nic. ************************************* Do Loop End ************************************* Oznacza to, że czas odmierzasz w przerwaniach. Mam nadzieję, z timer pracuje w trybie CTC. W takiej sytuacji w pętli głównej usypiaj procka. Bascom ma odpowiedni...
Funkcja WAITMS nie jest odporna na przerwania. Jeśli masz jakieś to każde wystąpienie przerwania w trakcie WAITMS rozjedzie go. Niezależnie od stabilności tej funkcji, a nie ma powodu, żeby nie była powtarzalna jeśli nie jest przerywane wykonanie przerwaniami, to i tak lepsza praktyką będzie wykorzystanie timera.
Napisz tak: Dim Zmienna As Byte Zmienna = 0 Config Intx = Low Level | Rising | Falling [ | Change ] 'Konfiguracja reakcji na sygnał przerwania 'za x podstaw nr przerwania wybierz jeden ze sposobów pobudzenia kocówki uC Enable Interrupts 'Uruchomienie przerwań globalnych Enable Intx 'Uruchomienie przerwania INTx On Intx Obsluga_przerwania 'wskazanie...
dlatego też proponuję ci jak najwięcej posługiwać się etykietami, zresztą w przypadku zmiennych już to robisz ale warto też robić to w przypadku stałych, np adresów przerwań, adresów pamięci itp... ... skąd brać te nazwy? - zajrzyj sobie do plików typu def (definicje dla danego procka) i tam masz wszystko dokładnie - wystarczy tylko użyć kopiuj wklej,...
Nie znam za grosz bascoma... Ale ogólnie to tak... Pogonił bym go z wewnętrznej PLL (64MHz) na 16MHz... To samo z zegarem timera... Dzięki temu częstotliwość dla PWM będzie jako taka... W zasadzie to sprowadza się to do zrealizowania timera 12-bit... W C łatwiej mi pokazać o co chodzi niż pisać esej... ISR (TIM1_OVF_vect) { if(timer_compare==timer_counter)...
Musisz przemyśleć algorytm działania programu. Po pierwsze te mrugające diody zrób na przerwaniach z jakiegoś timera. Ustaw przerwanie tak żeby występowało kilka razy na sekundę i zliczaj ilość przerwań do 2 sekund i raz zapalaj raz gaś to bardzo proste do zrobienia. Co do pozostałych to attiny ma 4 kanały PWM a z tego co zrozumiałem to wystarczą ci...
Chwile mnie nie było :D Napisałbym to inaczej, ale wracając do pytania z pierwszego postu . Jeśli chcesz by procesor zawsze był tak samo zajęty to każ mu w tych innych Case`ach także nadawać Pulseout tylko na pin Reset. Bascom to przełknie bo ten pin może pracować jako normalny I/O ale jak jest resetem to nic mu się nie stanie jak napiszesz Pulseout...
Teraz nie rozumie juz nic. Z tego co bascom robi w powerdown.Wygląda jakby tylko włączał zezwolenie na tryby uśpienia. Czy ja coś źle odczytuje? Czy kolega Zumek mógłby napisać w ASM przejście do ST-BY dla tego Attiny? Bo według mnie było by to tak: $asm !IN R24,mcucr !ORI R24,0x20 !Out mcucr , R24 !IN R24,mcucr !ORI R24,0x50 !Out mcucr , R24 SLEEP...
Po pierwsze to po resecie mikrokontrolera piny są ustawione jako wejścia więc nawet nie trzeba tego robić Po drugie to kierunek ustala się za pomocą rejestru DDRx a nie PORTx (to nie Bascom) Po trzecie to musisz doczytać jeszcze o przesunięciach bitowych bo szybko na tym polegniesz w C. To podstawa. Po czwarte to klawisze (słicze) musisz mieć albo podciągnięte...
Może odpal jakiś Timer żeby generował przerwanie bardzo często. Powiedzmy co 10us. I w przerwaniu sprawdzaj czy pin ma stan 0 czy 1. Jak 1 to inkrementujesz jakaś zmienną. Jak zmieni się na 0 to zwracasz wynik i zerujesz tą zmienną. Oczywiście w tym samym przerwaniu sprawdzaj tak samo drugi pin. Niestety wymaga to kodu obsługi przerwania w assemblerze...
PCINT to specjalne przerwania aktywowane zmianą stanu pinu. Dodatkowo wszystkie przerwania PCINT w tych procesorach wywołują jedno przerwanie, w którym należy programowo określić, który pin je spowodował ważny jest też rejestr PCMSK, który odpowiada za maskowanie nieużywanych przerwań. Polecam lekturę datasheetów tych procesorów w celu dokładnego poznania...
attiny przerwania bascom attiny przerwania bascom przerwania
dioda maszyna normstahl radio manual power
nawiewnik higrosterowana ta8207k zamiast ta8227p
Samsung Galaxy Grand Prime – Set Warranty Bit: Kernel, Knox Warranty Void 0x1, root, custom ROM Głowice magnetofonowe: uniwersalne, zapisujące, odczytujące – zamienność, parametry, skutki