Bascom moze tego nie obslugiwac. I ile recznie mozna wpisac do rejestru wlaczenie tego przerwania, to podanie wektora przerwania pewnie bedzie juz problemem - moze edycja pliku z danymi o ukontrolerze. Przerwania zmiany stanu na PCINT przypisane sa do portów, i dodatkowo mozna zdefiniowac które piny maja byc monitorowane (nie musza byc wszystkie).
Jednym słowem pcint to nie to samo co int0 ;) A dla potomnych int 0 w m2560 pin43 i o ile się nie mylę to to zabrakło opisu że program jest napisany w Bascomie ... Popraw temat zgodnie z normami ;)
Proponuję zastanowić się czy mikrokontroler będzie tylko i wyłącznie czekał na przyciśnięcie przycisku czy robił coś jeszcze poza tym. Jeżeli tylko i wyłącznie będzie oczekiwał na przycisk to porty ustawiasz jako wejścia i sczytujesz stany. Natomiast jeżeli zajmiesz go czymś to proponuje wykorzystać przerwania. Nowsze mikrokontrolery (potomki Atmega8...
Zmodyfikowałem troche kod, teraz mierze czas pomiędzy poszczególnymi sygnałami (wyniki powinny być dokładniejsze) Prosiłbym o wskazówki co można wyżucić z przerwań by przyspieszyć ich wykonywanie? [syntax=c] //read RPM PCINT by Asica10 //-----Define variable for measure RPM----- volatile unsigned long timeLast_1 = 0; volatile unsigned long timeLast_2...
1. oczywiście że ATmega obsługuje przerwania na każdy rodzaj zbocza a także na poziom ;) (na pewno!) 2. Przerwania INT0 i INT1 to standardowe i opisane oddzielne dwa przerwania hmmm mają można tak ogólnie powiedzieć więcej opcji działania ;) Natomiast przerwania PCINTx mogą być wygenerowane przez wybrane piny danego AVRka, przeważnie to jest jakiś cały...
Tak samo jak PCINT, tyle że tracisz jedną nóżkę i masz więcej ścieżek i elementów. W sumie ja też unikam procesorów bez tego, ale nie jest to straszne jak nie ma. Z PWM bawiłbym się softwarowo, możesz wtedy dowolnie kanałów narobić ile masz wolnych nóżek ;) . Podsumujmy ile CI potrzeba: 6 wentylatorów x2 = 12 uart = 2 lcd, 4bit+r/w = 7 1w do termometrów...
I jak ciekawie się wątek rozwinął :) ... A pytanie zadawałem bo mi tak luźno przyszło do głowy robienie klawiatury na PCINT albo fototranzystora podłączenie i wykrywanie 0/1. Dopóki autor nie wróci to możemy offtopować :P .
dla pozostałych wejść masz przecież też przerwanie od dowolnej zmiany stanu na wejściach więc chyba coś można wymyślić innego niż zewnętrzna logika. Dokładnie w tym miejscu problem - w moim AtMega nie ma PCINT, więc próbuję to obejść sprzętowo. Inaczej bym się nawet nie bawił, ale dwa przerwania (INT0 i INT1) to dość niewiele dla kilku przycisków +...
Dane USART prądkosc 57600 Trochę szybko jak na AVR, jedno wejście da radę ale więcej? Wątpię? Trzeba by ustawić przerwanie PCINT na wejściu i wysterowywać odpowiednie wyjścia. Aby program był szybki, przerwanie NAKED. Operacje na GPIO nie zmieniają rejestru stanu, więc nie trzeba nic zapamiętywać na stosie. Jeśli jednak trzeba sprawdzać warunki (najlepiej,...
kolego - świat idzie do przodu, technologia jest coraz nowsza więc nie dziw się, że ktoś będzie produkował Stareńki już układ AT90S2313 skoro ATtiny2313 ma wszystko to co jego poprzednik plus kilka dodatkowych fajnych rzeczy. hmmm chyba, że ty cały czas przyjmujesz to, że jeśli wspominam tutaj, iż ATtiny ma oscylator wewnętrzny to już nie może mieć...
Jeden sygnał = jeden pin ICP. Wystarczy sobie zmieniać w przerwaniu od ICP, zbocze na jakie ma reagować to przerwanie. Ewentualnie przy większej liczbie sygnałów - przerwania INT lub PCINT.
Niestety jak używam w konfiguracji słowa PCINT4 to kompilator generuje błąd i twierdzi że to nieznane źródło przerwania. To dlatego, że w tym procesorze są tylko 3 przerwania tego typu (w innych raczej nie będzie lepiej). Piny oznaczone PCINT0...PCINT7 mogą ustawić tylko pierwszą z wspomnianych 3 flag przerwań (o numerze 0). Kolejne osiem pinów PCINT8...PCINT15...
Nad takim też myślałem ale to nie jest to. Chodzi o to, że pin wejścia będzie podpięty pod linie 5V w komputerze i jeśli będzie wykryty sygnał (to 5V) to wtedy na pinie przykładowo 13 będzie przez określony czas stan wysoki. Przez określony czas tylko. A jeśli stan tej lini 5V zmieni się na zero to wtedy znów na ten określony czas będzie stan wysoki...
Udało się, działa. Przyczyna - jak się okazało to nie up Atmega169 a Atmega169PA, do tej pory myślałem że litery na końcu up PA ,A to mało znaczące jak w Atmega8 i Atmega8A; a w przypadku Atmega169PA różnią się rozmieszczenie bitów w rejestrze EIMSK i EIFR odpowiedzialnym za przerwania na pinach PCINT. Opisuje to pdf [url=http://ww1.microchip.com/downloads/...
Cześć, mam pytanie odnośnie Timerów w uC ATmega. Potrzebuję następujących opcji: - zliczanie impulsów z dwóch enkoderów - generowanie dwóch przebiegów PWM - generowanie przerwania co kilka ms. ..............? Czy są jakieś AVR'y mające 4 timery? ........... Pozdrawiam, Bartek Wystarczy ci Atmega48/88/168 Dla 2-ch sygnałów PWM wystarczyłby 1 timer z...
[datasheet] (PCINT6/XTAL1/TOSC1) PB6 (PCINT7/XTAL2/TOSC2) PB7 [/datasheet] upssss.... doc2545 to atmega168, więc się poddaję!
Nieporozumienie w sensie dużo roboty, a do projektu który zakłada minimalizację ilości elementów i maksymalizację prostoty jest to jedno z lepszych rozwiązań, jeżeli zaś chcemy robić jakiś duży projekt to takie modułowe podejście jakie prezentujesz jest jak najbardziej na miejscu. Dlatego napisałem, że inne posiadają PCINT;) Pozdrawiam, GSM
Próbowałeś "ręcznie" napisać obsługę tych przerwań? Czasami trzeba troszkę wyręczyć bascoma. Odpowiedni wpis w rejestrach PCICR i PCMSK0 powinien załatwić sprawę ;)
Witam Forumowiczów, Mam problem z ogarnięciem tematu wywoływania przerwań. Nie jest to problem jak je wywołać ale jak je okiełznać ;-) Wygląda to tak: Jest układ na Mega644PA-AU. Po I2C współpracuje z zegarkiem PCF8583, oprócz tego linia przerwania z PCF podłączona jest do portu D6 procka. Klawiatura zrealizowana jest na przetworniku ADC (port A0) i...
Dzięki za błyskawiczną odpowiedź i za rozjaśnienie pewnych kwestii. Attiny13 nie należy do grupy/rodziny Attiny25/45/85. Tak, masz rację. Pisanie o północy może być przyczyną różnych dziwnych pomyłek. Najpierw sprecyzuj, do których interruptów referujesz i masz zamiar je wykorzystać. Czy są to INT0 i INT1, czy też chcesz użyć któreś z PCINT. W programie...
Cześć! Próbuję sobie wytłumaczyć dlaczego nie widzę poprawnych wartości pozycji silników określanych za pomocą dwóch enkoderów (silniki mogą niestety obracać się z różną-zbliżoną prędkością). Obsługa przerwania: https://obrazki.elektroda.pl/5945440500_... Straszne zakłócenia zauważyłem na jednym z oscyloskopów, gdy oglądałem przebiegi...
(at)dondu Twoje artykuły czytałem dokładnie ;-) Z kodu poniżej wycięte ustawianie portów (bonie widziałem żadnej różnicy w zużyciu prądu). Procek ustawione fusami na 8MHz wewnętrzny z podziałem przez 8 [syntax=vbnet] $crystal = 1000000 ' ustawiamy prędkość zegara $baud = 9600 ' ustawiamy prędkość transmisji $hwstack = 220 ' ustawiamy wielkość stosu...
Witam, Muszę zaimplementować obsługę obrotowego potencjometru impulsowego, dokładnie #include <avr/io.h> #include <util/delay.h> #include <stdlib.h> #include <stdio.h> #include <avr/interrupt.h> #define F_OSC 16000000 void led3(int l){ if(l){ PORTD=PORTD & 0x7F;//zapala LED3 }else{...
witam wszystkich mam problem z obsługą przerwań chodzi o to że procesor generuje przerwania z wejść PCINT8 i 9 reagując na przyciski jakie mam na tych pinach . obsługa przycisków nie jest w przerwaniach tylko w pętli głównej programu a przerwania jakie wykorzystuje to tylko timer1. jak wyłączyć wszystkie pozostałe przerwania ? kawałek kodu dotyczący...
witam, czy jest możliwość w atmega128 generować przerwanie zawsze przy zmianie pinu na przeciwny... Chodzi mi tutaj o kilka pinów generujących jedno przerwanie. W arduino jest coś takiego jak: ISR(PCINT2_vect) { } I zawsze kiedy któryś z pinów które ustawione mają dane maski generuje to przerwanie. Jak uzyskać coś takiego na amtega 128?
Albo najlepiej zastosować zupełnie inną metodykę - piny podpiąć pod przerwania zewnętrzne (PCINT, INT + diody 1n4148 itp.) i skorzystać z jednego timera generującego podstawę czasu.
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...
hmmm jeżeli chodzi o klawisze proponowałbym zrobić tak: linie z PCINTX podciągnąć rezystorem 1M do stanu wysokiego a następnie dać na przycisk który byłby zwierany do masy(linie jako wyjście) linie jako wyjscie? a nie jako wejscie? 1M to troche sporo w sumie choc duzej roznicy to nie robi to dalbym 100k powiedzmy z tym ze ten pull-up juz jest tam wewnetrznie...
Program na ArduinoMega działa bardzo dobrze, więc postanowiłem przenieść go na procesor Atmega 328p - ten sam co w większości płytek Arduino. Układ pracuje na wewnętrznym oscylatorze 8MHz, bootloader wgrany, program też. Pojawił się niestety problem, którego nie potrafię zlikwidować - przerwanie od przycisku powoduje restart procesora... Jeżeli dodam...
Tak też podejrzewałem. Mam pytanie do przykładu z rozdziału 20. "SPI- master slave". W kodzie Slave jest włączona opcja Master. Czy tak ma być? Czy przerwanie PCINT0 w Slave odnosi się do linii SS. Pytam bo nie ma informacji na jakich prockach Pan pracował, sprawdziłbym sobie w notach a nie pytał :-)
Cześć! Odświeżam trochę temat, procesor AtMega328. Poniżej zamieszczam fragment służący do usypiania procesora. Problem polega na tym, że program działa w sposób losowy. Pobór prądu czasami wynosi 60 uA, czasami 130 uA a czasami 230 uA. Pierwsza wartość jest dla mnie akceptowalna, pobór wynika z poboru prądu innych elementów niż mikrokontroler. Martwi...
No cóż widzę że może nie być łatwo, napiszę tylko że chodzi o lokalizator GPS i teraz sprawdzając z ciekawości do PE0 (RXD0/PCINT8) i PE1 (TXD0) jest podłączony moduł GSM. Napięcia już sprawdziłem i są 3,3V.
Ten pomysł z takim wykorzytaniem diod wydaje mi się bardzo mało szczęśliwy - tym bardziej, że nie będziesz miał na procku 0V tylko tyle co na spadku napięcia na diodzie a w tym momencie na wejście portu będzie podawane dla procka niższe napięcie niż jego GND ... Diody to można byłoby próbować zastosować do wybudzania procka ze stanu uśpienia którymś...
Jeżeli chcesz korzystać z zewnętrznego rezonatora kwarcowego to musisz pobawić się fusebitami. Trzeba tylko uważać z fusebitami. Jesteś pewien, że akurat w tym zastosowaniu, do którego ja używam rezonatora, jest to konieczne? Gdzieś spotkałem się z przykładem, gdzie był podłączony rezonator zewnętrzny 32,768 kHz i był używany do przerwań timera, a...
Oto zapowiadany firmware z regulacją fazową i edycją tabeli prędkości. Jeśli chodzi o główne bebechy programu to jest to dokładnie to samo co ostatnia wersja z regulacją grupową. Aha, jest tylko drobna zmiana z przywracaniem (RESET) ustawień. Teraz aby zresetować menu sterownika należy przy włączaniu trzymać klawisz START. Wcześniej były to "+" i "-",...
Witam. Mam prośbę o sprawdzenie dwóch schematów. Czujniki indukcyjne wysyłać będą max 250 imp/s Pierwszy - Atmega ma liczyć impulsy (na przerwaniach) z dwóch czujników indukcyjnych przetwarzać je i wyświetlać na lcd 20x4 oraz wyświetlać napięcie akumulatora oraz aktualny czas. https://obrazki.elektroda.pl/3842854200_... Drugi - Atmega...
Ostatnio czytałem o PCINT na Twojej stronie-muszę się temu dokładniej przyjrzeć :-)
Witam, mam problem ze stworzeniem w języku C generatora, który będzie mi zmieniał stan niski na wysoki (stan niski 10ms, stan wysoki 0.32ms) przez czały czas działania programu niezależnie od pętli głównej programu. Czy jest to wogóle możliwe? Liczę na pomoc w dojściu do rozwiązania tego zagadnienia. ATmega 168 taktowana wewnętrzym oscylatorem 8MHz....
WItam; mam dylemat, chciałem zastosować układ ATMEGA 328. Procesor ten ma dzielnik częstotliwości. Potrzebuje około 4MHz. Co lepiej zrobić użyć kwarc około 16MHz i podzielę do przez 4 czy dać kwarc 4MHZ bez podziału? W którym przypadku będzie mniejszy pobór prądu? I drugie pytanie . W tym procesorze pojawiły się dziwne przerwania (chyba). Przy każdej...
Cały problem jest w tym żeby te dwie ATmegi się zsynchronizowały. Przerwanie od SPI występuje po zakończenia transmisji pierwszego bajtu. Zanim nastąpi obsługa przerwania to pierwszy bajt zostanie utracony. Nie mamy też gwarancji że dwie Atmegi "wystrzeliły" :) równocześnie i Slave nie czyta np. 4 bajtu nadanego przez Mastera. Jeżeli to by była np....
https://obrazki.elektroda.pl/6021352700_... https://obrazki.elektroda.pl/6921159500_... https://obrazki.elektroda.pl/3416870700_... https://obrazki.elektroda.pl/7961253800_... https://obrazki.elektroda.pl/7601893100_... Dzisiaj przedstawię państwu dwa sejfy dla dzieciaków,...
Witam, złożyłem płytkę, napisałem kod i coś nie działa, narazie podam kod bo płytka śmiga byłbym wdzięczny za sugestie co jest nie tak że to nie chce działać, kod zbudowany po części w CodevisionAVR. Wyświetlacz jest na wspólnej Katodzie stąd mój wniosek że aby zaświecić jakiś segment muszę wysłać 0 na pin, a aby go zgasić 1. Jeżeli źle myślę to poprawcie...
Witam wszystkich. Ostatnio wpadłem na pomysł usprawnienia pewnej maszyny, gdzie muszę zbierać informację o częstotliwości a bardziej prędkości obrotowej z siedmiu różnych wałków. I teraz pierwszym pomysłem, który intuicyjnie mi się nasunął były przerwania zewnętrzne ale jest ich zdecydowanie za mało (no chyba, że jakaś wersja ma do dyspozycji ich większą...
Coś takiego znalazłem. Co prawda na Atiny ale można przerobić. [syntax=c]// // Talking to ultrasonic sensor HC-SR04 with an ATtiny84, and // sending distance data using serial communications. // // electronut.in // #include <avr/io.h> #include <string.h> #include <util/delay.h> #include <avr/interrupt.h> #define F_CPU 8000000...
nie mylisz się Dodano po 20 już się poprawiam, bo w temacie napisałeś ATmega8, jakoś mi to umknęło i skupiłem się tylko na tekście i pytaniach o sposobie wyzwalania przerwań. Z opisu dokumentacji jaką czytałeś poprostu domyśleć się można że chodzi o procki inne niż ATmega8 bo akurat ten procek nie ma przerwań PCINTx, Więc co do tego co przeczytałeś...
co do bascoma to powiem Ci tak, na początku niby łatwiej i fajniej się programuje wszystko w bascomie, ale nietypowych rzeczy w nim nie zrobisz tak prosto (choćby np. obsługa dwóch lcd...) a ma on swoje ukryte "atuty" - bugi, które skutecznie zatruwają życie (np. skopana obsługa timerów na niektórych uP, błędy przy niektórych operacjach porównywania,...
Docelowo będą jeszcze pin change (PCINTx), ale w tym momencie nie ma nic więcej. Wkleiłem cały program....
świetlówkę fazowo...nie obrażaj mnie? No bez przesady A dlaczego nie? Są świetlówki, ledy które mogą pracować ze ściemniaczem. Dodano po 4 Działający kod sterowania fazowego: [syntax=c] //======================================... void InitTimer1() { //TCCR1A = //TCCR1B = 5; // NORMAL (mode0), Preskaler 1024 TCCR1B = 4;...
Pokazuje pliki: KPD.h #include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> unsigned char KPD_KeyPressed; unsigned char KPD_LastKey; unsigned char KPD_ScanRow; unsigned char KPD_KeyDown; #define CODE_MAX_LENGTH 8 #define CODE_ACCESS_LENGTH 4 #define CODE_ADMIN_LENGTH 8 #define BUFSIZE 20 void KPD_Init(void);...
Sprawdzę jutro. Ale nie widzę na schemacie sygnału DIDR. Wkleiłem schemat portu z dokumentacji dla Atmega48/88/168/328, nie zauważyłem że używasz ATtinny i pewnie dla tego scalaka będzie wyglądać inaczej. Mój błąd.
przerwania pcint atmega pcint attiny przerwać pcint
elektryczne foteli volvo mondeo zamek klapa nagrywanie plików
podgrzewacz przepływ problem podgrzewacz przepływ problem
848T8E 65" K650WDF LED TV Firmware 848_DTMB_8G.BIN Request Migająca dioda w odkurzaczu Bosch - przyczyny i rozwiązania