INT0 jest na pinie PD0, a ten definitywnie ustawiłeś jako wyjście, więc nie może działać.
z tego co widziałem to nie konfigurujesz odpowiednich rejestrów odpowiedzialnych za zewnętrzna przerwania. zobacz do noty katalogowej musisz skonfigurować rejestry: External Interrupt Control Register A – EICRA External Interrupt Control Register B – EICRB External Interrupt Mask Register – EIMSK External Interrupt Flag Register –...
ATmega128 ma "tylko" 8 zewnętrznych przerwań i nie ma tam przerwania PCICR. Przerwania możesz deklarować poprzez nazwy rejestrów: ON INTX lub jak dla M168: ON PCIEX i dalej korzystać z normalnej składni Bascoma.
Dzięki za instrukcję. Zrozumiałem, że chce dostać przerwanie z timera za zrównanie wartości rejestru timera 0x07 z rejestrem 0x0f 'timer alarm'. W Control Status Register 0x00 ustawiam 0d00000100 czyli clock mode i bit alarm enable. W Alarm Control Register 0x08 ustawiam 0d11000 010 co powinno mi dać funkcję zliczania sekund i zezwolenie na przerwanie...
Tylko czy ten bit AS0 w ASSR jest potrzebny do przerwań zewnętrznych?? Bo mam go ustawionego na zero. A przerwanie wywoluje PCF8574 (expander 8bit na I2C) i utrzymuje ten stan tak dlugo, aż nie odczytam z niego jego stanu. -- Przemek
Oj przeczuwam kłopoty, piszesz że przesiadasz się z małego AtMega na AtMega128, a tam niektóe rejestry mają zmienione nazwy lub wręcz niektóre bity są w innych/nowych rejestrach. dla AtMega8..32 działa coś takiego #define GLOBAL_INT_ENA()asm("se... #define GLOBAL_INT_DIS()asm("cl... #define INT0_ENA()...
Widocznie nie dokładnie.Zwracam honor. Chyba za bardzo przykułem uwagę na połączony intx z portx.Więc może to właśnie sprawia problem że powinien być jasno ustawiony jako wejście albo może pomoże ustawienie portu jako pd6 jako wejście przed włączeniem zewnętrznego przerwania.
Umieść kod programu, to może ktoś pomoże. Ja akurat z Bascomem nie miałem doczynienia. Pozdrawiam Adam P.S. Na tym pinie masz również przerwanie zewnętrzne INT5, może to jest przyczyna.
Odkryłem, że nie wiedzieć czemu wraz z przerwaniami TIMERa 0 wywoływane są przerwania INT0 oraz INT1 pomimo, że nic się na nich fizycznie nie dzieje. Nie mam pojęcia czemu się tak dzieje... może jakieś pomysły? z góry dzięki pozdrawiam herszt
#include <avr/io.h> Już jam jest. Problem w tym, że ATmega128 nie ma rejestru GICR... Jest za to MCUCR.
Możesz wykorzystać odpytywania sprawdzasz wartość bitu w rejestrze pinA , niektóre mikrokontrolery posiadają port posiadający dedykowane przerwanie (pcinit) po odpowiedniej konfiguracji zmiana na tym porcie powoduje wywołanie przerwania.
Witam, czy ktoś może podpowiedzieć czy sygnał zewnętrznego przerwania musi być utrzymany w stanie ( np. niskim) do czasu wywołania procedury przerwania czy może zostać zwolniony. przykład dotyczy ATmega128 (kwarc 14MHz) gdzie uruchomione są dwa przerwania od licznika TIMER1 oraz zewnętrzne przerwanie INT1(aktywne zbocze opadające). Sygnał przerwania...
Witam, szukam w nocie ATmega128 informacji jaki jest gwarantowany poziom napięcia przy jakim zostanie wyzwolone zewnętrzne przerwanie ( dla opadajacego i narastającego napięcia) na wejsciach INTxx. Może ktoś znalazł coś takiego ??
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...
Przerwania są zarezerwowane na zjawiska zewnętrzne zachodzące w nieprzewidywalnym czasie.... No raczej nie masz racji . Wewnętrzny licznik też może wystawić przerwanie i to w ściśle przewidywalnym czasie .
Oczywiście działa. Dzięki za pomoc. Tą zasadę znam (albo mi się tak wydaję) ze sterowania klawiszami podpiętymi do portu uC. Nie jestem w sensowny sposób wytłumaczyć dlaczego byłem pewny, że w momencie inicjalizacji zewnętrznych przerwań charakterystyka danego wejścia się zmienia na wejściowe??
Sterujesz obrotami przez PWM, czy prawdziwe "średnie napięcie" ? Rozumiem, że ten czujnik halla jest zewnętrzny. Pokaż jak możesz kawałek schematu.
Fuse programuje w AVRStudio przez JTaga. Zaznaczone OCDEN, JTAGEN, SPIEN, EESAVE, CKPOT i ustawiny rezonator na zewnętrzny 64ms +16k, boot na 4096. Wszystki lock odblokowane. Wartości to: EXTENDED: 0xFF HIGH: 0x01 LOW 0XFF
Witam! Musze w dość krótkim czasie (około 1.5 miesiąca) nauczyć się programowania procesora ATmega128. W związku z tym pytanie: gdzie można znalezć przykładowe programy pod ten procesor np. inicjalizacja USART i transmisja w trybie asynchronicznym, obsługa przerwań zewnętrznych, obsługa magistrali I2C itd. Najlepiej żeby były w asemblerze i C :-D Dzieki....
Nikt na razie nie ma żadnego pomysłu..? A może za pomocą Timera0 lub Timera2, a może wejścia przerwań zewnętrznych jakoś by rozwiązać ten temat ? Pomiar nie musi być jakoś super dokładny (choć wiadomo, im dokładnej tym lepiej).
DAC0808 - nie ma kompletnie żadnej filozofii. POdłączasz go do jakiegokolwiek ośmiobitowego portu, ustawiasz kierunek (DDRx = 0xff;) i zapiszujesz wartość (PORTx = wartosc;). PCF8591 - http://elportal.pl/index.php?module=Cont... część szósta, pobierz listingi. ADC0820 - podobnie jak DAC0808 podłączasz do portu ośmiobitowego....
A można tak zrobić że sygnał z impulsami podawać na wejście zegarowe Timera i taktować go tymi impulsami? Chce tak zastosować, gdyż musze mieć w swoim układzie trzy takie pomiary prędkości obrotowej, a w ATmega128 dostępne są dwa wejścia zliczające impulsy zewnętrzne. Nie chce korzystać z nóżki zewnętrznego przerwania żeby nie obciążać strasznie procesora.
Atmega 162 potrzebna mi jest do zbierania danych z 4 rsów, dwóch sprzętowych UARTy i dwóch programowych, działające na przerwaniach zewnętrznych i timerach. Bardzo byłbym wdzięczny za kawałek kodu z funkcjami obslugi SPI dla Nut/OS, jeśli oczywiście ktoś miał z tym do czynienia.
Jakiego procka uzywasz? Bo ten rejestr odnosi sie do np. do 8515, natomiast ATmega128 ma juz inny rejestr do ustawiania zewnetrznych przerwan, sa to rejestry EICRA i EICRB. Moze konfigurujesz rejestr nieodpowiedni do danego procka?
cały problem w tym że poza ładowaniem programów potrzebuje jeszcze troche innej funkcjonalności (wielowątkowość, obsługa urządzeń zewnętrznych i inne), którą chciałbym umieścić w sekcji aplikacyjnej. Tylko nie potrafie tak rozdzielić kodu żeby wektory przerwań były pod 0xf000 a część kodu wczesniej.
Doszedłem do wniosku, że jednak chyba dołożę troche sprzętu. Dodam dwie Atmega162 bo są dość tanie i mają 2 UARTy sprzętowe i dwa przerwania zewnętrzne co daje jeszcze dwa programowe. (w sumie 8xRS232) Dzięki temu nie będę ingerował w OS na ATmega128. (chyba że to nie jest za dobry pomysł) Dochodzi teraz tylko sprawa przetransportowania danych z ATmega162...
Owszem, ale widziałem na elektrodzie 2 rozwiązania (np http://www.elektroda.pl/rtvforum/viewtop... ), gdzie RC5 jest poprawnie odbierane w przerwaniu zewnętrznym INT0 lub INT1. Być może pomijam jakiś banalny szczegół, ale nie wiem w którym miejscu lub o czym zapomniałem. Mam pomysł...chwila...
Miałem ten zestaw od kamami i wszystko działa, nalzezy pamietac o: 1 ustawieniu jumpera na plytce CPU do pracy z ethernutem 2. wgraniu odpowiedniego pliku konfiguracyjnego z odpowiednio w nim skonfigurowanym obszarze pamieci zewnetrznej 3 Pewnych problemach z LCD . LCD trzeba skonfigurowac w pliku konfiguracyjnym jako praca bez bitu RW dla szyny 4 bitowej...
To jest pisane pod os`em? Tak dokładnie pod OSem - Ethernut. Ogólnie same problemy z nim, bo albo działają przerwania zewnętrzne (tak jak opisałem - czyli nie za dobrze) albo działają inne komponenty systemu, a momencie pojawienia się przerwania wszystko się wiesza... No ale póki co będę pracował nad wersją tylko z przerwaniami a resztę później dorzucę...
michalko12 , niedokładnie czytasz kod. W ISR stała użyta jako wektor to /* External Interrupt Request 6 */ #define INT6_vect _VECTOR(7) #define SIG_INTERRUPT6 _VECTOR(7) motorolae365ok , rozumiem, że masz zewnętrzny pull-up na pinie, skoro postanowiłeś ustawić port w Hi-Z. Jak wygląda funkcja użyta w przerwaniu?
Jednak nadal rozwiązania programowe korzystające z przerwania zewnętrznego wymagają specjalnego pinu (INT0 lub INT1). Jedynie zastosowanie liczników rzeczywiście nie będzie wymagało specjalnych pinów (o tym nie pomyślałem :oops: ) jednak takie rozwiązanie będzie niemal kopią rzeczywistego USARTa (podejrzewam, że projektant pogorszy parametry dotyczące...
Witam serdecznie, W bascomie, w chwili wystąpienia zewnętrznego przerwania na jednym z pinów obsługujących takie zdarzenia, program skacze do podprogramu obsługującego przerwanie, po czym wraca do miejsca w którym aktualnie wykonywał się program w chwili jego wystąpienia. Czytałem że można przestawić (wykasować) bity odpowiadające za zapamiętanie w...
Można slavem emulować pamięć dla mastera i zapis/odczyt wywoływać zewnętrznymi liniami przerwań, ale lepszym pomysłem byłby wspólny bufor na układzie 62xxx (SRAM) i wymiana paczek za pośrednictwem tego bufora wraz z tym, aby każdy procesor sprawdzał "zajętość" bufora, czyli, czy drugi procek akurat teraz z niego nie korzysta.
Po dodaniu pustej instrukcji procesor wiesza się w momencie wystąpienia przerwania... Może inny przykład: #include <avr/io.h> #include <avr/interrupt.h> volatile int a,b; SIGNAL(SIG_OVERFLOW2) { TCNT2 = 0xCD; a++; if(a == 148) //milisekunda { a = 0; b++; } if(b == 1000) //sekunda { b = 0; PORTD...
Tak u mnie działa, i tak po dłuższym zastanowieniu doszedłem do wniosku, że jak by się postarał, to chyba by się nawet bez diody obeszło. Rezystncja mojego panela to: - dłuższy bok ok 800ohm - krótszy bok ok 300ohm Podajemy pullup na dłuższy bok (X), masę na krótszy (Y). Po naciśnięciu w dowolnym punkcie (wartość wypadkowa rezystancji dzielnika się...
Wyjęte z dokumentacji od ATmega128. Niestety nie mam proca pod ręką żeby sprawdzić. When the external interrupt is enabled and is configured as level triggered, the interrupt will trigger as long as the pin is held low. Czy to oznacza, że tak skonfigurowane przerwanie (przerwanie zewnętrzne wyzwalane stanem niskim) będzie: A) wywoływane ciągle (więcej...
Piszesz, że masz proc ATMEGA128. W standardowych plikach nagłówkowych dla tego układu nie ma zadeklarowanego rejestru GICR dlatego dostajesz taki błąd. Prawdopodobnie używasz kodu pod jakąś młodszą atmegę. W 128 do maskowania zewnętrznych przerwań użyj rejestru EIMSK. Masz jeszcze inny błąd w kodzie. Kompilator nic nie mówi ponieważ sygnatury są ok....
Witam. Mam problemik i bardzo prosze o pomoc. Robie projekt, w którym za pomocą USARTA chce zapisywać i oczytywać rejestry układu Wiznet (traktowany jako pamięć zewnętrzna). Problem polega na tym, że interfejs pamięci zewnętrznej działa ok do momentu, kiedy układ nie obsługuje przerwania. Po powrocie z przerwania pamięć zewnętrzna się nie chce zapisywać....
Witam, jestem początkujący, chciałem zaimplementować w swoim układzie (dodatkowo) funkcję pokazującą czas, czyli generalnie zegarek. Układ będzie oparty na procesorze ATmega*. Poczytałem trochę na forum o kwarcach i chciałem uporządkować wiadomości. Jeżeli chcę by nie było dysproporcji między aktualnym czasem a wskazaniem układu, to rozumiem, że potrzebuję...
Dzięki szymtro, ale sprawdziłem i nadal nic. Jak wygląda sprawa z przerwaniem? Czy slave reaguje w jakiś sposób na komendę START? Jaki jest w tym przypadku kod w TWSR? Czy konfiguracja portu ma znaczenie, kierunek, pull-up ? Jaką częstotliwość przyjąć za bezpieczną? Może istnieją jakieś tajemne konfiguracje fuse bitów które trzeba ustawić. Naświetlę...
Witam serdecznie. Chcę dokonać pomiaru zewnętrznego sygnału pwm. Czyli muszę zmierzyć wypełnienie stanu wysokiego i niskiego. Znalazłem na internecie opis do atmegi128 ale jakoś mało tam piszą na temat trybu przechwytywania. Wymyśliłem sobie iż będę wykrywał stan niski i wysoki poprzez wykorzystanie funkcji przechwytywania licznika T1. W przerwaniu...
Jest to wersja procesora ATMega128, tylko z pełnym interfejsem CAN Nie różni się mocno wyprowadzeniami, ani pozostałymi parametrami od mega128. Co nowy procek stracił: - nie ma możliwości podłączenia zewnętrznego RC pod Xtal1 - mniej możliwości podziału częstotliwości zegara - usunięto tryb Extended Standby - nie ma już trybu ATMega103 CM Co zyskał:...
Weź pod uwagę, że przy 100 kHz i taktowaniu ATMega128 równym 16 MHz, na jeden okres sygnałju badanego przypada zaledwie 160 taktów zegara. A więc rozdzielczość z jaką będziesz mierzył sygnał jest mocno ograniczona. Oczywiście jeśli interesuje cię pomiar szerokości impulsów. Druga sprawa - w jaki sposób planujecie wysyłać po RS te dane? Bo jeśli masz...
Wejście w przerwanie trwa co najmniej 15 taktów, czyli dla 48 MHz będzie to 0,3125 us (zapewne dłużej, bo FLASH będzie wymagał pewnie 1WS). I nagle się okaże, że mamy ten sam problem co w AVR - zaledwie kilka instrukcji do dyspozycji, zanim nie przekroczymy granicy 1 us. No dobra, niech nawet będzie 0.4us. Zostaje 0.6us, a więc jakieś 28 cykli - to...
Witam. Mam programator USB ICE avr jtag, podłączyłem go do płytki z z samym mikrokontrolerem ATmega128 (nic innego nie było przylutowane) i chciałem przetestować programowanie układu w AVR Studio. Programator dobrze odczytywał procesor, wgrywał poprawnie kod programu ale z poniższymi ostrzeżeniami: JTAG ICE: Warning: Reading the program counter,...
Zgadzam się całkowicie z przedmówcą - kompilator puszczony samopas potrafi pójść na manowce np. brak org przesuwającego kod w procesorze C51 powodował dziwne rakcje na przerwania - szytwne przypisanie adresów obsługi przerwań. Trzeba jednak się na coś zdecydować. Albo tworzymy kod na konkretną platformę i wtedy wskazane są sztywne adresy albo pozwalamy...
Cały problem polega na tym, że nie potrafię zrozumieć jak odebrać sygnał analogowy, zapisując go nawet w sample rate dla lepszej interpretacji mikrokontrolera. Załóżmy 8kHz próbkowania (minimum dla jakości telefonicznej). Przetwornik masz 10bit (co jest trochę mało jak na standard telefoniczny). Wskazane by było zastosować kompresję logarytmiczną próbek...
Generalnie zwierasz drugi koniec do masy, a do przewodu wpuszczasz impuls. I liczysz czas od momentu wpuszczenia. Jeśli nie wróci, to znaczy, że połączenie jest OK. Jeśli wróci, to znaczy, że przewód jest rozłączony. Znając prędkość rozchodzenia się impulsu w przewodzie i czas, po którym impuls wrócił możesz wyznaczyć odległość miejsca przerwania przewodu...
Zewnętrzne dodatkowe układy raczej nie wchodzą w grę (to jest ostateczność). Wtedy można by zastosować zwykły multiplekser 8bit podłączony do któregoś wyjścia PWM a na wyjściu zastosować takie filtry z wtórnikiem napięciowym, które przez jakiś czas będą utrzymywać stałe, zadane napięcie. Na tą chwilę to chyba rzeczywiście byłoby najlepiej zastosować...
Witam :arrow: Samuraj Myślałem i o takim rozwiązaniu, ale wizualnie nie jest zbyt ładne a do tego zegar będzie też termometrem, barometrem i wilgotnościomierzem i przecinek w tym miejscu będzie potrzebny. Dodatkowo, obrócenie wyświetlacza w środku płytki skomplikowało by bardziej projektowanie płytki PCB, która i tak jest dość złożona. :arrow: Dr_DEAD...
Witam Propramuje w WinAvr. Chciałbym mierzyć częstotliwość impulsów podawanych na nóżke T1 mikroprocesora a następnie wynik pomiau wyśwwietlać na LCD. W tym celu napisalem następujący program KOD: #include <avr/io.h> #include <avr/interrupt.h> #include "lcd.h" #define F_CPU 1000000UL //czestotliwosc pracy procesora int main(void)...
Nie wiem tylko czy istnieje jakiś sposób dostania się do rejestru przesuwnego, bo nie znalazłem takiego sposobu w dokumentacji procesora (mogłem coś przeoczyć). Jeżeli jednak dobrze zrozumiałem zasadę działania tego interfejsu to niezależnie czy wysyłamy czy odbieramy w trybie master musimy coś (bajt) wpisać do rejestru SPDR i wówczas jednocześnie w...
http://obrazki.elektroda.pl/5924959500_1... Witam ponownie! Kilka dni temu chwaliłem się projektem "PALM v1.0 BETA Atmega128", a dziś chciałbym przedstawić komputerek do motoru lub roweru jaki zrealizowałem już jakiś czas temu na zamówienie. Urządzenie miało zastąpić oryginalne psujne, mechaniczne zegary. Funkcje i założenia: *Wyświetlanie...
Witam. Zbudowałem sobie klawiaturę matrycową 4x4 do mikrokontrolera Atmega 128. Klawiatura jest podłączona do 8 wyjść portu D. Obsługę klawiatury chce realizować poprzez przerwania wykorzystując przerwania zewnętrzne INT0...INT3 Poniżej przedstawiam kody: DEFINICJE: #define KLAD DDRD // PORT LINII STERUJACYCH #define KLAP PORTD //#define WE1 0 // LINIA...
http://obrazki.elektroda.pl/4780964300_1... Witam Chciałem przedstawić moją konstrukcję odtwarzacza plików SID. Jest to moje protopywowe urządzenie zbudowane na dwóch płytkach uniwersalnych.Wszystkie połączenia są wykonane kabelkami.Sercem układu jest ATmega32 który jest prostym emulatorem procesora z C64 6502.Oryginalny układ SID'a...
http://obrazki.elektroda.pl/9633413500_1... Witam Chciałbym przedstawić swój projekt nad, którym ostatnio pracowałem. Cała idea zrodziła się z potrzeby posiadania termometru. Potem doszły to tego inne pomysły, aby mierzyć takie wartości jak wilgotność i ciśnienie atmosferyczne. Ostatecznie powstał kombajn, który zapewnia sporą funkcjonalność....
Nic dziwnego, zmieniasz taktowanie procesora, zmieniasz także baudrate na UART. Dla zewnętrznego kwarcu CKOPT=1, CKSEL=111X, 1 znaczy niezaprogramowany, X - dowolna wartość.
Witam, nie miałem za bardzo czasu zajrzeć na forum przez ostatnie parę dni :) - buzzer -> próbowałem już go odpalić z procka, jest OK. Model to: http://www.tme.eu/pl/details/bmt-1203ux/... - sygnały ze złącz RJ45 wyprowadzam do dwóch czujników przez 2m kable UTP. Jeden czujnik to SHT11 (czujnik wilgotności...
Witam. Po przerwie wracam do tematu gdyż nadal nie mogę poradzić sobie z obsługą karty Compact Flash za pomocą mikrokonrolera. Sprawa wygląda w ten sposób że wykonałem układ do obsługi karty CF jak na poniższym schemacie. Poniższy schemat jest zaczerpnięty z Elektroniki Praktycznej z rocznika 2/2004 http://obrazki.elektroda.net/39_12252239...
Mam taki problem że gdy podpięty jest DS18B20 to na wyświetlaczu pokazują się jakieś śmieci, wszytko działa bez problemu. Gdy czujnik zostanie odpięty nie ma problemu z tymi śmieciami. Podejrzewam że przyczyną tego może być funkcja FUSING, może istnieje sposób na ominięcie tej funkcji. Kody: Temperatura odczytywana w przerwaniu zewnętrznym co 1s. http://obrazki.elektroda.pl/4835761200_1...
A oto działający kod dla bufora 128 bajtów (można zrobic mniejszy, 64 dziala ale tylko przy Clockrate = 4 , Spsr.0 = 1 i samplu do 16kHz) zależny od prędkości z jaką odczytujemy dane po Spi z karty, im wolniej tym bufor musi byc wiekszy, zależy też od częstotliwości próbkowania pliku dźwiękowego, im szybsze tym bufor większy. Wzorowałem sie na przykładzie...
Witam wszystkich. Chciałem przedstawić Wam wreszcie konstrukcję jaką broniłem na egzaminie dyplomowym o temacie "wzmacniacz akustyczny o parametrach sterowanych cyfrowo". Pracę wykonywałem razem z Kolegą. ZAŁOŻENIA. Wzmacniacz miał grać :D to po pierwsze hehe-udało sie. Wyposażenie :) -Moc min 80W/kanał przy 4 om (wyciśnieto 100W :) ) -Przedwzmacniacz...
1. Włączasz przerwanie przed skonfigurowaniem procedury obsługi przerwania. 2. Całkowicie niepotrzebnie wyłączasz i włączasz przerwanie w obsłudze przerwania. 3. Nie zauważyłem, żebyś włączył podciąganie linii, po której jest zgłaszana przerwanie. Czy masz tam zewnętrzny rezystor podciągający? Jeśli nie - to to jest źródło problemu.
gdzieś wyczytałem, że dobrze jest wyłączyć przerwania na czas odczytu czasu, zwłaszcza, że dodatkowo w przerwaniu zewnętrznym INT1 mam obsługę klawiatury PCF8574
Jeżeli chcesz korzystać z zewnętrznego rezonatora kwarcowego to musisz pobawić się fusebitami. Trzeba tylko uważać z fusebitami.
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...
Ustawiam w procedurze obsługi przerwania naprzemiennie wyzwalanie zboczem opadajacym i narastajacym Po co skoro można ustawić przerwanie od obu zboczy? na temat przerwań zewnętrznych w procesorze ATmega328 mało piszą. Dużo więcej konfiguracji jest w ATmega32 Akurat przerwanie INT0, 1, są w obu uC obsługiwane tak samo. Poniższe [syntax=c] IFR = _BV(INTF0);...
Po przeczytaniu o "prawdziwych" urządzeniach zacząłem się zastanawiać czy to co dotychczas udało mi się napisać na uC to było w prawdziwych urządzeniach czy tylko takich na niby. Ja stosowałem zazwyczaj metodę polegającą na sprawdzaniu stanu na pinie co pewien okres czasu( przerwanie od licznika) i gdy ten przestał się zmieniać uznawałem, że guzik został...
Triangle Deluxe - Zaawansowany system oświetlenia http://obrazki.elektroda.net/26_11981998... Przedstawiam mój kolejny bardzo długo zresztą wyczekiwany projekt. Jest to jak dotąd największe z moich przedsięwzięć wykonane zupełnie samodzielnie od początku do końca. Jest też najdroższe gdyż z grubsza licząc kosztowało ponad 1000zł. Wstęp. Było...
[syntax=c] TCNT1 =34286; // ustawienie wartosci poczatkowej timera //na pewno nie |=, ale w tym miejscu = Chcesz przecież załadować dokładnie tę wartość, a nie dopisać bity do rejestru. [/syntax] Ponadto nie stosujesz tu przerwań - po prostu odpalasz licznik i sprawdzasz w pętli jego wartość. Tak więc po pierwsze musisz sobie zrobić przerwanie i jego...
Hucul masz świętą rację. 3000zł to nie jest wygurowana cena, tyle że założę się, że filantropem nie jesteś i nie zrobiłeś tego po kosztach tylko coś jeszcze zarobiłeś. A tutaj koledzy nic nie zarobili a wydali sporo, że już nie wpomnę o tym, że metalową ramę już mieli, której koszt wykonania byłby spory. Jak na mój gust to koszta są o ~800zł za wysokie....
Przecież pisze to wyżej:) Ma być CTC, i czy to ważne dlaczego? Ma być użyty dlatego, że Timer 1 to PWM, Timer 3 liczy czas między przerwaniami zewnętrznymi i wpisuje ten czas do wartości TOP Timera 2. Ale timer 2 jest 8 bitowy, wiec ucieka mi pewna wartość bo Timer3 jest 16bit. Timer4 jest również 16bit wiec powinno grac.. Teraz działa to tak, że wartość...
Piottr242 dokładnie, co więcej oprócz kolejnego zapalania mają się dodatkowo płynnie rozjaśniać i przygaszać (PWM) PiotrPitucha rozumiem, że chodzi Ci o podłączenie kontaktronów pod przerwania i zamiast w pętli sprawdzać ich stan to podpiąć się pod obsługę przerwania Co do MOSFETów to zmienię na IRLML6244TRPBF (Vds 20V, pojemność bramki 700pF, max prąd...
Tak i nie. Po pierwsze musisz dostosować poziomy napięć. Jak podłączysz bezpośrednio 12V pod pin proca to on się spali. Podepnij przez dzielnik napięcia. 2. Jaki to jest procesor? Firma i model 3. Jeżeli chcesz mieć bardzo szybką reakcję to takie coś realizuje się na przerwaniach (w tym przypadku na przerwaniu zewnętrznym na pinie 13, jeżli takie jest...
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...
Witam serdecznie! Przejdę od razu do sedna. Napisałem program do megi328, z przerwaniem INT1, odpowiednio poustawiałem rejestry, uruchomiłem globalną obsługę przerwań sei(), i niestety atmega po podłączeniu zasilania od razu wykonuje przerwanie, mimo, iż switch nie został wciśnięty, wiem, że tak się dzieje, ponieważ w przerwaniu dla przykładu zapalam...
Przepraszam że nie potrafię tego wyjaśnić ale to nie ja pisałem ten program. Mam taki kod: http://obrazki.elektroda.pl/4548415200_1...
Witam Po przesiadce na C umęczyłem taki program, ale dalej coś nie teges? Przerwanie wykonuje się 128 razy ale tylko Y się zwiększa. Jeżeli te sprawdzenie IF od stanu 0 na pinB.3 jest złe to i tak przerwanie powinno się wykonać 256 razy. Bo mam na tym porcie 128 impulsów "0" a przerwanie powinno się wykonać na zboczu opadającym i narastającym. Co jeszcze...
Ja mam notę PDF do tego procka z 2004 roku i jest w niej wszystko OK Najchętniej otukł bym komuś głowę, z tego Atmela. :P Zwykle najnowsza wersja czegoś, nie psuje tego, co już było poprawne w wersji poprzedniej. ....grrrr.... oczywiście rozumiem, że te dwie linie nie były zakomentowane i to tylko omyłkowo wkleiłeś taki kod - bo wtedy na prawdę by...
zmieniłem kod w następujący sposób #define F_CPU 1000000UL // 1 MHz // prędkość transmisji 9600 #define UART_BAUD_RATE 9600 #include <stdlib.h> #include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> #include <avr/pgmspace.h> #include <util/delay.h> #include "uart.h" // częstotliwość CPU w...
Programowo nie chce za bardzo bo raz że trzeba wykorzystać opóźnienia Wcale nie trzeba (; Można próbkować stan przycisków przy użyciu timera (sprzętowego lub programowego). Dokładnie, i nie dość, że nie trzeba wykorzystywać nawet najmniejszego opóźnienia, to jeszcze nie trzeba tracić wejścia przerwania INTx, które może się przydać do ważniejszych rzeczy....
Maksymalna prędkość po to, żeby był jak najkrótszy czas reakcji między wyzwoleniem funkcji przyciskiem a załączeniem przekaźnika. Gdybyś sterował tranzystorem czy triakiem itp miały by to może jakiś sens. Przekaźnik przełącza się ok 20..30ms. 5ms to już bardzo szybki przekaźnik. między wyzwoleniem funkcji przyciskiem Jeśli odczytywany byłby stan wejścia...
Na wstępie przepraszam, że nie zamieszczam pełnego schematu. Opiszę problem. Mam prosty układ na Amega168 gdzie na wejścia przerwań INT0 i INT1 podawane są sygnały z czujników. Układ zasilany jest z baterii 6V, napięciami 3.3V (stabilizator) oraz 12V (przetwornica). Zasilanie i układy zewnętrzne ATmega pokazuję w dużym uproszczeniu. Czujniki wymagają...
1. W tym wypadku komunikat zostanie wysyłany - kod TWI nie blokuje przecież przerwań ;) 2. No to niestety świadczy tylko o tym, ze coś zrobiłeś źle w uruchomieniu biblioteki. Moje kody nie są wrażliwe na odpięcie/podpięcie uart'a, więc nie może być prawdziwym, aby wtedy procesor zawieszał się. Pokaż może cały program lub projekt, zamiast mówić, ze coś...
Witam kolegów, Jestem w trakcie budowy układu sterującego, do którego chcę podłączyć czujniki indukcyjne NO/NC. Czujniki są zasilane z 12V DC (w normalnym stanie przewodzenia płynie przez nie ok. 7,5mA, natomiast po przyłożeniu metalu obwód się zamyka i pobór prądu wynosi jedynie 0,4 mA). Chciałbym czujnik podłączyć do wejścia zewnętrznych przerwań...
rpal - kontekst z SDRAM dotyczył ATXMega, nie ATMega8. tomek_programista - tak, XMega obsługuje SDRAMy, przy czym tylko do 16MB. Co jak na 8-bitowy procesorek to też niezły overkill. Poszukaj w necie, widziałem projekt gry video na ATMega, ze schematami i wszystkim. Co do mocy obliczneiowej - jeśli cały obraz będziesz generował programowo to istotnie...
kod ( właściwie część dotycząca PCF8574AP ) Piny P.0 - P.4 do switchy, podciągnięte do VCC przez rezystor 10 K, wyjście INT układu PCF8574 podciągnięte przez rezystor 10k do VCC Poprzedni układ był na Atmega328, ten jest na Atmega1284P Przy uruchomieniu jest tak, że miga pierwsza opcja menu - ustawienie minut, na przemian z tym co powinno być wyświetlane...
Bascom - wersja 1.11.95 Kod, no jest tego sporo: - zegar PCF8563 - Zapis na SD - dwa czujniki DHT11 - odczyt z PCF8574AP ( klawiatura ) - RC5 - ma być DS18B20 - ma być DCF77, ale nie doszedłem do tego momentu ( tzn testowałem na innym procesorze i działało ) Działa - zegar PCF8563 - dwa czujniki DHT11 - odczyt z PCF8574AP w przerwaniu ( klawiatura )...
Czy istnieje układ scalony łączący w sobie multiplekser i bramkę OR? Wstęp: W moim projekcie: 1) muszę zastosować wiele czujników 2) usypiam uC (ATmega328) 3) z racji takiego a nie innego uC mam ograniczoną liczbę pinów cyfrowych, więc muszę je oszczędzać (czujniki nie są jedynymi peryferiami) Gdy pojawi się stan wysoki na którymś z czujników chcę,...
Tak 16Mhz .. ale ckdiv8=1 więc 2Mhz ... na dodatek algorytmy PID zorganizowane są na zmiennych stałoprzecinkowych (chyba) wynika to z opisu konfiguracji. Jeśli chcesz to wrzucę Ci PID-a ale ze zmiennym przecinkiem .. trzeba by sprawdzić ile czasu zajmuje algorytm. ( coś mi się kołacze że na pusto (at) 18Mhz Atmega168 robił coś ok 100Khz ale nie jestem...
układ, który chce zrobić ma być wpięty w miejsce układu , który działał w logice 5V , układ posiada 8 bitową szynę danych i 8 bitową szynę adresową częstotliwość tego układu jest mała 2 MHz, chciałem podpiąć atmela w miejsce układu docelowego a układ docelowy podpiąć na innych portach tak aby mieć kontrole nad tym co dostaje układ docelowy i w locie...
Musiałem go wyeksportować i przez avrdude wgrać do atmegi No i prawidłowo, kompilujesz do HEX i wgrywasz zewnętrznym programatorem. Ew. masz opcję upload using programmer (sketch), a programator określasz w menu tools opcja programmer. Tam robiłem, a próbowałem robić tak jak napisałeś to nie wykrywało mi programatora. Ale i tak w sumie mi nie działa...
Witam, drogich forumowiczów. Mam problem z komunikacją kilku urządzeń w sieci rs485. A tak prawdę mówiąc to z komunikacją pomiedzy dwoma, jednym "master" i jednym "slave". Normalnie staram się zadawać pytania w ostateczności na forum Elektroda, ale po prawie 3 tygodniach siedzenia przy problemie, przeglądaniu masy poradników i postów związanych z rs485...
Witam. Przede wszystkim najpierw chciałbym pogratulować autorowi projektu - jakość wykonania jest godna pozazdroszczenia - i podziękować za udostępnienie schematu i kodu. Zadeklarowałem, może trochę naiwnie, zrobienie zegara działającego na tej zasadzie jako projekt na jeden z przedmiotów na uczelni. Wszystko zajęło bardzo dużo jakże cennego przed sesją...
Nie mam cewki : d. Narazie mam : Dużo kondensatorów filtrujących zasilacz zewnętrzny 5V/2,5A Program z uśpieniem na czas pomiaru: [syntax=c]/* * main.c * * Created on: 20 gru 2014 * Author: User */ #include <avr\io.h> #include <avr\interrupt.h> #include <avr\sleep.h> #include "HD44780.h" #define LED (1<<PB0) #define ADCIN PC5...
Sporo tego ( obsługa SD, PCF8563 + menu do ustawiania daty, obsługa PCF8574 w przerwaniu INT1 )- ale nie ma problemu - zmieniła się tylko zawartość podprogramu Pomiar była taka, jak w pierwszym poście oraz wyłączyłem w wyświetlanie na LCD tych wartości wskazań z DS18B20, oczywiście dostosowałem pozycje wyświetlania do LCD 4*20 - załączniku spakowany...
Witam Mimo, że większość proponowanych tutaj rozwiązań podłączenia RFM12 do Atmegi wykorzystuje SPI programowe, ja podłączyłem tradycyjnie, przez SPI sprzętowe - mimo, że nie miałem problemów z wgrywaniem kodu do Atmegi spiętej z RFM12, to uruchomienie ich razem jest problematyczne ( każde osobno działa bez problemu ) [syntax=basic4gl] $include "Config_AVR-DOS.BAS"...
http://obrazki.elektroda.pl/5995544500_1... Cześć Wszystkim. Chciałbym zaprezentować drugą odsłonę sterownika dla silników DC (wersja 1 http://obrazki.elektroda.pl/5995544500_1... http://obrazki.elektroda.pl/3989858800_1... http://obrazki.elektroda.pl/7001925600_1... http://obrazki.elektroda.pl/4105542100_1...
https://obrazki.elektroda.pl/1826512000_... Urządzenie służy do monitorowania i rejestrowania procesu rozładowywania dowolnego źródła (np. akumulatora) o napięciu Vin do 40V, które podłącza się do złącza CON3 (Source). Maksymalny prąd rozładowywania nie powinien przekroczyć ok. 3A. Konieczne jest użycie zewnętrznego obciążenia stałoprądowego,...
https://obrazki.elektroda.pl/4148743200_... Pierwszy mikrokontroler AVR ATmega zadebiutował w 1998 roku i zrewolucjonizował rynek. Stworzony został przez firmę Atmel, która została przejęta w 2016 przez Microchip. Mikrokontrolery ATmega od początku były dość ważne dla hobbystów. Ale w ostatnich latach ich pozycja na rynku została zakwestionowana...
atmega128 przerwać przerwać zewnętrzny atmega128 przerwać bascom
bosch sterownik zmywarka skrzypi amortyzatory prąd trójfazowy natężenie
aktualizacja dekodera schrack seconet
Wymiana linki zaworu w zmywarce Siemens SF64T352EU/44 Suzuki SX4 2009 1.9 Diesel kręci, ale nie odpala