przy inicjalizacji LCD wykonaj: write_command(0x28); // interfejs 4-bity, 2-linie, znak 5x7 write_command(0x08); // wyłącz LCD, kursor i miganie write_command(0x01); // czyść LCD delay_ms(5); write_command(0x06); // bez przesuwania w prawo write_command(0x0c); // włącz LCD, bez kursora i mrugania
Spróbuj tego kodu : #define F_CPU 4000000 #include <avr/io.h> #include <stdlib.h> #include <avr/io.h> #define DDR_DB4 DDRD #define PORT_DB4 PORTD #define DB4 PD3 #define DDR_DB5 DDRD #define PORT_DB5 PORTD #define DB5 PD4 #define DDR_DB6 DDRD #define PORT_DB6 PORTD #define DB6 PD5 #define DDR_DB7 DDRD #define PORT_DB7 PORTD #define...
http://obrazki.elektroda.pl/2637033700_1... Witam wszystkich, w poniższym opisie zaprezentuję Wam „wspomagacz lenia”. Głównym celem opisanej konstrukcji jest umożliwienie użytkownikowi zdalnej lub automatycznej kontroli nad urządzeniami w danym pomieszczeniu, w uproszczeniu jest to prosty sterownik do automatyki domowej....
Wywaliłem wyłączanie tych 3 pinów przed pętlę. Masz wyświetlacz ze wspólną anodą, stąd włączenie diody następuje w przypadku podania zera na pin wyjściowy, do którego podłączony jest dany segment. Szkoda, że nie piszesz w komentarzach do instrukcji co według Ciebie ona wykonuje. [syntax=c] PORTD &= ~(1<<PD2); //włącz diodę na pinie PD2 PORTD...
Niestety klapa , pliki z analizator.rar są z 20lipca09 a ja wszystko już wypróbowałem , z każdego podobnego forum w Elektrodzie. Nawet niechce mi sie pójść do sklepu po nowy procek bo pewnie bedzie tej samej dostawy.... Niewiem tylko , w czym tkwi problem bo procek to procek , taki sam . Ponieważ w moim programatorze jest inny sposób ustawienia bitów...
Zacznij od zaprogramowania timera tak, żeby zgłaszał przerwania z częstotliwością z zakresu 1400..2800 Hz. Zdefiniuj tablicę 8 bajtów do przechowywania obrazka. W każdym przerwaniu timera wyłącz wszystkie tranzystory (załóżmy, że kolumn), ustaw zawartość kolejnej kolumny wg. bajtu z tablicy i włącz tranzystor wyboru kolumny.
Na 100% Mega jest walnięta wewnętrznie. Zobacz - zrobi reset, przytrzyma - stan niski jest nagle.....czyli nie wraca to z układu sterowania przekaźnikiem. Porobi szybko włącz wyłącz i co? i zdarzy się, że jest dobrze. Kolega się nie odzywa, pewnie już dawno znalazł problem, albo porzucił w kąt urządzenie. Ale podstawa to wymiana uc w takiej sytuacji....
Witam serdecznie! Od jakiegoś czasu bawię się trochę atmegą8. Jako, że jestem początkujący, pisałem proste programy, typu zaświeć diodki, zgaś diodki. Podczas wykonywania programu, który miał zaświecać daną diodę, gdy wciśnięty jest dany przycisk, mikrokontroler przestał odpowiadać. Program w ogóle napisany był tak, że dopóki nie jest wciśnięty przycisk,...
Witam! Walczę z Uartem na atmedze8. Procek dobrze wysyła dane i tez prawidłowo je odbiera. Natomiast przy każdej probie wysłanie danych z procka do komputera dane się wysyłają, ale zaraz potem procek się resetuje. Nie mam pojęcia dlaczego może ktoś z Was już miał taki problem Będę wdzięczny za pomoc
Tak się zastanawiam, czy to nie powinno działać?: [syntax=basic4gl]Rc5: Disable Int0 ' wyłącz przerwanie INT0 Gifr.intf0 = 1 ' skasuj żądanie przerwania z INT0, UWAGA!!! to nie jest błąd, żeby zgasić ten bit należy wpisać 1 Enable Interrupts ' SEI Getrc5(adres , Kod) If Adres = 0 Then Kod = Kod And &B01111111 End If Set Flaga Disable Interrupts ' CLI...
Jak dla mnie jak to ma być tylko włącz i wyłącz to używania w każdym bloku mikrokontrolera nie ma najmniejszego sensu. lepiej użyć jakiegoś ekspandera portów np PCF8574 w tym przypadku potrzebowałbyś ich 4 sztuki bo każdy jest ośmiobitowy. Transmisja jest po I2C zatem tylko dwa piny zajęte. Co prawda na jeden ekspander masz osiem bloków ale koszt sporo...
Witam, Posiadam płytkę testową EVB 4.3. Za pomocą programatora na płytce chce zaprogramować ATmege8. Wszystkie połączenia wg tej [url=http://and-tech.pl/wp-content/downl... Wszystko przebiega tak jak autor miał na myśli, niestety po wgraniu mojego krókiego kodu: [syntax=c]#include<avr/io.h>...
Witam ! Po bawiłem się Twoim programem i zauważyłem że w pierwszej części programu operujesz portami (wyjściami) : Portd.0 = 1 'zapal diode spawania Portd.5 = 1 'włącz gaz Portd.6 = 1 'włącz prąd Portd.7 = 1 'włącz podajnik a w drugiej części: Portd.0 = 0 'zgaś diode spawania Portd.7 = 0 'wyłącz drut Portd.6 = 0 'wyłącz prąd Portd.7 = 0 'wyłącz gaz...
Witam mam następujący problem.. Reset na atmedze jest podciągnięty do zasilania 5V rezystorem 10k. Gdy programator stk200 jest podłączony do komputera przez lpt procesor się programuje i program działa, w momencie gdy odłącze programator od komputera program przestaje działać , napięcie na linii RESET i GND wynosi jakieś 2V.. Wszystko działa jedynie...
Witam. Niedawno zaczolem przygode z mikrokontrolerami i napotkalem pewien problem. Układ ma zapalac z przycisku wszystkie 4 diody na raz , po nacisnieciu tego samego przycisku powinnien gasic te diody. Zapala natomiast diode 1, 2 ,3 a wygasza 4 i odwrotnie. Wklejam kod: #include <avr/io.h> #include <util/delay.h> #define LED_1 (1<<PB1)...
Moze mi ktos podpowie dlaczego to nie dziala ok. Do portu PD2 podpiety jest przycisk [syntax=cpp]void PWM_init(void) { TCCR2 = !_BV(FOC2) | _BV(WGM20) | _BV(COM21) | !_BV(COM20) | !_BV(WGM21) | !_BV(CS22) | !_BV(CS21) | _BV(CS20); OCR2 = 0; } SIGNAL (SIG_OVERFLOW0) { if(--licznik == 0) { if ((PIND & 0b00000100) == 0b00000000) pressed = 1; if (((PIND...
Kupiłem Atmege8 i programator http://www.kamami.pl/?id_prod=5060900. I kompiluje program: /* 8 diod LED przłączonych do portu D */ /* ATmega 1MHz */ #define F_CPU 1000000L #include <avr/io.h> #include <util/delay.h> int main(void) { /* Wszystkie linie portu D będą wyjściami */ DDRD = 0xFF; /* 0xFF binarnie 1111 1111 */ /* Początek...
Witam! Jakieś dwa lata temu kupiłem sobie atmegę 8 i programator stk200, i chciałem ten zestawik jakoś zaprogramować, ale z powodu braku odpowiedniej wiedzy, źle podłączałem zasilanie i programator co często kończyło się mocnym nagrzaniem procka. Pomyślałem że kasa poszła w błoto, ale ostatnio znowu zachciało mi się pobawić elektroniką. Po przeszukaniu...
Witam, Bawię się w programowanie uC i wszystko szło dobrze póki nie wpadłem by przetestować jak działa procesor z innymi ustawieniami zegara. Mowa konkretnie o ATMega 8, fabrycznie taktowana wewnętrznym 1MHz. Chciałem zmienić na dalej wewnętrzny tylko 8 MHz (podobno jest niezbyt dokładny, ale nie potrzeba mi dokładności do testów). Otworzyłem więc datasheet'a...
Witam Mój problem wygląda następująco, kiedy zaprogramuje Atmegę, tj wgram hex-a z czymś tam na wyświetlacz to po odłączeniu zasilania nie pamięta programu. Po ponownym włączeniu pokazują się kratki, muszę wgrać wtedy LcdBusy.hex ponieważ obojętnie jaki by to nie był nie wyświetli mi nic na LCD, dopiero potem wgrywam LcdDelay.hex i pokazuje mi napis...
Witam wszystkich. Mam taki problem steruję binarnie wyjściami cały port C w Atmega 8. Mam pytanie czy istnieje jakieś proste polecenie zmieniające stan powiedzmy portu PC3 na niski i z powrotem nie zmieniając pozostałych portów. Oczywiście nie wiedząc w jakim stanie są pozostałe porty :?:
Prawdopodobnie masz krzaki, dlatego że operacja uaktualniania zawartości zmiennych nie jest "atomowa". Chodzi o to, że procesor może rozpocząć obsługę przerwania w trakcie uaktualniania którejś z wartości. Zastanów się, co się stanie jeżeli przerwanie zostanie wykonane w zaznaczonych miejscach: Jednosci = Int(t1) [przerwanie] Jednosci...
Witam. Napisałem pewien program działający na atmedze8. Do PD3 podłączyłem przycisk, do PB1 diodę katodą. Program w przerwaniu taktowym asynchronicznie odlicza czas inkrementując zmienną co sekundę. Po wciśnięciu przycisku (PD3) na (PB1) ma się pojawić stan niski czyli dioda ma świecić przez określony czas (t) i tak się dzieje, program działa bez zarzutu...
Witam, W programie przedstawionym poniżej nie zostaje wywołana obsługa przerwania. Próbowałem na innych timerach tez bez skutku. AvrStudio 6, Atmega8a, optymalizacja O2. [syntax=c] #include <avr/io.h> #include <avr/interrupt.h> #include "utils.h" #include "display.h" int main(void) { LEDInit( ); Display(0); //Init Timer 0 TCNT0 = 6; TCCR0...
Witam. Jestem nowym użytkownikiem tego forum. Z mikrokontrolerami dopiero zaczynam swoja przygodę. Piszę ponieważ napisałem program wyłącznika schodowego z regulowanym czasem działania i gdy programuje mikrokontroler to nie wykazuje on zadnych oznak zycia. Mikrokontroler ma być sterowany czterema przyciskami. Dwoma przyciskami niestabilnymi typu microswitch...
Witam! Mam taki oto kod: W funkcji main: while(1) { ReadKeypad(); if(!strcmp((const char*)bufferin,"Wlacz")... { x=0; device[1].dev_status=1; while ( UCSRA & (1<<RXC) ) dummy = UDR; } if(!strcmp((const char*)bufferin,"ylacz")...
Witam, jakiś czas temu zacząłem zabawę z AVR no i w końcu natrafiłem na problem, którego nie mogę rozgryźć. Mam w programie (multipleksowany wyswietlacz 7 seg) linijkę o treści : DOKŁADNIE o ten zapis, wiem ze lepiej uzyć całego portu a nie mieszać jak powyżej D i C, ale nie rozumiem DLACZEGO zapis, który nie powinien ruszać bitów PD2 i PD3 generuje...
Witam. Mam mianowicie problem z wyświetlaczem LCD. Gdy zadziała przekaźnik lampka się załącza i przekaźnik zwiera to wtedy z wyświetlacza LCD znikają literki które powinno widać oraz przyciemnia się podświetlenie. Wydaje mi się iż za mały prąd tam dopływa poradźcie coś bo sam nie wiem może to wina tranzystora albo co zrobić by układ był wydajny prądowo...
Witam. Projekt, który realizuje wymaga minimalizacji poboru energii. Stąd tez chcę usypiać procek i w razie potrzeby budzić zewnętrznym przerwaniem INT1. Układ się usypia, po wybudzeniu (przerwanie stanem niskim) wykonuje raz pętlę while(1), a następnie łapie zwiechę. jakby było ciągle wyowływane przerwanie. Próbowałem, bezskutecznie, ręcznie ustawiać...
Pięknie działająca, fabrycznie ustawiona, Atmega8 przestała się odzywać po mojej pierwszej zmianie prędkości oscylatora wewnętrznego z 1Mhz -> 4MHz. Zrobiłem to poleceniem: avrdude -p m8 -c bsd -U lfuse:w:0x3C:m Komunikaty głosiły, że się zapisało i od tego czasu Atmega się nie odzywa. Wcześniej avrdude informował o następująco ustawionych fuse-ch:...
Witam. Korzystam z wejść ATmegi8 w sposób pokazany na obrazku, tzn. kiedy wcisnę przycisk to na pinie pojawia sie wartość "0" i mikrokontroler wykrywa zdarzenie (pin programowo ma podciągnięcie do rezystora). Problem polega na tym, że jeśli nie wcisnę przycisku, a przyłożę sondę lub kawałek druta do pinu w punkcie oznaczonym 1 to mikrokontroler reaguje...
Dzięki za pomoc :-) Przy okazji przypomniałeś mi, że po wywołaniu przerwania ich obsługa zostaje zatrzymana. Wprowadziłem Twoje modyfikacje, jednakże nadal układ nie działa. Po naciśnięciu przycisku nic się nie dzieje. Oto poprawiony kod: TIMER1_COMPA_STOP nie należy także zdjąć adresu przerwania ręcznie. Może stos się zapchał?
Napisałem program do obsługi dwóch serw taki: [syntax=c]#define F_CPU 1000000 //częstotliowość pracy uP #include <avr/io.h> #include <inttypes.h> //biblioteka zmiennych int main (void) { DDRD=0xFF; //port d jako wyjscia DDRB=0x00; //port b jako wejscie TCCR1B=0x01; // bez preskalera (1mhz) int servo[24]={1000,2000,3000,4000,0,0,0,0,0...
Witam ponownie: Mam taki oto kod programu napisanego w C: #include <avr/io.h> #define F_CPU 1000000 #define CYCLES_PER_US ((F_CPU+500000)/1000000) //definiujemy stany portu sterującego diodą LED #define LED_ON sbi(DDRD,PD1);sbi(PORTD,PD1&... #define LED_OFF sbi(DDRD,PD1);cbi(PORTD,PD1&... //deklaruje LCD-ka...
Witam po raz kolejny. Buduje komputerek samochodowy przy użyciu atmega8 i walczę teraz ze zliczanie czasu trwania stanu wysokiego na wejściu int1. Dążę do tego żeby zliczać sobie ilość spalonego paliwa na danym dystansie. Resetuje wskazanie i będzie zliczał spalone paliwo aż do kolejnego resetu. Podłączyłem wtrysk poprzez diodę =>rezystor=>transoptor=>bramkę....
Witam ! Napisałem program na Atmegę8 do zdalnego sterowania kodem rc5. Na początku wszystko jest ok mikrokontroler uczy się dwóch kodów , pierwszy kod to włącz drugi wyłącz kiedy przechodzi do trybu pracy pierwszy kod załącza diodę drugi ją wyłącza i następuje zawieszenie .Proszę o podpowiedź gdzie tkwi bład . Z góry dziękuję . Załączam listing z programem:...
Próbuje uruchomić przetwornik A/C w tym procesorze i jakoś nie bardzo mi wychodzi. Chciałem zrobić żeby wartość zczytana z potencjometru była wysyłana na wyświetlacz. Wyświetlanie zmiennych i tekstu zdefiniowanych w programie chodzi, tylko czytanie przretwornika mi nie wychodzi: Mam dwa pliki nagłowkowe: 1. lcd.h: #define LCD_H #include <avr/io.h>...
Witam, mam prośbę. Naskrobałem coś takiego na zaliczenie, ale nie bardzo mam gdzie sprawdzić czy wszystko chodzi bo przystawkę zostawiłem w domu i nie mam do niej aktualnie dostępu. Proszę o sprawdzenie kodu i ew. uwagi (bardzo chętnie). uP programujemy przez AVR studio, via gcc. Kod ponieżej: #include <avr/io.h> #include <avr/interrupt.h>...
Witam. Mam problem z sterowaniem wyswielacza LCD 2*20 (sterownik HD...) Na tej stronce: http://mikrokontrolery.net/avr_c_08.htm jest przykładowy projekt dla LCD. Jednak jak załaduje plik lcd.hex do atmegi8 to poprostu nic sie niedzieje :cry: Być może problem tkwi w złym podłaczeniu wyswietlacza do atmegi.....?? Wyswietlacz <-> Atmega E -> PB3...
Witam Mam problem z programem na atmege8 do LCD 2*16. LCD steruje 4 bitowo. Mam takie pytanie,w którym miejscu sa przypisane D4,D5,..,D7 tzn. ktore piny portow odpowiadaja za kazde wyjscie LCD w tym programie? LCD mam podlaczone do portu Db4 = Portc.3, Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 E = Portc.4 , Rs = Portc.5 Gdzie musze jeszcze zmienic,...
Witam, mam płytkę z atmega8 LCD 2x16 i ds18b20, wszystko podłączone w moim mniemaniu prawidłowo, sprawdzałem, oglądałem schematy w necie i wygląda ok. ściągnąłem m.in z tego forum procedury do obsługi LCD i DS18B20, ale chyba to ze soba nie współpracuje bo wyswietla mi na lcd cały czas "temperatura 127,9375" gdyby ktoś był tak uczynny i przyjrzał się...
Witam, Posiadam Atmega8 + DS18B20 + wyswietlacz LCD. 3ci wieczor nie umiem znalezc bledu w mym kodzie odczytajacym temperature. Caly czas pojawia sie 170. Inicjacje przechodzi poprawnie, odczyty niby tez ale pokazuje zla temperatura, naprawde nie mam juz pomyslow co jest nie tak... Prosze o sugestie co mzoe byc nietak. Dziekuje //KONFIGURACJA PORTOW:...
Oto moj kod wyswietlacz sterowanego 4-bitowo. Atmega16 taktowana 16MHz zewnętrzny oscylator. LCD podpięty pod port D (PD1...PD6). Jest tam też trochę niepotrzebnych funkcji ale nie przejmuj się (skompiluj, zgraj, odpal). Na LCD powinno się wyświetlić button1. U mnie działa na 100% #define F_CPU 16000000 #include <avr/io.h> #include <stdlib.h>...
Jestem początkującym w C. Napisałem sobie kilka funkcji sterujących wyświetlaczem LCD (1x16). Przy taktowaniu 1Mhz wszystko pracuje znakomicie. Przy innych częstotliwościach mikroprocesora (2, 4 i 8Mhz) wyświetlacz nie pracuje poprawnie, wyświetla niepełne napisy lub przypadkowe znaki. Mikrokontroler jest taktowany wewnętrznym generatorem RC. Oczywiście...
Chciałbym wrocic do procedur jakie napisałem na wstępie: void USART_Transmit( unsigned char data ) ... void write_temp( short int t) , otoz chce użyc jakiejs alternatywnej procedyry, zeby byla o wiele prostrza, jak ktos taki jak ja (poczatkujacy) spojrzy na ten program to bedzie wiedzial o co chodzi. Nie podoba mi sie ta procedura. Szukalem juz troche...
Witam Ekperymentatorów i Ciekawskich...:) Jestem świeżo zarejestrowanym użytkownikiem , moją pasją ( jedną z kilku :)) jest strzelectwo wiatrówkowe. Cały ambaras w tym hobby to to , aby karabinek wystrzeliwał śrut z mozliwie jak najbardziej stabilną energią. ( o ogromnym uproszeniu ) I stąd cały zwariowany pomysł... :) Projekt powstaje od około dwóch...
Nie wiem czy wiesz, ale PB5 w Tiny13 to Reset, chyba że tę funkcję pinu wyłączysz. Skorzystaj, po prostu, z innego pinu i odpowiednio zmień w kodzie. Nie zapomnij podciągnąć pinu Reset do VCC jakimś 10K-15K rezystorem. http://obrazki.elektroda.pl/2324408600_1... Dodatkowo, żeby dobrze liczył czas, powinieneś zmienić w kodzie wartość...
Wywal ten kondensator z nogi resetu. Zostaw sam rezystor do VCC. Ktoś już miał dokładnie taki sam problem. I wyłącz watchdog'a w fusebitach. I powiedz czy coś to zmieniło ;)
PD7 jest zwierany aby w poinformować mikrokontroler, że został naciśnięty przycisk, a mikrokontroler wystawi stan wysoki na PD6 aby podtrzymać zasilanie całego układu. Dodatkowo ponowne naciśniecie przycisku ponowi cykl pomiarowy, bez czekania na automatyczne wyłączenie; stan niski na PD6 Skomplikowany głownie z uwagi na znaczny pobór prądu przez wyświetlacz...
Instrukcja Pinx.y służy do odczytu stanu portu natomiast Portx.y do ustawienia stanu na porcie. Jeśli sprawdzasz, czy został naciśnięty przycisk to za pomocą instrukcji Pinx.y (wcześniej musisz ustawić Config Pinx.y=Input). Poza tym jeśli chcesz włączać/wyłączać podświetlenie LCD to lepiej zrób to przez jakiś tranzystor, a nie bezpośrednio z portu Atmegi,...
Masz błędny schemat, źle podłączasz przekaźniki. Nie mogę sobie wyobrazić w jaki sposób chcesz aby one działały? Gdzie masz vcc? No i ten Tsop także.
Masz namieszane z nawiasami {} Fragment Twojego kodu wygląda tak: Dodano po 1 Obsługa klawisza wyłącz była w obsłudze klawisza zmniejsz. Nawias } zamykający obsługę klawisza zmniejsz był dopiero po obsłudze klawisza wyłącz. Aby zadziałał klawisz wyłącz musiałeś jednocześnie wcisnąć wyłącz i zmniejsz. Sprawdź to. Dodano po 1 Ale to i tak do końca nie...
A ile czasu potrzebuje komparator aby zacząć prawidłowo działać po włączeniu zasilania? Wiesz, układy potrzebują trochę czasu aby po uruchomieniu się ustabilizować. W końcu całkowicie wyłączyłeś mu zasilanie. A Ty uruchamiasz mu zasilanie i takt później już chciałbyś wynik dostać. Swoją drogą wybór atmegi8 to niezbyt dobry wybór na aplikację energooszczędną....
Takie właśnie zmienne mam zdefiniowane, ale przy porównaniu z aktualnym czasem program wyłącza ale gdy minie czas załączenia nie załącza.
Od pierwszego programu do obsługi wyświetlacza daleko. Bascom jest prostszy niż C++ ale ma znacznie mniejsze możliwości. Na początek chyba lepiej pobawić się diodami. Programy typu włącz-wyłącz, miganie diody itp. To pomaga w zrozumieniu działania mikrokontrolera (przynajmniej ja tak zaczynałem).
Zbyt duże kondensatory po stronie procka - mają wpływ np na reset procka przy wyłączaniu, trzeba wtedy już koniecznie BOD stosować bo mogą być problemy przy włączaniu/wyłączaniu zasilania. W ogóle wtedy może być problem z resetowaniem procka za pomocą wyłączenia zasilania i ponownego włączenia. Wsadź sobie kondensator 1000uF przy procku i sprawdź jak...
Hej! Ja podpinam pod reset coś takiego (załącznik). Naciśnięcie przycisku powoduję reset mikrokontrolera. Dodadtkowo układ zabezpiecza mikrokontroler przed samoczynnym resetowaniem się pod wpływem zakłóceń. Co do reszty to masz rację, reset powoduję dokładnie to samo jakbyś wyłączył i ponownie włączył zasilanie. Pozdrawiam PS Dioda w załączniku to 1N4148.
Włącz okienko wgrywania programu i w odpowiedniej zakładce musisz ustawić oscylator na zewnętrzny. Nie przestaw innych bitów, bo możesz zablokować mikrokontroler (ustawienie obwodu RC jako oscylator lub wyłączenie programowania ISP).
Jak napisał przedmówca rezystor jest niepotrzebny (nawet oba), jeśli przy braku rezystora pomiędzy bramką a masą nie możesz wyłączyć tranzystora oznacza to tylko że źle skonfigurowałeś porty procesora. Inna możliwość to uszkodzenie portu, ale raczej wątpię... Daj listing programu to się okaże. P.S. Napięcie ok. 1V sugeruje że port ustawiony jest jako...
Sposobów znalazłoby się kilka, ale ja proponuję: Włączenie "generatora" [syntax=basic4gl]Config Timer1 = Timer , Prescale = 8 , Compare A = Toggle , Clear Timer = 1[/syntax] Wyłączenie "generatora", przez "odłączenie" wyjścia OC1A, od portu(pinu). [syntax=basic4gl]Config Timer1 = Timer , Prescale = 8 , Compare A = Disconnect , Clear Timer = 1 [/syntax]
Najprostsze rozwiązanie - w przerwaniu od czujki uruchom sprzętowy timer. Przerwanie od timera powoduje włączenie alarmu. Jeśli użytkownik wyłączy system przyciskiem, to w procedurze przerwania przycisku wyłączasz timer. Żeby wszystko działało jak trzeba, musisz zezwolić na zagnieżdżone przerwania (czyli żeby ISR od timera mógł się wykonać w momencie,...
Program można zrobić za pomocą wait lub delay itp. Skoro mamy załączyć lub wyłączyć to i tak nie ma się co bić o marne 5s. Przed pętlą główną po 5 s oczekiwania procka sprawdzasz stan przycisku. Jeśli wciśnięty to na odpowiedniej końcówce wystawiasz odpowiedni sygnał do włączenia i podtrzymania zasilania. Jeśli nie to każesz prockowi wyłączyć zasilanie....
Witam, Mam pewien problemik chciałbym zrobić żeby po naciśnięciu dwóch przycisków urządzenie się włączyło i wyłączało, po włączeniu te przyciski mają służyć jako użytkowe. zadanie jest o tyle utrudnione, że projekt mam już wykonany i jest zasilany bateryjnie przyciski mam podłączone pod piny PC0 i PC1 . Ma ktoś pomysł jak to zrobić czy jest to wg realne...
Witam, Chciałbym zaprogramował Atmega8-Pu tak aby gdy nacisnę micro switch lub włączę przełącznik dioda led zaświeciła się na kilka sekund np. 10 sekund i zgasła. A jak puszcze lub wyłączę przełącznik to żeby znów się zapaliła na kilka sekund. Jak to napisać? Dziękuje wszystkim jakąkolwiek pomoc :) Pzdr
Aktualnie brak w nim rezystora 10k podciągnietego do pinu RESET oraz +5V ? Czy brak owego opornika skutkuje wyłącznie resetem czy wszelakimi dziwacznymi zachowaniami ? Tak to podstawa tego typu objawów. Dodaj jakikolwiek inny rezystor większy od 4,7k. Możesz także na razie ten pin połączyć z VCC przewodem, tylko przed ponownym programowaniem usuń ten...
a czy dzieje się tak zawsze czy tylko czasami? musisz sprecyzować ... czy pojawiają się stałe wartości czy za każdym razem inne ...
Czyli przyjmujemy, że nie ma problemu z drganiami styków i innymi zakłóceniami. Jeżeli dobrze zrozumiałem zasadę działania czujników oraz Twój cel i chcesz wykorzystać obydwa INTx, to zrobiłbym tak: 1. pod INT0 podpinasz sygnał decydujący o starcie i końcu zliczania 2. pod INT1 podpinasz sygnał, który ma być zliczany Pseudo kod: 1. inicjacja: 1.1 INT0...
Można tak jak kolega pisał wyłączać timer... Ale lepiej by chyba było w samej funkcji obsługi LCD w najbardziej newralgicznym punkcie (sama transmisja) wyłączać globalnie przerwania "cli();" i po wysłaniu danych włączać z powrotem "sei();'
Zapomniałeś chyba że program pracuje w pętli. Zrobiłem Ci wizualizację :-P http://obrazki.elektroda.pl/3515008400_1... Ba, nawet sam sobie napisałeś że włączasz diodę :P Tutaj: -jeśli przycisk włączony to skocz do 'uśpienie' ( i pomija resztę czynności?) -jeśli nie to włącz jedną diodę potem drugą -( i znowu) jeśli przycisk włączony.......
włącz wyłącz atmega8 timer włącz wyłącz włącz wyłącz alarm
manual operation instrukcja challenger thermaltake hamburg
hydrostat zmywarki samsung saunier duval wymiana pompy
Antygrawitacja: Teoria i Zastosowania w Elektronice Brak migacza i światła dziennego w prawej lampie BMW F10 po wymianie