a kondensatory filtrujące na zasilaniu procesora są ?
Przeszukałem dokładnie każdy temat dotyczący obsługi przycisków pod ATmegą8, ATmegą16 czy ATmegą32 jednak w żadnym z nich nie znalazłem instrukcji, która krok po kroku wyjaśniłaby schemat działania tej prostej klawiatury. .... Piny kolumn K1, K2, K3 i K4 klawiatury łączę kablami odpowiednio z pinami PC0, PC1, PC2 i PC3 portu C mikroprocesora. Piny...
Żeby zrobić za pomocą Timera - to nie możesz używać trybu PowerDown tylko Sleep - żeby właśnie Timery mogły działać to po pierwsze. W taki trybie jednak będziesz miał nieco większy pobór prądu niż w pełnym PowerDown. Więc wszystko zależy na ile ma wystarczać bateria o ile jest to coś zasilane z baterii. Bez PowerDown'a na pewno będzie to sporo krótszy...
Poświęciłem czas dla Ciebie: - podałem Ci linki, gdzie jest opisany między innymi Twój problem, - napisałem przykład dla ATmega8, - wskazałem, gdzie go skompilować (CManiak) a Ty nadal nie wyciągasz żadnych wniosków: Zebrałem w kupę wszystko co mi podaliście dondu i Marku. Kod jest teraz taki: Czego od nas oczekujesz? Gotowca? Nie potrafisz operować...
Dawno nic nie skrobałem dla AVR, poniżej kod który skompilował się lecz nie ma jak przetestować. Do sprawdzania wciśnięcia klawiszy powinieneś napisać funkcję, która będzie to robić zamiast ciągłego wstawiania prawie tego samego kodu. [syntax=c] #include <avr/io.h> #include <util/delay.h> /* definicje dla preprocesora */ // klawisze #define...
Unsigned char to jeden bajt zaś int nie może być mniejszy niż 2 bajty. Opóźnienie 100ms w warunku eliminuje drgania styków. Dla zabezpieczenia można oczywiście dodać flagę a następnie sprawdzać jej stan w momencie sprawdzania warunku.
Np. BS170 G - bezpośrednio na pin procesora; załączenie tranzystora (podświetlenia) stanem wysokim S - na masę D - katoda diod/y podświetlenia
Nie działa bo masz nie włączone podciąganie do plusa. Rejestry PIN nie służą do zapisu w tym procesorze (tylko w niektórych modelach zapis 1-dynki do nich powoduje zmianę stanu odpowiadającego bitu w rejestrze PORT). http://www.atmel.com/Images/doc2503.pdf - strona 64 Musisz dać dla każdego przycisku po instrukcji Config ... Input instrukcję Set Portd.x...
żaden u mnie nie działa (tak jakby w ogóle nie następowało zczytywanie i analizowanie bitów z portu C JTAG wyłączony?
[syntax=c] #define Button (1<<PB0) #define Button_PORT PORTB #define Button_PIN PINB #define Button_DDR DDRB volatile _Bool Key_Pressed = 0; // flaga wciśniętego przycisku [/syntax] [syntax=c] Button_DDR &= ~(Button); //port - wejście Button_PORT |= (Button); //włącz pull up [/syntax] [syntax=c] ISR(TIMER0_OVF_vect)//przerwanie wywoływane...
W trakcie obsługi przerwania przychodzi następne i czeka w kolejce. I czekać będzie nie ważne jak bardzo zostanie "przeciągnięte" przerwanie.
Witaj. Zacznij od na przykład tego: http://mikrokontrolery.blogspot.com/2011... i zaglądnij także do spisu treści oraz oczywiście datasheet mikrokontrolera. 1. Nie jeśli jest zasilany także z 5V. 2. tak, ponieważ włączasz wewnętrzny rezystor pull-up, który wymusza jedynkę na wejściu (pinie). Zwierając przyciskiem pin do...
Oprócz zasilania, AREFu, Resetu i pinów od kwarcu można podłączyć wszędzie gdzie Ci pasuje. Drugi pin przycisku najczęściej do masy.
while (!(PINx & KEYx)) ?? Wtedy wpadnie w pętle z której wyjdzie tylko po wciśnięciu odpowiedniego przycisku.
A, i zamiast podpinać to przez opornik do Vcc możesz skorzystać z rezystorów pull-up w mikrokontrolerze, robisz to ustawiając odpowiednio rejestr PORTx.
[syntax=basic4gl] If Alarm = 1 And Portd.0 = 0 Then Reset Alarm ' Jeśli alarm wysyła dźwięk i zostanie naciśnięty przycisk nr. 1 - wyłącz go[/syntax] powinien być Pind.0
Polecam zapoznać się z priorytetami operatorów w języku C.
A wyłączył JTAG'a w fusebitach ??? hę? Może tak rzuci okiem do PDF'a na PIN PC4 - jakie ma alternatywne funkcje??? Kolega ;)
Witam, Mam pytanie dotyczące komendy switch i zakresu jej stosowalności. Mianowicie, mam podłączone 8 przycisków na port B. Chce sprawdzać który przycisk jest w danej chwili wciśnięty i wykonywać odpowiadającą mu funkcję . Pierwsza idea polegała na zastosowaniu rozkazu if, ale potem pojawiła się taka koncepcja z użyciem switch'a: switch(PINB)...
Przecież to, co pokazałem, tak samo dobrze zadziała i dla 10 stanów - wystarczy zmienić typ zmiennej z _Bool na uint8_t, zapisywać w niej numer aktualnie wyświetlanego czujnika i zmienić warunki: [syntax=c]if (czujnik != x && !(PINC & 1 << x)) { czujnik = x; // wyswietl } if (czujnik != y && !(PINC & 1 << y)) { czujnik...
zmontowałem prosty układ w oparciu o atmege32. ........ PortC 0-4 przyciski do sterowania masą. JTAG wyłączony?
dobra przepraszam - sam doszedłem do tego jak pomyślałem... Co do płytki testowej to właśnie mam przed oczami jedną i nic takiego tu nie ma, dlatego sam próbuje to zrobić ;] dzięki za pomoc... Pozdrawiam
Przy częstotliwości rdzenia 8Mhz sygnał PWM będzie niestety prawie zawsze słyszalny (częstotliwość PWM będzie się zawierała w przedziale od 120Hz do 31kHz w zależności od preskalera). Ludzkie ucho potrafi zarejestrować częstotliwości do ok 20Khz natomiast wyższe odczuwamy jako dyskomfort (zatykający uszy pisk). Nie każdy to usłyszy bo zakres słyszalnych...
Witam Mam problem z zegarem na lcd. Wyświetlacz mi działa. Działa nawet zegar, lecz jest on napisany bardzo łopatologicznie i używa, delaya, a to nie jest wg mnie najlepszym pomysłem. Chciałbym,żeby zegar wyliczał sekunde z zewn kwarca 32.768 kHz. Tak podobno najlepiej. Poniżej przedstawiam program, który aktualnie używam. Próbowałem wklejać proste...
Pokaż cały program. Jeśli masz schemat to także załącz.
Witam. 1./ w fuse bitach wyłącz JTAG ( używasz pinów jtag ) 2./ piny do przycisków podciągnij rezystorami 10K do plusa zasilania.
No niestety .. to tylko symulator programowy, na jedną instrukcję AVR'a on musi wykonac tysiące.
W debounce, przez opóźnienie 25 ms jeden z wyświetlaczy świeci dłużej niż reszta. Polecenie jest bardzo przydatne, ale czasami warto z niego zrezygnować i badać stan przycisku co 20 ms, tylko wtedy, gdy kończy się cykl wyświelania. 20 ms bo zazwyczaj czas naciśnięcia przycisku to 40 ms.
z C da sie ale c++ dla avr ?...oj malo realne
Schemat + program, a do tego: http://mikrokontrolery.blogspot.com/2011... i inne z działu Zasilanie i zakłócenia: http://mikrokontrolery.blogspot.com/p/sp...
Witam wszystkich :) W ramach nauki jezyka C (przesiadka z bascoma) napisałem taki program. Niestety zero odzewu ze strony switchy. Prosze o pomoc i z góry dziekuję :) Oto kod: /* * main.c * * Created on: 2011-02-28 * Author: adi84_84 */ #include <avr/io.h> #include <avr/pgmspace.h> #include "LCD/lcd44780.h" #include <util/delay.h>...
"attiny13.dat" $hwstack = 32 $swstack = 18 $framesize = 8 ' tiny13 Dlaczego na samym wstępie wyrzuca mi błąd w liniach: Pwm1a = 0 Pwm1a = 0 Pwm1a = 255 czy nie można przypisać stałej wartości dla Pwm1a? Kolejne błędy są również powiązane z pwm1a. Oczywiście że możne jeżeli taka funkcja jest dostępna. ATtiny13 takowej nie posiada bo nie ma Timera1,...
Napięcie sterujące kontrastem wyświetlacza bierz z dzielnika zrobionego na potencjometrze, będzie ono niewiele wieksze od zera. W tym układzie wyświetlacz nic nie pokaże. Przyciskom S1, S2 dodaj rezystory podciągające, np. 4,7k.
Jest to Atmega32 Przyciski po wciśnięciu wchodzą do pętli ale nie realizują pomiaru do określonego czasu. Funkcja wykonuje się tylko raz, także obsługa przycików jest ok tylko nie ma tego warunku do określonego momentu i przechodzenia na inne przyciski czyli inne kanały pomiarowe w moim przypadku. Liczę na waszą pomoc bo jest m to bardzo przydatne....
Proponuję zrobić tak aby odebranie jakiejś komendy powodowało załączenie leda a odebranie innej jego wyłączenie. Stosując toggle stan na wyjściu nie dość że będzie się szybko zmieniał to jeszce nie wiadomo na co trafisz puszczając przycisk na pilocie.
Ale jako przyciski będą podpięte czujniki pojemnościowe więc te rozwiązanie odpada..
Cześć. Mam płytkę testową na której jest min. atmega32, 5 przycisków, ISP, RS485 i tym podobne. Chodzi mi o to czy dałoby się zrobić kilka zewnętrznych przycisków do kompa, a dokładniej że przycisk 1 odpowiada za strzałkę w górę a drugi a 2 za enter. Czy takie coś jest możliwe czy może nieopłacalne?
Witam Przyciski musza zwierać do plusa a nie do masy w Twoim układzie. Symulator dobrze pokazuje, zaznaczając PINA0/1 na czarno, ustawiasz na nim stan wysoki, czyli jakieś napięcie. Jeśli mam coś zasugerować to włącz podciąganie do plusa tych przycisków i wyzwalanie instrukcji stanem niskim (tak jak zamierzales) Natomiast jeśli nie chcesz zmieniac programu...
Mamy taki program: [syntax=basic4gl] do if plus=0 then incr A call buzzer end if if minus=0 then decr A call buzzer end if if ok=0 then exit do end if loop [/syntax] Plus minus i ok to Aliasy portu D. Jak zrobić aby podczas naciśnięcia przycisku było tylko krótkie BEEP pomimo trzymania dalej naciśniętego przycisku?
Może najpierw adc, a potem po konwersji rzucanie tego na ekran? Może zastosowanie cls i lcd od nowej linijki cos pomorze. Po bascomie można się wszystkiego spodziewać :) Napis jest odświeżany co sekundę?? Jeśli tak to powinno mignąć tylko na ułamek sekundy.
Witam. Szukam programu obrotomierza zliczającego jedynie ilość impulsów i wyświetlający na LCD wynik, taki który dało by się uruchomić impulsami z przycisku.
To się da o wiele prościej rozwiązać (timery w sumie też nie potrzebne). Wystarczy jedna zmienna np byte dla klawiszy i jedna zmienna bit jako znacznik dla pwm. Przejrzyj temat http://www.elektroda.pl/rtvforum/topic18... i pomyśl chwilę jak wykorzystać znacznik w moim programie żebyś mógł zrealizować to co chcesz...
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...
1: już ująłem 2: bo nie umiem inaczej 3: nie, ma się zmieniać dopiero wtedy jak zostanie naciśnięty inny przycisk 4: a co to jest? 5: tak startuje ;)
Jeśli zwierasz przycisk do masy, to dodaj jeszcze na górze: PORTA=0xff; Aby wymusić na nim stan wysoki, gdy nie jest wciśnięty switch
ok dzięki za pomoc, problem był w drganiach styków :)
Bardzo dziękuję, to bardzo cenne uwagi jak dla mnie ;) Obecnie walczę z próbą pozbycia się przycisków menu i exit i pozostanie przy samym enkoderze. Jeśli mam włączone drganie styków (debounce) to w jaki sposób mogę sprawdzić jak długo jest wciśnięty przycisk?
Ogólnie podam Ci algorytm, bo mam nadzieję, że ujęcie go w kod nie sprawi problemu. masz 2 zmienne typu integer np. T1, i T2 oraz stałą Const max_pulse = 1000 i zmienne bitowe long1 i long2: ustawiasz przerwanie timera tak jak masz to zrobione, tyle, że robisz tam tak: if w1 = 0 then incr t1 if w2 = 0 then incr t2 If T1 = max_pulse then t1=0 long1 =...
W sumie rozwiązałem problem, podpiąłem pod inny pin jeden z przycisków i działa git. Może pin był wadliwy albo sam go jakoś przez przypadek wcześniej uszkodziłem... Pozdrawiam.
Zapoznaj sie z poleceniem case, Select Case
To jest atmega32 z podłączonymi 3 przyciskami i wyświetlaczem siedmio segmentowym
Co do procedury opozniajacej w przerwaniu: dałem ją tam aby układ obudził się po wcisnieciu przycisku ale nie zdarzył wylapac drugi raz, ze przycisk wcisniety i wykonac drugiej funkcji danego klawisza. Każdy klawisz w moim układzie ma miec dwie funkcje: budzenie układu oraz drugą różną dla każdego przycisku.
Nie włączone wewnętrzne podciągnięcia - przy zwolnionym przycisku stan wejścia jest losowy - ładunki i zakłócenia "z powietrza". Przy wspólnym rezystorze i próbie równoczesnego zaświecenia diod mogą one świecić nierówno, a jeśli będą różnych typów - jedna nie zaświeci wcale. O kondensatorach już nie wspomnę. Wpisz do PORTA jedynki na pozycje odpowiadające...
Z każdym przyciskiem skojarz jedną zmienną, która będzie zawierała stan licznika timera, w chwili wykrycia jego naciśnięcia. W kolejnych przerwaniach overflow sprawdzasz: 1. czy przycisk jest ciągle naciśnięty, 2. jeśli 1. jest prawdą to czy różnica pomiędzy licznikiem timera a wartością zapamiętaną w skojarzonej z przyciskiem zmiennej jest większa...
Chyba źle przerysowałeś schemat, bo coś nie mogę go zrozumieć. Szczególnie części gdzie występuję trzy diody LED. Domyślam się że mają służyć do podświetlenia wyświetlacza, ale przy wartości rezystora 100k, to chyba się nie zaświecą. Nie prowadź sygnałów przez obudowę, w tym przypadku Atmega32,. W typowej bibliotece nie znajdziesz takiego przycisku....
No to jeżeli wybierasz dobrą prędkość i dobry port, to albo podłączyłeś kabelki źle, albo ta przejściówka nie jest przejściówką. Jak masz inną to sprawdź. Oczywiście poziomy to 3,3V, a nie 5V, wiesz o tym ? A może wprowadzasz komendy, które wymagają cały czas wysokiego stany na pinie 33 (chyba), czyli wciśniętego przycisku?
Schemat http://www.adatronik.com.pl/PRO_ATMEGA32... pod piny sa podlaczone przyciski, które przed normalnie dzialaly
. Problem pojawia się na każdym pilocie, Piny: 0 i 1 (PD0 i PD1) są te same Rx i Tx co służą do komunikacji z komputerem zarówno podczas wpisywania programu jak i później dla komunikacji w serial monitor; raczej więc unikaj coś do nich podłączac, chyba że jesteś w desperacji braku pinów. Ostatnia rzecz, dla której możesz poświęcic nieco uwagi to salut...
66 osoby widziały ten post, ale tylko jedna odpowiedziała. Wiesz dlaczego? Ponieważ Twój kod i schemat są nieczytelne. Jakie mosfety włączają zasilanie? Czy korzystasz z mosfetów logicznych? Przepisz kod tak, aby każdy pin, i port, do którego się odwołujesz miał swoją nazwę (przy użyciu #define lub const). Na podstawie tego, co podałeś mogę stwierdzić,...
Ten przykład działa, ale tylko dla jednego "przełącznika" ale gdy robie np dwa kolejne to już coś jest źle. Buduje urządzonko, które będzie załączać 3 przekaźniki: - 3 przyciski (portd.4, portd.5, portd.6) - 3 przekaźniki (portd.1, portd.2, portd.3) Jak to można zrobić w BASCOMie?? Kod dla w/w konfiguracji: Config Debounce = 30 Config Portd = Output...
A próbowałeś dać jakieś opóźnienie tutaj: ISR(INT1_vect) { W1_PORT |= W1; W2_PORT &= ~W2; W3_PORT |= W3; W4_PORT |= W4; // w tym miejscu opóźnienie if ( (K1_PIN & K1) == 0 ) ... } Napisałeś, że korzystasz z wewnętrznych pull-up. Mają one dosyć sporą rezystancję (min. 20k, o ile dobrze pamiętam), więc trochę może potrwać,...
Widzę że na początku miałeś sprawdzenie pinb.4 i pinb.7 a teraz napisałeś pinb.5. Sprawdź jeszcze czy jak nic nie wciskasz to napięcie na pinb.4 i pinb.7 jest równe zasilaniu. Może zostaw tylko obsługę przycisków i dokładaj kod po kawałku i sprawdzał po czym przestanie działać. Rozumiem że odczyt godziny działa prawidłowo tylko klawisze nie przynoszą...
Mając otwartego BascomaAVR i ATmega32 w programatorze, klikasz Manual Program , zakładka Lock and Fuse Bits , w grupie Fusebits High zmieniasz Fusebit H na 1: JTAG disable i klikasz na przycisk Write FSH . Musisz przy tym uważać, aby nie zmienić innych ustawień (chyba, że tego chcesz)
No dobra , będzie łopatologicznie. Na zdjęciu , które sam wkleiłeś powyżej , są 4 rzędy "okienek" , które można zaznaczyć(pojwi się taki ptaszek) lub odznaczyć(puste okienko). Ciebie interesują 2 środkowe rzędy czyli fuse bits.I teraz legenda: *-okienko zaznaczone O-okienko nie zaznaczone Po prawej stronie każdego rzędu, znajduje się liczba w formacie...
Więc może najpierw podaj więcej danych, ilość klawiszy jak podłączone (czy matrycowo). Który przycisk do czego ma służyć.
No według opisu płytki na JP13 pojawi się stan niski, gdy jakikolwiek przycisk zostanie wciśnięty. Więc jakimkolwiek.
Dokumentacja dotycząca podłączania kwarcu 32kHz http://ww1.microchip.com/downloads/en/ap... podaje że połączenia powinny być najkrótsze jak to tylko możliwe, przycisk z kondensatorem 100nF musiał byś odciąć, na schemacie widać że EXT_CLK łączy się z dwoma liniami drugiego procka, jak będą problemy ze wzbudzeniem kwarcu to połączenie też...
Witam, mam pytanie czy nie ma ktoś w swoich zasobach plików z przykładowymi programami do zestawu Zestaw uruchomieniowy EvB 5.1 z procesorem AVR ATMega32. Nauczyłem się już obsługi +/- przycisków i led, teraz przechodzę do wyświetlacza i przycisków i szczerze chciałbym zobaczyć te przykładowe programy, ale strona producenta and-tech.pl niestety nie...
korzystając z rozpoczetego ważkiego tematu , spytam czy można uśpić mikrokotroler 'powerdown'-em i wybudzić go jednym i tym samym przyciskiem pisząc w bascomie avr ? Za wszelkie informacje , może nawet przykłady serdecznie dziękuję. Tak jak już to wcześniej napisano z trybu POWERDOWN można budzić zewnętrznym przerwaniem a to przerwanie odpowiednio...
Może powiem co ja na razie wymyśliłem i ku czemu ja się skłaniam jak coś źle to mnie poprawcie 1. Mikrokontroler - Arduino Uno 2. Potencjometry suwakowe 10kOhm 3 Tact Switch 4 Płytka prototypowa 5 Trochę kabli Czy to wystarczy na początek? Arduino UNO to nie jest mikrokontroler. Mikrokontroler to np. ATmega328P, który znajduje się na płytce Arduino...
Diody mogą być, ale musi je mieć każdy przycisk. Czyli musi ich być 16-cie. 4 diody podłączone jak na tym schemacie są zupełnie nieprzydatne (No chyba że wyjścia procesora będą skonfigurowane jako Push-Pull. W tym przypadku jednak szkoda diod, taniej wstawić 4 rezystory po 100...470R). Użycie 16-tu diod pozwoli w prosty sposób wykrywać wciśnięcie wielu...
PWM mógłbyś użyć do sterowania silnika prądu stałego, ale nie silnika krokowego. W Twoim przypadku żeby zmienić prędkość musiałbyś zmienić opóźnienie pomiędzy impulsami podawanymi na uzwojenia silnika. Na początek napisz coś takiego: uint8_t predkosc = 0; for (int i = 0; i < 4; ++i) { PORTB = _BV(k); switch (predkosc)...
Witam. Mam problem z PWM w ATMega32. Posluzylem sie gotowym programem z ksiazki "Mikrokontrolery AVR w praktyce" J.Dolinskiego.Problem polega na tym, ze nie moge zmieniac wypelnienia PWM za pomoca przyciskow klawiatury.Podlaczony do zestawu ZL10AVR oscyloskop caly czas pokazuje stan wysoki.Ponizej umieszczam kod programu. #include <avr/io.h> void...
Niestety nic to nie daje. Wręcz przeszkadza, ponieważ napisy nakładają się na siebie... Mruganie zlikwidowałem zwiększając trochę waitms. Przyciski niestety nadal nie działają prawidłowo
Przecież to można podłączyć inaczej. 3x3 bagrafy. Wtedy potrzeba 15x12 linii. Do tego niektóre można podciągnąć prosto z uP. Np te 12. Do tego trzeba wtedy tylko 2x4094. To już bardziej przypomina kwadrat a więc będzie mniej pinów. Ale wypełnienie multipleksowania tylko 1/12. Nikt nie mówi o RGB. Pomiędzy np. czerwonym a żółtym też jest dużo kolorów....
A nie powinno być SBIS? Program: sbis PINB,0 ; check the button0 is being pressed call Count sbis PINB,1 ; check the button1 is being pressed call Up sbis PINB,2 ; check the button2 is being pressed call Down call Program Jak mniemam wduszając przycisk zwierasz wejście do masy. A SBIC działa jak: "pomiń poniższy rozkaz i skocz do następnego jeśli...
Klawiszy (poza wyjątkowymi sytuacjami typu wybudzanie uC) nie robi się na przerwaniach INT. Delaye w przerwaniu to nieporozumienie. Twoje przerwanie realizuje się tylko po wciśnięciu przycisku, więc trudno by było, aby zwróciło informację o jego zwolnieniu. Zrób przerwanie zegarowe co 25-50ms i cyklicznie sprawdzaj stan klawiatury. Opanujesz w ten sposób...
Policz średni prąd pracy, to znaczy za jakiś określony czas, najlepiej wymiany akumulatorów. Średni, to znaczy 600mA*liczba godzin pracy czynnej + X mA*liczba godzin w uśpieniu + ewentualnie Y mA jakiś stanów przejściowych typu działanie czynne bez podświetlenia. Na tej podstawie możesz dobrać pojemność akumulatora lub określić czas pracy na założonym....
atmega32 tyle co sie juz zorientowalem to: ISR(INT0_vect) { } wówczas zmieniam pind2 posiedzialem poczytalem i zadzialalo
Pin wykorzystany przez przycisk P1, pewnie nie ma podciągniętego wewnętrznego rezystora. Przykład: [syntax=basic4gl] Config Pind.1 = Input ' PD1 jako wejście Set Portd.1 ' pullup PD1 (nie będzie działać jeżeli będzie napisanie Set Pind.1)[/syntax]
W nocie katalogowej trudno przewidzieć co do portu podepniesz w rzeczywistym układzie. Ne zwalaj więc swojej niewiedzy na barki Atmela ;-) Wartość pullupu to 50kohm. Pojemność wejściowa MCU 10pF, 4 przyciski + dioda powiedzmy też po 10pF, razem 60pF, powiedzmy drugie tyle na pojemności montażowe daje 120pF. Tak więc stała czasowa to 6us. Przy zegarze...
Masz błąd w samej koncepcji. Przyciski obsługuj w przerwaniu timera, a LCD w pętli głównej. Nie możesz czekać na LCD w przerwaniu, a testowanie przycisków bez bazy czasu to nieporozumienie.
Dzięki bardzo zaczyna to wyglądać obiecująco. Faktycznie obudowy kondensatorów a i przycisków są spore. Podpowiesz jak je zamienić na mniejsze?
Patrząc na schemat widać, że wejście PA5 "wisi" gdy switch nie jest wciśnięty. Nie wisi, ponieważ do prawidłowego działania przycisku: ... będziesz miał włączony rezystor pull-up więc pin nie będzie wisiał w powietrzu. Innym słowy rezystor pull-up zapewni Ci stan wysoki, gdy pin nie jest zwarty przyciskiem do masy.
Ja bym dodał jeszcze przycisk którym dałoby się zmieniać widok bez wchodzenia do menu.
Pytanie nr 1 to jak podlaczyles ten przycisk ? Potem dopiero mozna szukac jakis anomalii w kodzie.
jak przyciskam i trzymam to KEY1 powoduje znaczne zwolnienie pracy licznika można to jakoś ominąć aby on liczył stabilnie gdy KEY1 jest wciśnięty cały czas ? Dzieje się tak za sprawą _delay_ms(80); w funkcji uint8_t klawisz_wcisniety(uint8_t klawisz) Aby to zlikwidować skorzystaj i innej metody eliminacji drgań styków a najlepiej umieść obsługę przycisków...
Praktycznie to przyciski są podłączone do Vcc, co widać na schemacie
Akurat u mnie to nie działa, bo przycisk pauzy nie chce się zapalić, żebym mógł włączyć tą kontrolkę "disable debug wire and close"
Poproszę więc te szczegółowe dane na priv-a jaki lcd? ile wierszy, kolumn ile przycisków itp i ile gaża wynosi.
W kodzie jest sporo błędów. Nie do końca jestem pewien, czy rozumiem, o co chodzi, ale jeśli przerwanie INT0 jest od przycisku, to nie ma prawa działać poprawnie, a przyczyna efektu, który obserwujesz, leży w operacjach na zmiennej b. Takie przerwanie po wystąpieniu musiałoby być blokowane przy pomocy timera na jakieś 30 ms, co jest znacznie bardziej...
Witam W pierwszej kolejności zamień #define F_CPU 4000000UL na #define F_CPU 16000000UL. Na płytce jest kwarc 16MHz. Do zapalania diody przyciskiem będzie następujący kod #include <avr/io.h> #include <util/delay.h> #define F_CPU 4000000UL int main( void ) { DDRC |= _BV(0); //port C.0 jako wyjscie DDRB &= ~_BV(0);...
Jtag możesz wyłączyć nawet w kodzie: [syntax=vbnet]$regfile = "m32adef.dat" $crystal = 8000000 $hwstack = 64 $swstack = 32 $framesize = 32 Disable Jtag[/syntax] Do tego wszystkie aliasy przycisków powinny się odnosić do PIN a nie PORT. W niektórych masz PINA i tam jest dobrze ale niektóre masz PORTD i tam zawsze mikrokontroler będzie odczytywał 0.
W zasadzie nie potrzebujesz JP13. To chyba taki ukłon w stronę 8051 z dwoma przerwaniami zewnętrznymi. AVRy mają przerwania PCINT na prawie wszystkich pinach i w momencie jak wciśniesz przycisk i tak możesz wywołać przerwanie. Kolega trochę za bardzo uogólnia, nie wszystkie AVRy mają PCINTy na pinach, dodatkowo autor korzysta z Atmega32, który to w...
Uruchomiłem program, który polecił mi Piotrek_P, jednak przy wyborze wyskoczył mi komunikat, że w darmowej wersji mam do wyboru tylko 4 uC. Mojego nie było, więc wybrałem ATmega8. W zakładce "Programator AVR" po wybraniu swojego programatora wybrałem "Sprawdź podłączony AVR", wyskoczył monit o wersji demo, a obok przycisku pojawiła się nazwa mojego...
To w oknie programowania masz w zakładce memories przycisk "erase now". Po jego użyciu powinny zniknąć wszelkie lockbity.
To akurat może być. Słuzy to do progamowego wyzwalania tego przerwania, jak jest taka potrzeba. wiem, ale podłączyłem do portu INT1 przycisk więc to nie ten przypadek :) A jak za chwilę będzie chciał włączyć pull-up dla przycisku i weźmiemy pod uwagę, że robi się to tak: If PORTxn is written to '1' when the pin is configured as an input pin, the pull-up...
Po pobieżnym przyjrzeniu się programowi nasuwają mi się takie wnioski. 1. Zadeklarowałeś wejścia, ale zostawiłeś je jako "pływające". Powinieneś port-y przycisków podciągnąć do plusa, czyli ustwić stan wysoki =1 2. Nie widzę deklaracji dla magistrali 1wire dla DS-ów i całej procedury odczytu i zapisu danych do pamięci. Być może to celowe na tym etapie,...
Otwierasz z Menu "File" (pliki typu "Object Files), Zapyta o nazwę projektu symulacyjnego, platformę (wybierasz ATmega32, lub co tam komu pasuje) a jak się wszystko odpali, klikasz na przycisk okna z lupą... ;) nie licz na nic więcej niż asm i to w niezbyt ślicznym wykonaniu.
Jak się upierasz przy ASM, ale nie chcesz wszystkiego pisac od zera i cos podejrzeć "jak to jest zrobione" no i ogarniesz podstawy programu MicrochipStudio to w nim można otworzyć przykładowe programy (z biblioteki ASF) lub ściągnąć sobie gotowy przykład z -> https://start.atmel.com/#examples/touch Taki przykład mozna odpalić w MicrochipStudio w...
atmega32 przycisk przerwanie atmega32 przycisk przerwać atmega32 przerwa przycisk
termostat lodówki regulacja śrubki sterowanie sekwencyjne narzędzia kuźnia
zwrotnica magnat quantum kalkulator simlock nokia
Schemat wzmacniacza 35W Radioamator 1974 nr 9, Witort, 2N3055, Hi-Fi, PDF Vestel 17MB62-2.6 Mainboard SPI Flash Dump: Firmware, Models, Panel Matching, Faults