Oops pomyliłem system binarnym z dziesiętni wagami bitów :D zaraz poprawie edit:najprościej uint8_t k;//deklaruje wcześniej ponieważ będe używał poza pętlą for(k=0; k<4; k++){ if( (PIND>>(4+k))&... ){k++;break;}//k++ ponieważ otrzymam 0-3 a potrzebuke 1-4 uint8_t j = ( i*4 ) + k; jeszcze...
Hehe... no to następny pomysł - a jak szybko obraca się pętla główna programu? Nie wiem jak masz skonstruowany program, czy w ogóle jest? Dużej precyzji czasów chyba nie potrzeba, nie ma różnicy, moim zdaniem, czy przytrzyma się przycisk 1s czy 1,1s, więc może ten pomysł wsadzić do pętli głównej i bez przerwań. Wtedy w zależności od szybkości pętli...
Jedynym wyjściem zdają się być przerwania, obsługę klawiatury należy zrobić w podprogramie przerwania INT0 lub INT1, poczytaj ten temat :-) http://www.elektroda.pl/rtvforum/topic10...
Niestety klawiatura matrycowa wymaga nieco zachodu z jej obsługą, za to wymaga mniejszej ilości pinów - coś za coś :) Nie wiem jakie dodatkowe funkcje będzie miał program, ale z reguły skanowanie klawiatury robi się w oparciu o jakiś timer, bo dodatkowo należy eliminować drgania styków. Strona ... korzystaj do woli, a w razie problemów pisz na forum...
http://obrazki.elektroda.pl/9745806300_1... Witam. Sesja się zbliża, więc tradycyjnie zacząłem już prokrastynować :D . Ostatnio zacząłem pisać bibliotekę do obsługi klawiatury PS/2 w C dla AVR i postanowiłem na szybko w godzinkę lub dwie stworzyć jakiś praktyczny projekt w celu jej przetestowania. Początkowo nie planowałem tego publikować,...
Witam. Szczęśliwie dla użytkowników praktycznie wszystkie wyświetlacze alfanumeryczne LCD obsługuje się tak samo. Ich chipy sterujące są zgodne z HD44780. W skrócie obsługa LCD'ka wygląda tak: - inicjalizacja (zestaw komend sterujących, ustawia się min. sposób podłączenia 4/8 bit, ilość linii itp itd.). Sprawa dosyć dobrze opisana w większości datasheet'ów...
Witajcie. Prosta sprawa. Od lat używam obsługi klawiatury z użyciem timera, przez co nie blokuje ona działania programu a zapobiega drganiom styków i udostępnia dodatkowe funkcje. Ale do rzeczy. Zwykle robię to tak: - sprawdzam czy naciśnięto przycisk i jeśli tak to "odpalam" timer na 30-50ms, żeby przeciwdziałać drganiom styków, - jeśli po tym czasie...
W c ten program gdzies w internecie widziałem.. Bedzie wymagał być moze małego dostosowania. Mam go ale niestety w asm pod atmege 16. ; Programowalny pilot RC5, obsługa interfejsów optycznych i pamięci EEPROM ; Rafał Baranowski (C) 2004 .INCLUDE "m16def.inc" ; SEGMENT DEKLARACJI .EQU OSC_FREQ= 1000000; częstotliwość pracy w Hz .EQU...
Generalnie port jest zatrzaskiem więc nie ma sensu się martwić czy dana informacja się zmieni czy nie do czasu kolejnego zapisu do portu :) To daje ci sytuację taką korzystną sytuację że nie musisz się martwić o to co rozbi procek w tym czasie. Pytanie jak bardzo zależy ci na dokładności odmierzenia czasu w przypadku zapalania diody na około 1s lub...
Mam problem z klawiszem w klawiaturze laptopa. Jest to standardowa klawiatura 101/102 klawisze. Klawiszem tym jest średnik. nie wiem czy ma to jakies znaczenie, ktory to klawisz. problem polega na tym ze wszedzie tam gdzie mozna pisac, poczynajac od edytorów tekstu, przez google, gg az nawet tutaj piszac ten post wyskakuja mi nagle sredniki, tak jakby...
Witam. Zastanawiam sie nad kupnem: http://www.cyfronika.com.pl/klawiatury.h... Klawiatura UM215.3 Jednak nie ma nigdzie do tego schematu i nie wiem czy jest na czyms takim linia do wywolania przerwania na mikrokontrolerze. ( nie chodzi o linie kolumn i wierszy )
Witam Mam takie pytanie otóż od dawna myślę jak można wykorzystać klawisze zamykania, hibernacji i ponownego uruchomienia na klawiaturze? Jak to można zaprogramować bo normalnie klawisze nie działają. Słyszałem że trzeba pogrzebać coś w biosie. I jeszcze jedno mam dodatkowy klawisz ''turbo'' do czego on może być bo też nigdzie nie działa? Z góry dzięki...
Witam, mam problem z klawiaturą, musiałem coś kliknąć na niej i teraz jak przyciskam jakąś literę na klawiaturze i ją przytrzymuje to klawiatura zamiast pisać cały czas tą literkę to ją przerywa. Klawiatura: Blow Adrenaline
Witam!Mam nastepujacy program obslugujacy klawiature matrycowa na 89S52: void delay(int del) { int i; for(i=1;i<del;i++); } void migaj(char a) { P0=~a; delay(10000); P0=0xFF;; delay(10000); } void main(void) { char tmp,low; tmp=0x8F; P2=0xbF; while(1) { P2=0x7F; //ustaw wiersz low=P2&0x0F; //kolumny if(low==0x07)migaj(16); if(low==0x0b)migaj(15);...
Witam Mam masakryczny problem z klawiaturą, mianowicie opóźnienie. W systemie np. w notatniku itp. jest wszystko ok, nie ma opóźnień. Natomiast w grach jest 2-3 sekundowe. Instalowałem przeróżne gry, od najbardziej wymagających po te najniższe (Crisis - Tibia), wszędzie to samo. Z myszką nic się nie dzieje. Próbowałem tych sposobów: - Aktualizacje sterowników...
mam zepsuty klawisz (/) sam się włączą - jak go wylaczyc z poziomu dos ( Windows , czasami chodzi ok a czasami sam z siebie wpada i na ekranie np w Word drukuje mi /////////////////////// cos takiego przerywa sie to klepiąc dowolny inny klawisz pomyślałem ze rozwiązaniem bedzie usuniecie obsługi tego guzika , bo i tak rzadko jest używany
Witam. Mam pewien problem, a mianowicie coś się stało, ponieważ jak przycisnę jakąś literkę np. l,k,q,a itp. wpisują się tak powoli jak bym pisał na maszynie do pisania. Tak samo jest z usuwaniem tekstu kiedy kilkę Backspace usuwa się bardzo powoli co mnie strasznie irytuje.. Nie mam pojęcia czy użyłem jakiś klawiszy i się to przestawiło?, nie wiem....
mój problem polega na tym że coś przez przypadek na klikałem i po przytrzymaniu dowolnego guzika na klawiaturze zapętlą się w nieskończoność np aaaaaaaaaaaaaa itd
napisałem program do obslugi klawiatury i cos mi nie chce działac nie wiem dlaczego wyglada to mniej wiecej tak: dim zmienna as byte config portd.0 = input set portd.0 'wlaczenie podciagania config timer0 = timer, prescale = 1024 on timer0 klawiatura enable interrupts enable timer0 do (program glowny) loop klawiatura: if portd.0 = 1 then incr zmienna...
http://obrazki.elektroda.pl/1998348900_1... Witam, chciałbym wszystkim przedstawić projekt sterownika matrycowego wyświetlacza LED. Na początek proszę tylko o nie ocenianie wykonania płytki (na płytce uniwersalnej/pająk) bo jestem świadomy jak ona wygląda i jak ją wykonałem. Historia Pomysł projektu narodził się, gdy jakieś pół roku...
https://obrazki.elektroda.pl/1761046600_... Pokażę tu jak uruchomić z Arduino czterocyfrowy wyświetlacz 7-segmentowy sterowany poprzez rejestr przesuwny 74HCT164 i cztery tranzystory BC546. Płytka z wyświetlaczem znów będzie odzyskana z elektrośmieci. Będzie to już kolejny temat, w którym uruchamiam wyświetlacz, gdyż omawiałem już...
IRQ tester https://obrazki.elektroda.pl/3243423400_... IRQ Tester to proste narzędzie, głównie do testowania czasu odpowiedzi na impulsy, lub czasów międzyzboczowych dostarczonego sygnału. Program został napsiany na ukontroler AVR Atmega168, a jego głównym zadaniem jest funkcja multiwibratora monostabilnego, którego działanie polega...
Bardzo dziękuję za odpowiedzi. Skonfigurowałem piny PA2 i PA3 jako UART2, aktywowałem przerwania. Jak debuguję, to obsługa przerwania następuje z klawiatury komputera, lecz z klawiatury MIDI podłączonej do mikrokontrolera nie ma już żadnej reakcji. Mam podłączony MIDI shield do pinu Rx. Jak mogę przesłać tę wiadomość MIDI do mikrokontrolera? Czy idę...
repeat equ 8 ; bajt zmniejszany o 1 po kazdym wykryciu wcisniecia klawisza keyboard equ 9 ; bajt z kodem klawisza (255 - nie wcisnięty) faza equ 0 ; bit informujący czy klawisz jest wcisnięty; jesli nie, to faza = 0 keys_delay_1 equ 20 ; czas w 1/50s przez jaki musi byc wcisnięty klawisz aby zostal wczytany ponownie keys_delay_2 equ 3 ; czas...
Zazwyczaj zamykam rolety tylko do połowy, choć zdarza się że zamykam je całkiem. Stosując dostępne na rynku rozwiązania musiałbym stać koło wyłącznika, żeby zatrzymać w odpowiednim momencie ale jako człowiek bardzo wygodny postanowiłem zbudować sterownik, który zautomatyzuje tę czynność. Założenia - możliwość zapamiętania/zmiany punktu półotwarcia,...
U mnie w kodzie nie ma ...... /* * sterownik dla Margas * wersja dla NUCLEO STM32F446RE * działa dzieki życzliwości i zaangarzowaniu członków forum ELEKTRODA * wspomagających moją skromną wiedzą programistyczną * za co jestem im bardzo a to bardzo wdzęczny * data xx-xx-2024 */ #include "STM32TimerInterrupt.h" #include "STM32_ISR_Timer.h"...
Witam ! Wydaje mi się, że chodzi tu o rozróżnienie przerwań zewnętrznych od wenętrznych inny skok przy przerwaniu wew. a inny przy zew. W programie obsługi trzeba poprostu sprawdzać skąd przychodzi przerwanie i odpowiednio skskać. Obsługa klawiatury z przerwania nie jest dobrym pomysłem. pozdrowienia T Dodano po 3 Witam ! Wydaje mi się, że chodzi tu...
To jest moja opinia i nie musi być absolutnie prawidłowa dla każdego przypadku. Jak najefektywniej obsługiwać klawiaturę matrycową w C (cyfry + kilka klawiszy odpalających funkcje specjalne) ? Wydaje mi się że w obsłudze timera zrobić przemiatanie wierszy/kolumn (kwestia nomenklatury) i jednocześnie rozróżnianie klawiszy (kod klawisza dekodować na podstawie...
Magiczne hasło brzmi PULL-UP. Sprawdź w datasheet i tysiącach publikacji w sieci.
Daje to mi 10 wywolan przerwania z czego 9 'niepotrzebnych' . Tu pierwsze pytanie o jakim procku my mowimy, zeby zalowac 9 przebiegow bardzo prostej funkcji Takiego stylu programowania uczyłby kolega w szkole? kolejne 10800 wybudzen Ile trwa praca procesora po takim wybudzeniu, niech bedzie 10ms co daje stosunek 1:800. W praktyce bedzie to poniżej...
Z chęcią poczytałem prawie cały temat i także uważam, że warto abyś go nie zamykał. Ja jak zwykle idę w kierunku oszczędzania źródła zasilania (w większości przypadków baterii litowej), więc podejście Mirekk36 jest akurat w kontraście do mojego przypadku (w zakresie przerwań): ...Ale nie potrzeba zaraz wszystkiego co się da opierać o przerwania, czyli...
Temat wyznaczony do dyskusji o obsługiwanych za pomocą tej biblioteki . Link do biblioteki: http://mikrokontrolery.blogspot.com/2011... Mam problemy z zaimplementowaniem powyższej biblioteki do ATmega8. Napisałem już całość jak mi się wydaję, ale jakoś nie chce to działać: Program kompiluje bez błędów, wgrywam...
Impulsator nie będzie pracował na przerwaniu tylko zwykle w pętli do loop bo takie rozwiązanie wystarczy. W tejże pętli będą także wysyłane sygnały regulacyjne po I2C jako odpowiedź na regulacje wykonane impulsatorem oraz wyświetlane dane na LCD. Procedura obsługi przerwania od Rx (MIDI) odczytuje bajt i jeżeli równy jest 176 (nasze dane) to czyta dwa...
seba_x , dziękuję za pomoc dostosowałem Twój przykład do Bascoma i udało się programik działa. Programik usytawiłem jako podprogram przerwania i zadziałało. Dzięki za pomoc.
Witam! Dziękuję za odpowiedź! Próbowałem tak robić. Nadal pozostają jedenak dwa pytania: jak ma wyglądać taka obsługa przerwania (listing) oraz która linia ma wyzwalać przerwanie (ta z CLK czy DATA). Pozdrawiam
jesli przerwanie zakloca ci transmisje i2c to masz cos nie tak bo to transmisja synchorniczna i nawet jesli dana przestanie się wysylac na kilka minut a potem się wznowi to bedzie ok. może przybliżę problem ponieważ wiem że coś jest nie tak :D tylko co ? 1)przerwanie timera w okreslonym interwale czasowym sprawdza stan klawiatury i jesli jakis klawisz...
Do arturt134 Wyłączenie przerwania na czas odpowiadający pracy powiązanej z przerwaniem( oczywiście nie globalne wyłączenie przerwań, co byłoby po prostu odsuniętym przerwaniem bez zagnieżdżeń) jest dobrym rozwiązaniem. I skanowanie klawiatury zamiast przerwań też jest dobre. Ale nie mogę się zgodzić co do uniwersalności Twojego rozwiązania. Jest przejrzyste...
Witam, Chciałbym napisać program (w Codewarriorze) który na wyświetlaczu 2x16 na grónej linijce będzie odliczał sekundy a na dolnej wyświetlał dane zczytywane z klawiatury matrycowej. Jak to najprościej zrobić? Wydaje się że trzebaby użyć przerwań wewnątrz których byłby napisany podprogram który by co sekundę zmieniał stan sekundnika, a w głównym programie...
Do obsługi klawiszy służą przerwania zewnętrzne intX oraz pcint ,tam masz możliwość konfiguracji pinów ,które wywołują przerwanie. Ewentualnie musisz napisać programową pętlę która będzie sprawdzała stan wejść pamiętając o drganiu styków i temu podobnych zjawiskach . Musisz też pamiętać że program musi bezustannie sprawdzać stan wyprowadzeń żeby reagował...
... Zumek thx wielkie... A co do c i bibliotek to proponuje szukac info wszędzie byle nie avr-lib :) Google bardzo pomaga... Czyli kto szuka nie błądzi.. :) A przy okazji nasze forum jest bardzo dużą bazą danych. Przy okazji dodam że poszukuje obecnie programu w ce do obsługi klawiatury matrycowej na przerwaniu. Pzerwaniu tzn mam na myśli przerwanie...
jak już chesz koniecznie marnować wolne piny (bo może masz ich zbyt wiele) to lepiej podłącz sobie te przyciski przez 74HC30 i będziesz miał jeden wspólny sygnał dla przerwania INT jednocześnie wejścia 7430 podłącz pod jakiś port i w przerwaniu odczytasz sobie ich stan. Nie jest to najlepszy sposób bo to samo można zrobić w przerwaniach i uzyć klawiatury...
No właśnie z tego niewiele wynika, bo nie widać dobrze połączeń (ścieżek) pomiędzy poszczególnymi elementami płytki, ale zakładam, że to zestaw uruchomieniowy wcisnąć klawisz i nie puszczać do czasu, kiedy timer wyłączy diody, puścić klawisz i zaobserwować reakcję diod. Można ewentualnie spróbować wyeliminować problem stosując sprzętowy debouncing....
To prawda że nie są to procesory wielordzeniowe. Windows może wykonywać kilka zadań "jednocześnie" pracując na procesorze jednordzeniowym ( pamięta ktoś może 386, 486, pentium 166 itp ? ) Zrobiłem kiedys program "wielozadaniowy" na at90s8535 polegało to na odczytaniu stanu interesujących mnie wejść w pętli głównej programu i wywołaniu odpowiednich procedur....
Czy Atmega 128 posiada 4 liczniki czy 8 ? Czestotliwosc nie bedzie wysoka potrzebuje zadawac tylko step dla silniow krokowych ok 1Khz. Sprawdziłem jeszcze raz. Atmega128 ma cztery liczniki. Kanałów PWM ma osiem. Ale nie uzyskasz z nich 8 różnych częstotliwości. Chyba tylko cztery. Jeśli potrzebny Ci tylko sygnał STEP to PWM jest niepotrzebne. Oznacza...
markosik20: Aaa widzisz, jednak nie wszystko napisałem: unsigned char znak_klaw = 0x00; sbit dana_klaw = P3^1; sbit zegar_klaw = P3^2; Zmienna zegar_klaw to sygnał zegarowy z klawiatury, a dana_klaw to dana przesyłana z klawiatury. No ale zauważ, że po wywaleniu funkcji inicjalizacja_LCD() program działa prawidłowo więc wszystkie funkcje while() w przerwaniu...
Niby odbiera. Niestety jak używam przerwania Urxc nie mogę używać bufora wejściowego(Serialin.....). No nic, napisze go samemu. Zobaczymy co z tego wyjdzie.
chce mieć wszystko w przerwaniach ponieważ układ będzie "spał" jak nie będzie miał sygnału z klawiatury a nie "młócił" ciągle sprawdzanie portów. I po to chcę wszystko w przerwania władować. Wiem że można to zrobić w głównej pętli ale to mi nie jest potrzebne. A po za tym robienie obsługi i wszelkich działań w głównej pętli według mnie jest mało praktyczne...
Najlepiej zrobić to w obsłudze przerwania od timera. Tak jak pisze kolega Alagner - licznik ustawić na np. 100Hz, a w obsłudze przerwania muszą być liczniki programowe realizujące odliczanie czasu - pierwszy liczy do 100, co daje na jego wyjściu 1s, a następny może już odliczać sekundy, następny minuty, godziny, itd... Jednocześnie w tym przerwaniu...
Zależy w sumie o jakim języku programowania rozmawiamy, osobiście sprawdziłem, że się da w asemblerze 2xRS (komunikacja z falownikiem i debug na PC) + podwójna bariera podczerwieni + sterowanie grupowe (synchronizowane z siecią) triakiem + obsługa klawiatury + obsługa LCD znakowego 2x16 i przy tym procesorek jeszcze ma czas na bieżącą konwersję BIN2BCD...
Dzięki Panowie. zrobiłem program do obsługi klawiatury. Teraz jeszcze mam problem z wprowadzaniem liczb dwucyfrowych. W jaki sposób najlepiej rozwiązać ten problem ?? Dadam, że obsługa mojej klawiatury jest wykonywana poprzez przerwania licznika TIMER0 Oto moja procedurka obsługi klawiatury: '_______________________________________...
Nie zdarzyło mi się uszkodzenie portów zwarciem itp więc póki co rezystory usuwam. Generalnie panel już działa i to bardzo dobrze obsługa programowa jest nawet przyjemniejsza od obsługi zwykłej klawiatury czego się nie spodziewałem. Mam jednak pytanie czy ktoś ma jakiś pomysł na generowanie przerwania w momencie dotknięcia ekranu ? tak aby nie było...
Witaj, powiem tak, niewiele nauczysz się zlecając komuś pracę. Jeżeli urządzenie ma służyć do nauki to może spróbowałbyś je sam wykonać. Ja polecałbym Ci zacząć od prostych rzeczy, jak np wykonanie płytki(jakiś starter kit na avr'ce) lub coś prostszego znalezionego w sieci. Potem zacząć pisać proste programiki jak np migająca dioda, obsługa przycisku,...
pewnie że nie ma wpływu na timery i musisz poczytać książki o samych prockach żeby zrozumieć co to są timery sprzętowe. Bo o ile można powiedzieć że program nie ma wpływu na timery sprzętowe to już timery sprzętowe a raczej ich przerwania mają wpływ na program i to się wiąże z tym działaniem niedokładnym twojego nieszczęsnego wait..... zatem obsługa...
Chciałbym zrobić symulację naciśnięć klawiszy na klawiaturze PS/2 wykorzystując ATMega328 z rezonatorem kwarcowym 16MHz i interfejs PS/2 na USB. Posiłkowałem się tym opisem PS/2. https://www.avrfreaks.net/sites/default/... Z opisu wynika, że urządzenie PS/2 (wspomniana klawiatura) musi być w każdej chwili przygotowane do odbioru...
FastAVR jest mocno związany z asemblerem i daje bardzo efektywny kod wynikowy - Bascom się chowa przy nim. Ale tak jak w asemblerze trzeba pamiętać o deklaracji i inicjacji każdej zmiennej. Pierwsze 3 linie definiują typ proca, głębokośc stosu, prędkość zegara - ważne dla symulatora. Definiuję przerwanie od Timera0 i ustalam tryb pracy Timera0 Definiję...
Czyli nie ma żadnej szansy na skorzystanie z JP13 dla pełnej klawiatury? Ależ jest ;) ... po to to zostało zrobione, tyle, że obsługa tego musi wyglądać całkiem inaczej niż na razie ci się to wydaje (w porównaniu do wykorzystania pojedynczych klawiszy) Musisz poczytać o obsłudze klawiatury matrycowej, a wtedy JP13 rzeczywiście podłączysz sobie do któregoś...
No właśnie tak to powinno działać ( u mnie to działa poprawnie w przypadku RC5 i klawiatury na PCF8574A ) Raczej nie sądzę, że to sposób zapisu odebranych danych ( jeszcze nie przerobiłem na odbiór w pętli ) do zmiennych powoduje taki problem. [syntax=basic4gl] '****************************** $regfile = "m644pdef.dat" $crystal = 16000000 $baud = 9600...
To jest w porządku, jakbyś później przenosił program na procesorek z większą ilością RAM to nie zapomnij, że wtedy wskaźnik stosu jest przechowywany w SPL:SPH : ldi TempA, HIGH(RAMEND) out SPH, TempA ldi TempA, LOW(RAMEND) out SPL, TempA MOje pytania bardzije będa się tyczyły zaprojektowania jakiejś prostej klawiatury na 5 klawiszy....
heh wydawało mi sie że skorzystanie z gotowca będzie łatwiejsze niż pisanie tych funkcji od podstaw :) listing pliku keyb.c [syntax=c] //**************************************... // Plik: keyb.c // // Zaawansowana obsługa przycisków i klawiatur // Wersja: 1.0 // Licencja: GPL v2 // Autor: Deucalion // Email: deucalion#wp.pl...
No więc kombinowałem już wczesniej z tymi różnymi opóźnieniami. Wstawiałem je w kilka miejsc na wszelki wypadek i zmieniałem na bardzo duże. Niestety poległem ;) Często klawisze powtarzały się same, nawet bez wciskania przycisku :/ Nie wiem do tej pory co to było. Ale rozwiązałem już problem. Przynajmniej na razie wszystko działa jak powinno. ;) Zmieniłem...
przerwania klawiatury obsługa klawiatury obsługa przerwania timera
galaxy praca silnik passat zasilać wzmacniacz ochrona excel
samsung np900x3c samsung np900x3c
Jak wyłączyć demo w piekarniku Amica EB-2602 z uszkodzonym zegarem DIEHL? Podłączenie elektryczne domofonu Ritto 7630 - jak to zrobić?