Proszę o wyjaśnienie tematu flagi, najprościej dla topornych :D Właściwe wyjaśnił to kol: Potrzebujesz wprowadzić dodatkowe zmienne tzw. flagi. Niech przy starcie programu mają wartość 0, w pętli badaj stan przycisku i jeżeli wciśnięty zostanie przycisk pierwszy zmień stan flagi pierwszej na przeciwny, później sprawdzaj stan flag. Jeśli flaga jest...
http://obrazki.elektroda.net/41_12633119... Stworzone przeze mnie urządzenie jest praktycznym uzupełnieniem piórnika szkolnego. Jest wyposażone w kilka pożytecznych funkcji i na opisanych poniżej nie zamierzam zaprzestać. Całość została zorganizowana w wygodne w obsłudze intuicyjne menu. 6 przycisków uSwith w jakie jest wyposażony układ umożliwia...
Witam mam następujący problem, napisałem coś takiego do obsługi PWM'a: ; pozycja środkowa 0x005A - 1,41 ms ; pozycja lewa 0x0022 - 0,53 ms ; pozycja prawa 0x0093 - 2,29 ms ; częstotliwość PWM 61Hz .include "m32def.inc" .EQUSYS_FREQ = 1 .DSEG .org 0x0060 .CSEG .org 0x00 reset: ldi r17, high(RAMEND) ldi r16, low(RAMEND) out...
ż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?
http://obrazki.elektroda.net/30_12586328... Witam. To moje nowe dziecko :-) MULTI CONTROLLER - sterownik bardzo uniwersalny . Podstawowe możliwości : - mózg urządzenia ATmega32 - sterowanie z pilota IR (zgodnego ze standardem RC5) - Obsługa do 8-miu czujników DS18B20 (tryb normalny lub parasite) - 7 kanałów załącz wyłącz (przekaźnikowe) -...
I tak nie zadziała. Bo jeśli na raz wciśniesz więcej niż jeden przycisk, to żaden warunek switch nie będzie spełnony. Problem w tym, że wciśnięcie powinieneś sprawdzać jako wynik operacji maskowania, a nie poprzez porównanie (jak to robi switch). Ale można jeszcze inaczej. Odczytujesz PIN, sprawdzasz najmłodszy bit, jeśli przycisk wciśnięty to wywołujesz...
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...
Witam serdecznie mam mały kłopot z obsługa przycisku KEY3 jeśli nacisnę klawisz sw3 to zmienna powinna zmienić wartość na 1,a warunek do obsługi klawiszy KEY2 i KEY1 powinien być spełniony, niestety nie działa :([syntax=c]/* * main.c * * * */ #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #define KEY1 (1<<PB0)...
Witam, jak w temacie. Mam napisaną część programu, potrzebne mi jest menu do niego, obsługa przycisków. Schemat blokowy + resztę danych na priva.
Napisałem kod dla zegara cyfrowego w Bascom. Ogólnie działa jak należy. Mam tylko problem przede wszystkim z budzikiem. Chcę aby podczas alarmu naciśnięcie przycisku 1(PORTD.0) wyłączało alarm(chodzi o sam dźwięk). Program nie reaguje. Nie mam pojęcia czy jest to wina tego, że nie nadąża z wykonaniem polecenia (za długie przerwania?) 2) Aktywowanie...
Dziękuje za opis ale chyba mnie to przerosło :) Zrobiłem programowy PWM, oto kod: [syntax=basic4gl] '************** Petla glowna ****************** '***************************************... Do '(at)(at)(at)(at)(at)(at) Obsługa klawiszy (at)(at)(at)(at)(at)(at) If Przycisk > 0 Then Przycisk = 0 If L1 = 0 Then L1 = 20 If Wybor = 0 Then If K_wybor...
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....
Witam! 1. Jak przekonwertowac otrzymany przez uart ciag ascii na liczbe hex. Tzn ktos np wpisze w terminalu 0xDA i chce zeby procesor zapisal ten odebrany ciag jako liczbe 218 do eeprom. Chodzi mi o sama funckje konwertujaca. Raczej chodzi ci o konwersje z hex na dziesiętnie. Musisz wykonać dzielenie przez 100 i wynik zapisać do komórki pamięci, później...
Przystąpiłem do lekcji 10. Zrobiłem analogiczne poprawki, jak w lekcji 9, ale niestety również nie mogę skompilować kodu. Poświęciłem praktycznie cały dzień na szukaniu przyczyny. Pojawiają się takie błędy przy kompilacji: http://obrazki.elektroda.pl/4932303600_1... Tutaj zamieszczam kod programu po moich poprawkach: ////////////////////////////////////////...
Witam serdecznie! Jestem początkującym programistą, więc liczę na pomoc doswiadczonych kolegów. Ponieważ moje programy zaczęły się "rozrastac" muszę zrobic przesiadkę na ATmega32 a ATmega8. Tak więc mam kilka pytań: - jeśli chcę używać magistrali I2C w ATmega32 to czy linie muszę podpiąć pod końcówki PC1 (SDA) i PC0 (SCL) czy mogę je dowolnie skonfigurować...
Witam. W nawiązaniu do zamkniętego mojego tematu [url=http://www.elektroda.pl/rtvforum/vi... chciałem na atmega32 zrobić takie menu lecz wykorzystując dekoder obrotu. Na przyciskach działa mi to extra ale nie mogę dojść do ładu z tym dekoderem. Z niego poprzez obrót wychodzą impulsy więc chyba musiałoby to być inaczej...
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>...
Witam, działam na procesorze Atmega32 z kwarcem 14745600. Do tego podłączony wyświetlacz 4x20 (HD44780) i 5 przycisków. Lewy i dolny wypisują swoje nazwy, prawy wyświetla menu, górny wchodzi w ustawienia. Teraz, gdy górny zostanie naciśnięty, lewy i prawy przyjmują inne funkcje. Lewy wyświetla "menu" po lewej stronie, a prawy po prawej. Obecnie staram...
Witam. Menu LCD...zrobiłem..uruchomiłem..ale nie byłem z niego zadowolony i zacząłem przerabiać na ile pozwala moja wiedza. Od razu mówię że czary mary ze wskaźnikami,tablicami i inny hokus-pokus to za wysoka dla mnie półka i choć próbowałem to efekt był mizerny i na dobre się w tym pogubiłem.Problemem jest architektura tego menu w którym jest sporo...
Witam A więc jestem początkujący w świecie mikrokontrolerów. I mam problem!!! W świecie elektroniki miałem już do czynienia więc to nie problem. Dokładnym problemem jest programowanie, tak pierwszy program mi się udał czyli migająca dioda, ale gdy chciałem już przyciski do tego dołączyć to jest coś nie tak:( To jest program taki najprostszy: $regfile...
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.
Witam zacząłem projektować termometr na ds1820 do sterowania centralnym piecem. Odczyt temperatury działa ale nie mogę sobie poradzić z klawiszami np. wejście do menu, zwiększ histerezę itp. Poniżej zamieszczam mój kod jeżeli ktoś wyłapał by błąd jaki robię był bym wdzięczny regfile = "m8def.dat" $crystal = 8000000 Config Lcdpin = Pin , Db4...
Witam. Chcę obsłużyć AT8 dwoma klawiszami. W tym celu w pętli głównej sprawdzam, czy któryś z nich (a może oba) nie zostały naciśnięte. Do tego służy mi: unsigned char klawisz (void) //który klawisz { unsigned char aktyw = 0; PINB |= _BV(1) | _BV(2); _delay_ms(30); if (bit_is_clear(PINB,1)) {...
Witam! Dopiero zaczynam zabawę w Bascom-ie, wiec proszę o wyrozumiałość. Zbudowałem układ na Atmega32, 4 kanały PWM do sterowania RGB+biały. Jeden klawisz do zmiany programów, LCD (do sprawdzenia co się dzieje) oraz czujnik oświetlenia na fototranzystorze. Co chciałbym zrobić: -klawiszem zmieniamy programy (różne kombinacje kolorów) -czujnik oświetlenia...
Witam Wiem, że temat przycisku jest mocno nadwyrężony, ale ... Program ma jednym przyciskiem przy dłuższym przytrzymaniu zwiększać i zmniejszać wartość wyjścia PWM ( na zmianę ) lub przy krótszym włączyć/wyłączyć, czyli pwm1a = 0 lub pwm1a = 255. Każda z tych funkcji osobno działa ok, ale razem działa tylko włącz/wyłącz przy krótszym przytrzymaniu W1,...
Witam... Wracajac do tego tematu, z problemem wczesniejszym bylo zwiazane to ze mialem walnieta Atmege, oraz programator na wejscie rownolegle nie dzialal prawidlowo...teraz juz mam zupelnie cos innego :), wiec zaczynam powoli raczkowac w programowaniu uC :/...posiadam programator ISPcable III i uzywam AVR Studio...wiec postanowilem pojsc troszeczke...
Napisałem swój pierwszy prosty programik, na wzór z książki Wiązani, obsługujący wyświetlacz 4xLED i LCD. Na LED wyświetlany jest licznik a na LCD tekst. Wszystko działało dopóki nie dodałem obsługi klawisza na PORTA.4. Doszedłem do obsługi klawisza za pomocą Debounce ;) i próbowałem jak działa. U mnie nie działała więc sprawdziłem na If ..then. Założenie...
$regfile = "m8def.dat" $crystal = 1000000 Config Portc.5 = Input Config Portc.4 = Output Config Portb.0 = Output Portb.0 = 1 Portc.5 = 0 Portc.4 = 0 Do If Pinc.4 = 1 Then Portb.0 = 0 Else Portb.1 = 1 End If Loop End Portb.0 to dioda która ma gasnąć jeżeli naciśnie się przycisk (portc.4). Przycisk(krańcówka) podłączony jest z jednej strony...
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.
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...
Tak.
Cześć, kurcze mam problem i nie mogę go przebrnąć... Zrobiłem sobie termometr i wszystko jest ok, temperatura dość dokładna, ale chciałbym żeby oprócz pokazywania aktualnej temperatury rejestrował mi najniższa, najwyższą i średnią w danym okresie. Mam trzy przyciski, jeden swMeasure_DOWN po którego naciśnięciu rozpoczyna się pomiar i on jest wtedy cały...
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...
Witam, a czy wystarczy do tego AVR studio 4.19 bo mam problem z AS6.1? Czy obsługa USB w tym uP jest w miarę prosta?
Szybki wstęp to takiego menu: Oznaczamy na potrzeby programu każdą pozycję w menu: enum{ 0, menu1, menu2, menu3, menu11, menu12, ...}; tworzymy tablicę przejść menu unsigned char menu_stage [32][4] PROGMEM = { // next prev up down {0,0,0,0}; {}; {}; {}; {}; } nieistotne...
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...
Zapoznaj sie z poleceniem case, Select Case
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...
U mnie obsługa przycisków też będzie w osobnym programie. A to na szybkiego zostało napisane aby sprawdzić działanie.
A ustawienie stosu to gdzie ? Kodu w obrazkach się nie wstawia, tylko w tagach code] ] Kod w ogóle to masakra, użyj preprocesora... Co to za "delaje" w przerwaniu ? Obsługa przycisków przez przerwanie to mi bascomem zalatuje...
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...
Tylko poczatkowym zalozeniem bylo wykorzystanie "state maschine" zeby mozna bylo wiecej funkcji przypisac guzikowi Przykładowy kod jest również realizacją maszyny stanów i nie ma ograniczeń co do ilości funkcji. Problem z Twoim kodem polega na błędnej obsłudze wciskania klawisza. Filtr możesz dodać do funkcji int8_t button() jednak poprawy wymagają...
Witam Moja propozycja to: ATMEGA32 (13zł) + 2 tranzystory PNP (0,4zł) + kwarc z kondensatorami (2zł) + 3 przyciski typu uswitch (1,5zł) + stabilizator napięcia 7805 (1,2zł) + kondensatory (1,5zł) + rezystory (0,5zł) + kwarc zegarkowy (1,5zł) + dwa wyświetlacze LED (6zł) + laminat (3zł). To jest trochę więcej niż cena ADUC814. Jeśli w Twoim sklepie tego...
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...
http://obrazki.elektroda.pl/2762225800_1... Jedyny taki przenośny programator układów AVR. Pomoże wszędzie tam, gdzie trzeba zaktualizować oprogramowanie, a układ docelowy znajduje się w trudno dostępnym miejscu i nie mamy możliwości (lub chęci) ciągać ze sobą laptopa i mnóstwa przewodów. Banalnie łatwa obsługa, niski koszt wykonania, super...
Najrozsądniej jest zwykle badać stan przycisków w przerwaniu timera, np. tym samym, którego używasz do obsługi wyświetlacza. Popatrz np. tu: http://mikrokontrolery.blogspot.com/2011...
Zrób sprawdzanie godziny na jakimś przerwaniu z timera. Uważam że niepotrzebnie robi się to cały czas w głównej pętli. Ustaw timer żeby sprawdzał czas co 0,5 sek i to na pewno wystarczy. A w pętli głównej zrób tylko obsługę menu czy co tam jeszcze będziesz robił.
Jestem studentem, i na laboratoriach z mikrokontrolerów dostaliśmy do wykonania następujące zadanie: Zliczać w timerze ilość kliknięć przycisku i po zarejestrowaniu 5 kliknięć zapalić diodę. Zdaje sobie sprawę że timery nie powinny być w takim celu. Największym problemem przy tym prostym programie są drgania styków. Postanowiłem rozwiązać ten problem...
Dobra światełka w końcu działają po 2 wybuchach złości na biurko, na razie tylko 2 tryby i bez generatora liczb losowych, ale raczej to rozwinę... po jakimś czasie: Kod bez błędów: [syntax=c]/* * main.c * * Created on: 14 wrz 2023 * Author: Dzieci */ unsigned char jasnosc = 32; //określa jasnośc diod #include <avr/io.h> #include <util/delay.h>...
Co do procka to LordBlick ma racje. W LV wywal tą strukturę sekwencyjną i te "prymitywną synchronizację". Daj lepiej w zwykłej pętli while odczyt i zapis. Jak wejdziesz w przerwanie ustaw flagę informującą procke o wysłaniu danych po wyjściu z przerwania. Procek wychodzi z przerwania i wysyła info do LV. Jak coś wpiszesz do rejestru to wyślesz, LV odbierze...
To co pisał kolega wyżej będe próbował stosować później, lecz na razie chciałbym przerzucić ten kod na tinny13, pomijając gaszenie i zapalanie przyciskiem. Niech na razie zostanie obsługa samego pilota. Oto powstały kod: $regfile = "attiny13.dat" $hwstack = 32 $swstack = 18 $framesize = 8 ' tiny13 $crystal = 10000000 Config Pinb.1 = Output...
Zdrowa krytyka :) Dziękuje za wszystko :) Jeśli mogę przeprosić za wcięcia, to stało się tak po przekopiowaniu z eclipse. Muszę się przyzwyczaić do zapisów z przesuwaniem 1-jedynek. Nie wiem dlaczego, ale prościej jest mi czytać zapisy szesnastkowe. Możecie pokazać jak taka funkcja z wyborem znaku u mnie "wyświetlaj" powinna wyglądać i dlaczego u mnie...
Nie chciałem się tym zajmować, bo na razie mi to nie przeszkadza, nie zależy mi na dokładnym odczycie, chodzi mi o obsługę samego timera bardziej;> a, że później chciałem liczyć częstotliwość zewnętrznego przebiegu to to może być pewnego rodzaju wstęp :P
Co do programów symulujących to nie używam takich więc nie pomogę z nim (wolę pracę na "żywym organizmie ;) ). Jeśli rożne sprawdzone programy nie działają, to duże prawdopodobieństwo problemów sprzętowych, posprawdzaj: 1. Ustawienia fusebitów (czy wszystko się zgadza) 2. Wszelkie połączenia i kabelki czy nie ma gdzieś przerwy albo coś nie jest źle...
Czy to oznacza, że przycisk masz podłączony pod pin 0 portu B ? Wejście INT0 w ATmega32 jest na pinie 2 portu D i tam powinien być podłączony przycisk, aby wywołać przerwanie. Dopiero procedura obsługi tego przerwania włącza timer 1.
http://obrazki.elektroda.net/30_12564983... W ostatnim czasie przestałem pisać programy typu mrugająca dioda i obsługa przycisków i zabrałem się za coś poważniejszego. Postanowiłem zbudować prosty zegar. Po kilkuset linijkach kodu, okazało się, że zegar nie jest już tak prosty, bo pojawił się w nim: obsługa LCD, RTC, PWM, timer w trybie CTC,...
Uwag miałbym więcej, ale może nie wszystko na raz bo nie ma czasu :D Nie wyświetlaj w kółko tego co ma się pokazywać bo w czasie kiedy będziesz wyświetlał mikrokontroler może coś przegapić. Ogólna zasada jest taka że komendy LCD używa się wtedy kiedy coś ma się zmienić na LCD Po co tyle tego Locate 1, 1 ? Można to zapisać tak: Call Odswiez_lcd a sub...
Testowałem osobiście ten kod. Działa to fajnie ale jest jeden błąd w kodzie. Odpaliłem program a ATMega328 i nie działał ADC0. Należy zmienić to: [syntax=c] static inline void adc_channel(uint8_t channel){ ADMUX &= ~(0b11111); ADMUX |= 0b11111 & channel; } [/syntax] Na to: [syntax=c] static inline void adc_channel(uint8_t pin){ ADMUX = (ADMUX & 0xF0)...
Obsługę przerwań mam w innym pliku #include <avr\interrupt.h> #include <avr\io.h> #include <inttypes.h> #include <stdio.h> #include <avr\pgmspace.h> #include <util\delay.h> #include <math.h> #include "onewire.h" #include "makra.h" #include "harddef.h" #include "lcd.h"...
Napisz konkretnie jak masz rozwiązany sprzętowo przycisk, czy inny system wywołania przerwania na INT0, bo z tego schematu nie bardzo to widzę. Dokładnie, a ze schematu widać jednak, że tylko klawisze w ramach tzw małej klawiatury S1 , S5 , S9 oraz S13 robią zwarcie do GND, czyli tylko w tym przypadku uzyskasz swoje zbocze opadające. A w przypadku...
... oraz skupić się na programowaniu i nauce algorytmiki, a nie zmaganiu z kabelkami, ciąganiem ich całymi wiązkami i zastanawianiu, czy to coś nie tak z programem, czy też może coś nie kontaktuje. A jak już umiem nieco więcej, wiem czemu ma służyć i przetestowałem układ, to trawimy płyktę, lutujemy i ma działać. ............................. jak to...
Co z tego, że są "w stanie 1"? No zgadza się, że przyciski są tylko tymczasowo, ale one mogą załączyć podczas jednego naciśnięcia przerwanie nawet kilkaset razy. W dodatku w przerwaniu masz operację mnożenia na zmiennej SINGLE co nie jest dobrym rozwiązaniem. Jeszcze raz sugeruję by wywalić LCD z pętli. Najlepiej ją zostawić pustą. Wynik wyświetlać...
Witam, dołączę się do tematu aby nie zaśmiecać forum. Moim problemem jest drganie styków przycisku aby wywołać przerwanie int2. Przyciskiem włączam i wyłączam optotriak MOC3041 który z kolei załącza sterownik lampy sodowej 70W przez triak. Problem jest taki: mimo, że zrobiłem programową obsługę drgań styków to działa ono jedynie bez obciążenia - czyli...
Zamierzam w swoim projekcie wykorzystać funkcję "config KBD" gdyż będę potrzebował użycia dużej liczby przycisków do obsługi at32. Proszę o podpowiedź czy praca takiej funkcji, a szczególnie "debounce" i "delay" w niej zawarte nie zatrzymają timerów pracujących cały czas w przerwaniu. Z góry dziękuję za pomoc.
atmega32 przycisk atmega32 obsługa przerwania obsługa przycisków atmega32
antena ncplus blokada rozproszona dodatkowa rozdzieliła
Napęd bramy Nice RO500 - migająca czerwona dioda Instrukcja serwisowa Panasonic SA-PMX2 - naprawa krok po kroku