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.
Przenieś Enable Pcint0 i Enable Pcint3 zaraz przed Enable interrupts, albo zobacz co sie stanie jak skasujesz flagi tych przerwań. PCIFR.PCIF0 = 1 PCIFR.PCIF3 = 1
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...
Jedyna zmienna, którą trzeba przechowywać, to old_A; można by zrezygnować z B, która jest używana raz, wstawiając read_B() zamiast B. I jest też sposób, by zrezygnować z A: porównujesz read_A() z old_A, jeśli się różnią, to zmieniasz old_A i zliczasz, kierunek według poprawionego old_A i read_B(). Przerwanie musi być na obu kierunkach zmian sygnału...
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...
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...
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...
[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
Mam poważne wątpliwości czy kombinacja softwareowego USB i synchronicznego (busy waits!) TWI ma szansę zadziałać. Chyba faktycznie te synchroniczne i2c nie działa, bo mi się rozłącza z usb. już się bawię z isr: nwm o co chodzi z tym attiny ale mi hardware nie działał choćbym się zesrał, ostatecznie na scl dałem mniej więcej taki https://obrazki.elektroda.pl/1633124600_...
Jak nie włączyłeś przerwań, to powinny być wyłączone... no, chyba, że bascom to zrobił za Ciebie... Dodano po 46 A skąd wiesz, że się odpalają przerwania PCINT?
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ę ;)
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...
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, 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ł :-)
https://obrazki.elektroda.pl/2143173200_... W Loop mam w uproszczeniu taki kod : Takie opisy są guzik warte. Podaje się kod: includy, inicjacje i użycie. Jeśli kompilator wyrzuca jakieś błędy to wkleja się cały komunikat. na atmega8 softserial nie działa Nie wiem czy na arduino jest jakiś lib który nie korzysta z przerwań PCINT, może...
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.
"The pin change interrupt PCI2 will trigger if any enabled PCINT23..16 pin toggles. The pin change interrupt PCI1 will trigger if any enabled PCINT14..8 pin toggles. The pin change interrupt PCI0 will trigger if any enabled PCINT7..0 pin toggles. The PCMSK2, PCMSK1 and PCMSK0 Regis- ters control which pins contribute to the pin change interrupts. Pin...
Witam. Problem jak w temacie. Program Hid_Mouse z zestawu v-usb nie rusza. Stosuje inne ustawienia przerwań niż domyślne int0 (używam PCINT0). Zmieniłem też ustawienie pliku usbconfig.h .Nie ma możliwości przełączenia fizycznego do portu int0. Kompilacja w win avr. /* ----------------------- Optional MCU Description ------------------------ */ /* The...
Podział na analogowe i cyfrowe a Arduino jest sztuczny. Jezeli weźmiez pinout npo atmegi 328 (z Arduino uno) to piny które moga być wejściami analogowymi sa oznaczone ADCx. Te same piny mają tez inne funkcje w zależności od tego co zapiszesz w rejestrach procesora. Tak ze w Arduino mozesz wejscia "analogowe" używac tak samo cyfrowo. Dla przykładu pin...
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...
W 328P masz PCINT na około procesora. Możesz wybrać dowolny pin i mieć z niego generowane przerwanie. To już nie jest babcia Mega8 :D
Chwilę mnie nie było, a tu wrze :D Jeśli chodzi o wyświetlanie czasu po wybudzeniu procesora, to działa ta procedura od nieveasoft , którą przedstawił wcześniej. Co do samej biblioteki, to wolałem zastosować gotową. Po prostu jest mi wygodniej a to dla tego że nie jestem Bascom-owcem :). Włączanie i wyłączanie oleda jest opanowane. Teraz borykam się...
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...
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.
Szukam sposobu na wywołanie przerwania z programu. W ARM sprawa prosta, wpis do NVIC i mam dowolne przerwanie. W AVR rozwiązywałem to przez wolny pin GPIO. Ustawiałem jako PCINT, gdy potrzebowałem przerwania, ustawiałem GPIO w stan niski. W przerwaniu PCINT przywracałem poziom wysoki. Niestety nie mam wolnych pinów. Jest w AVR rozkaz BRK generujący...
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....
Docelowo będą jeszcze pin change (PCINTx), ale w tym momencie nie ma nic więcej. Wkleiłem cały program....
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...
przerwania pcint atmega przerwania pcint pcint bascom
grafik pracy zmian kolba ekspres zelmer nikon obiektywu
gniazdo optyczne gniazdo optyczne
Alcor Micro FA00 USB Flash Disk (Generic, Samsung TLC) 8GB Repair with AlcorMP Tool Vitocal 161 - Pompa ciepła nie wyłącza się: przyczyny i rozwiązania