PA1 to nie jest nóżka związana z INT1! Pod PA1 siedzi PC INT1 - Pin Change Interrupt. "Zwykłe" przerwanie zewnętrzne INT1 to nóżka PD3 ;)
Z tego co wiem "PIN Change Interrupt" ma np. Atmega168 i Atmega 328. Atmega 32 - jakoś nie widzę takiej możliwości. Proszę o poprawienie mnie, jeśli się mylę. Oczywiście zawsze można skorzystać z tych specjalnych pinów - INT0, 1 czy 2 lub zasymulować taką kontrolę stanu pinu w zwykłym przerwaniu - np. timera.
Nie wiem, jak z możliwością określenia, po Pin Change Interrupt, na którym pinie była zmiana, która go spowodowała.
Przepisałem wedle swej wiedzy. Symulacja w AVR Studio 4 działa poprawnie, ale po zaprogramowaniu LED'y nie migają... Drogi kolego ucy74 , jeśli już coś robisz , to rób to dobrze , albo nie rób wogóle - nie mogłem się powstrzymać ;) Ustawiasz INT0 na wyzwalanie zboczem narastającym ,"usypiasz" proca snem głębokim (Power-down) i dziwisz się , że nie...
Jeden przykład pewnie będzie tu wart więcej niż tysiąc słów :-) Pisałeś, że chcesz skonfigurować przerwanie PCINT4. Uważam, że powinno to wyglądać tak: Pcmsk0 = &B0001_0000 'odblokuj PCINT4 On Pcint0 Test 'przerwanie ==> skocz do procedury test Enable Pcint0 'włącz przerwanie od PCINT0...PCINT7 Enable Interrupts Okazało się, że powyższy kod działa...
Te procesory się aż tak nie różnią. Dodatkowe funkcjonalności pinów nie przeszkadzają w niczym dopóki ich nie uruchomisz. (PCINT - Pin Change Interrupt trzeba wiedzieć jak włączyć). Jest duża różnica jeśli chodzi o Timery właśnie. Mega8 ma na przykład tylko jeden rejestr Compare dla Timer2 dlatego inaczej się nazywają. Opisałem to u siebie na stronie...
"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...
Niestety nie jestem bascomowy. Piszę tu o algorytmie i rozwiązaniach ale konkretnej implementacji w bascom ci nie podam. Pogooglaj temat pin change interrupt może znajdziesz jakiś kod w bascom. Znalazłem coś takiego wprawdzie na PCINT z detekcją na jednym pinie ale można to dorobić na pozostałe wg specyfikacji procesora ale przykład jest w C [url=http://www.insidegadgets.com/2011/0...
PCINT są wyzwalane tylko zmianą poziomu (Pin Change Interrupt) i nie da się go skonfigurować jako "falling"
Tak mi przyszło do głowy, że można by ewentualnie użyć mega48L. Pin change interrupt może go wybudzić i wówczas nie potrzeba tych wszystkich diod.
Portów to można użyć i jednego ;), a pinów to wystarczy trzy, pod warunkiem, że zamiast ATmega16 użyjesz ATmega164 (identyczny rozkład wyprowadzeń) z przerwaniami typu PCINT (Pin Change INTERrupt).
Lepiej używac pin change interrupt moim zdaniem. Można prosić o rozwinięcie. Jeśli można to poproszę o skrobnięcie kawałka kodu z wykorzystaniem wathdog-a
Nie mogę zrozumieć, czym się różnią oba przerwania. Wg datashitu INT to External interrupt, a PCINT to Pin Change Interrupt. Czyli zarówno jedno jak i drugie wygeneruje przerwanie, jak pojawi się stan wysoki/niski. Na czym więc w praktyce polega różnica?
(at)mirekk36 Użyj przerwania PCINT (Pin Change Interrupt), będziesz miał wtedy do wykorzystania 8 linii mogących "obudzić" mikrokontroler z trybu Power-down. Do takiego zastosowania kwarc jest niepotrzebny, dokładność wewnętrznego oscylatora jest zupełnie wystarczająca.
Hej. Mój układ przewiduje bezpośrednie podłączenie wyprowadzeń z czujników halla do pinów uC, gdzie sygnał jest przepuszczany przez pin change interrupt. Czy procek jest w stanie odpowiednio zinterpretować i przetworzyć sygnały na tych wejściach? Nie powinienem zastosować tutaj jakichś komparatorów na konwersję logiczną?
Chciałem na ww procku zrobić klawiaturkę matrycową zasilaną bateryjnie. W celu oszczędności baterii chciałem skorzystać z trybu Power Down. I tu pojawia się moje pytanie: Czy można procka wybudzić tylko poprzez skorzystanie z INT0 / 1. Bo jeśli tak, wiązałoby się to z konieczniością ustawiania wszystkich wyjść matrycowych w stan 0, podłączenia INT0...
Spróbuj ten kod /* Ver. 1.02 - 2020-03-29 Kod emulujący kierownicę Thrustmaster TMX Pro, umożliwiający podłączenie Arduino do bazy TMX Pro i emulację naciśnięć przycisków. */ #include <Arduino.h> byte wheelState[8]; // Stan przycisków volatile byte next_byte; volatile byte next_byte_idx; // Zmienne do debouncingu byte lastState[2] = {0xFF, 0xFF};...
Akurat klawiatura matrycowa to moim zdaniem nieporozumienie w przypadku tak krótkiego selektora. Rozwiązanie jakie obmyślił autor wątku jest proste i całkiem eleganckie - nie ma przeciwwskazań by go nie stosować. Wszystko co potrzebne autorowi do realizacji tej ideii zostało już w tym wątku wyjaśnione. Pozdrawiam, GSM P.S. Co do wyjścia /INT ekspanderów,...
W nowym AVRGCC (20080512) jest plik nagłówkowy do ATTiny85 (iotn85.h) który odnosi się do zbiorczego pliku iotnx5.h . W którym napisano: /* Pin change Interrupt Request 0 */ #define PCINT0_vect _VECTOR(2) #define SIG_PIN_CHANGE _VECTOR(2) Jest zatem jeden wektor, a o resztę musisz się martwić sam.
Witam. Kod wkleja się w znacznikach Syntax. Składnia: Kolorowanie składni: In this mode, the external Oscillator is stopped, while the external interrupts, the USI start condition detection, and the Watchdog continue operating (if enabled). Only an External Reset, a Watchdog Reset, a Brown-out Reset, USI start condition interrupt, an external level...
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...
Dzięki. Czyli polecenie enable PCINT0 On INT0 nazwa przerwania spowoduje odblokowanie przerwań w Atmega168 z portu B (Pb.0-Pb.7), i skok po wywołaniu zmiany stanu któregokolwiek z pinów pod adres podany po poleceniu On, czyli pod adres podany w dokumentacji vector 4 0x0006 PCINT0 pin change interrupt request0. Powinien też zadziałać wpis do rejestru...
Pin Change Interrupt masz zarówno jak pin przechodzi ze stanu wysokiego w niski jak i z powrotem, kiedy pin powraca z niskiego w wysoki. Mając trzy wentylatory każdy może losowo wyzwolić przerwanie stanem niskim jak i powracając w stan wysoki. Soft niby odsiewa te powroty w stan wysoki. Tylko powiedz po co on testuje te trzy warunki? Napisz obsługę...
Only an External Reset, a Watchdog Reset, a Brown-out Reset, USI start condition interrupt, an external level interrupt on INT0, or a pin change interrupt can wake up the MCU Według dokumentacji wybudzenie mikrokontrolera z trybu power-down możliwe jest jedynie przez przerwanie od niskiego poziomu na INT0, a na jakiekolwiek przerwanie od INT1 procek...
No niestety trzeba będzie trochę popracować... :D Proponuję tak (attiny13): 0. konfigurujesz porty, włączasz pullupy na pinach z przyciskami 1. procesor czeka w uśpieniu na pin change interrupt 2. po obudzeniu sprawdzasz jaki kod wysłać, wyłączasz przerwanie pin change 3. w pętli wysyłasz kolejne bity włączając i wyłączając PWM (opis kodu RC5 [url=http://www.ustr.net/infrared/index....
Cześć Jest kilka koncepcji wykonania tego układu, jedna z nich to osobny mikser do każdego żyroskopu, strona którą Ci kiedyś podałem www.elfly.pl traktuje właśnie o mikserze do żyroskopu na co nie zwróciłem wcześniej uwagi, prosto lekko i sprawdzone rozwiązanie. Dlaczego stosują 664? pewnie z trzech powodów, procesor ma mnóstwo nóżek więc jest rozwojowy...
3. Jak dobrze widzę w dokumentacji to stan rejestrów przy power-down jest zachowany, więc można to zrobić bez użycia eepromu. Owszem, ale... Power-down Mode (...) In this mode, the Oscillator is stopped, while the external interrupts, and the Watchdog continue operating (if enabled). Only an External Reset, a Watchdog Reset, a Brown-out Reset, an external...
Dolacze sie do problemu z pytaniem. Czy da sie tak skonfigurowac w at91sam7 pin change interrupt zeby reagowalo na zbocze impulsu a nie na zmiane poziomu. Interesuje mnie tylko zbocze narastajace poniewaz moj impuls 1,0,1 jest na tyle krotki ze prawdopodobnie czas obslugi przerwania podczas zmiany z 1 na 0 przykryje mi moment zmiany z 0 spowrotem na...
Zanim odblokujesz przerwania za pomocą sei(), w rejestrze EIFR wykasuj flagę INTF1 INTF1: External Interrupt Flag 1 When an edge or logic change on the INT1 pin triggers an interrupt request, INTF1 becomes set (one). If the I-bit in SREG and the INT1 bit in EIMSK are set (one), the MCU will jump to the corresponding Interrupt Vector. The flag is cleared...
Ad1. Tak jest prawidłowy. Zawsze można rozwiązać inaczej. Przede wszystkim używać definicji - zamiast: Ustawianie i zerowanie bitów
Witam, mam problem z obsługą przerwań zewnętrznych INT0 oraz INT1 w symulatorze (Simulator). Piszę w AVR Studio 4.19, gdyż Atmel Studio nie ma symulatora dla ATtiny87. Popatrzcie na ten banalny kod (okroiłem pierwotny kod do absolutnego minimum): [syntax=c] #include <avr/interrupt.h> unsigned char i; ISR(INT0_vect) //interrupt at PB6 { i++; }...
Zainstalowałem AVR Studio4 i lecę od początku z google i pdf na temat ASM i AVR Powiedzcie chociaż czy w dobrym kierunku zmierzam? Bo jak w złym to odpuszczam i daje sobie spokój, pobawię się migającymi diodami w Bascomie. Tam gdzie nie ma komentarza to nie wiem co to znaczy i co robi ale było w pdf lub innych opisach, jeżeli ktoś może mi wyjaśnić instrukcje...
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...
OK, rozumie Twoje intencje i z chęcią pomogę, bo minimalizowanie poboru energii to mój "bzik" :) Jednakże zacząłbym od tego, że przy takim zasilaniu gdy ustawisz ten mikrokontroler na kwarcu 32kHz , to zużywać będzie zaledwie 20 μA przy 3V i niewiele więcej przy 5V. Czy to nie wystarczy? Większe straty masz na samym zasilaczu. Co do usypiania -...
Witam, zrealizowałem program do pilota RC_5, który ma posłużyć do sterowania końcówką mocy (5 przycisków, vol+, vol-, wybór potencjometru L/R/oba na raz, ON/OFF i przycisk mute). Programik śmiga aż miło, nie ma w nim błędów, problem leży w poborze mocy. Pobór prądu ~9 mA przy napięciu 3,15 a pin change interrupt can wake up the MCU. Na moje jedyną sensowną...
Niby tak No i zobacz... wszyscy autorytarnie wypowiadają się, że jest tak a nie inaczej, czasami nawet wyśmiewają (że biorę przykłady z Internetu) a dokumentacja mówi ta, nie inaczej. Nie twierdzę, że poprawnie to odczytuję...ale... ALE, dla samego procka ze schematu, jak powyżej i programu, jak powyżej...pobór 300uA. Coś jest nie tak... R Dodano po...
ldi R16,0 Out &H38 , R16 spróbuj to zamienić na : ldi R16,1 Out &H58 , R16 Co do tłumaczeń to jednak w oryginale brzmi to tak: -When an edge or logic change on the INT7:0 pin triggers an interrupt request, INTF7:0 becomes set (one). Co dla mnie w wolnym tłumaczeniu brzmi -Kiedy zbocze lub poziom logiczny na pinie przeniwania 7-0 się zmieni wywoła to...
Witam! ADC Noise Reduction Mode When the SM1..0 bits are written to 01, the SLEEP instruction makes the MCU enter ADC Noise Reduction mode, stopping the CPU but allowing the ADC, the external interrupts, and the Watchdog to continue operating (if enabled). This sleep mode halts clkI/O, clkCPU, and clkFLASH, while allowing the other clocks to run. This...
Witam, W dokumentacji dowolnego mikrokontrolera ATmega z łatwością można odnaleźć tablicę z wektorami przerwań, np. taką: 1 $0000 RESET 2 $0002 INT0 External Interrupt Request 0 3 $0004 INT1 External Interrupt Request 1 4 $0006 INT2 External Interrupt Request 2 5 $0008 INT3 External Interrupt Request 3 6 $000A INT4 External Interrupt Request 4 7 $000C...
Oled w niektórych bibliotekach ma bufor RAM 1k, a to cały RAM w Atmega8 i nawet jeśli nie jest cały buforowany to raczej tu bym szukał przyczyny w dziwnym zachowaniu uC Tja.. biblioteki Adafruit nie działają ale szukałem długo i znalazłem taką która nie tworzy tak dużego bufora -> SSD1306AsciiAvrI2c . W Loop mam w uproszczeniu taki kod : czytaj liczbę...
Dziś próbowałem załadować prawie wszystkie programy z tej strony. Znalazłem jeden który w miarę mnie zadowala, jednak problem tkwi w tym, że ten program: - gubi się powyżej ok. 500 obr/min enkodera, - nie pokazuje wartości minusowych, - dochodzi do wartości ok 65000 na ,,serial monitor" i zeruje się wygląda on tak: [syntax=c]enum PinAssignments { encoderPinA...
Ależ zauważyłem. Co to ma ze sobą wspólnego ? Prawie nic. Tylko jak odniesiesz się do tej części dokumentacji ? Cytuję: If a logic high level (“one”) is present on an asynchronous external interrupt pin configured as “Interrupt on Rising Edge, Falling Edge, or Any Logic Change on Pin” while the external interrupt is not enabled,...
Ok, ale skąd program ma wziąć te poprzednie stany portu? Z rejestru PORTB? W trakcie przerwania sprawdzić poprzedni stan i zapisać aktualny? Port B nie ma rejestru (wejsciowego), stan jest czytany doraznie. W trakcie przerwania byloby troszke za pozno na sprawdzanie poprzedniego stanu, nieprawda? Zapamietac stan portu nalezy przed (pierwszym) wlaczeniem...
Witam, pisze program w assemblerze który pozwarciu INT0, będzie wykonywać określoną czynność(łączyć się z innym urządzeniem), Ale narazie utknąłem w martwym punkcie, napisałem program który po zwarciu INT0 wywołuje przerwanie które zapala diodę podpiętą do lini PC0 5 razy i gasi(zapalenie uzyskuje poprzez ustawienie PC0 w stan wysoki). Całość funkcjonuje...
Panowie po podłączeniu enkodera i obracaniu nim w monitorze portu liczby przeskakujaca co 4 a nie co 1 . Tak jak by enkoder wysyłał 4 impulsy na jeden przeskok . Pełny obrót enkodera (20pozycji) daje liczbę 80 a nie 20, gdzie szukać przyczyny ? Próbowałem z innym enkoderem i jest to samo Sprawdzane na powyższym kodzie Tak się dzieje w rachunku bo robisz...
Pomysł na ten projekt podsunął mi kolega. Poprosił o analizę problemu zliczania klientów wchodzących do sklepu. http://obrazki.elektroda.pl/3325370000_1... Zaproponowałem taki projekt: - kontaktoron reagujący na otwarcie drzwi lub tor optyczny, - rejestracja zdarzeń w pliku na karcie SD, - rejestracja kazdego zdarzenia wraz z godziną...
Dla pełności tematu. Jak skorzystać z PCINT? Szukałem w manualu i jakieś przykłady w sieci ale nie znalazłem nic czytelnego. Oto przykład dla Attiny13 (jest on w manualu): [code][syntax=basic4gl] $regfile = "attiny13.dat" $crystal = 9600000 $hwstack = 32 $swstack = 24 $framesize = 8 'config pinb.0 = input Config Portb.2 = Output Pcmsk = &B00000001...
Spróbuj tak [syntax=cpp] #include <avr/io.h> #define F_CPU 4800000 #include <util/delay.h> #include <avr/interrupt.h> #include <avr/sleep.h> #define t5sec 5*19 #define t10sec 10*19 #define t20sec 20*19 #define t30sec 30*19 #define t60sec 60*19 #define t120sec 120 * 19 #define t300sec 300 * 19 #define IR_ON PORTB|=0x01; #define...
Witam Zacząłem nowy miniprojekt i wyszło, że najlepiej byłoby użyć dwóch linii PWM. Ponieważ mam pod ręką sporo ATTiny13, postanowiłem wykorzystać ten typ. W dokumantacji napisano i to chyba nawet kilka razy, że ATTiny13 posiada dwa niezależne komparatory. No to napisałem: #include <avr/io.h> #include <stdint.h> #include <avr/interrupt.h>...
Kondensatory C17-C25 nie są wlutowane a na schemacie są dlatego, że na poprzedniej płytce, gdy dokładałem je do wyjść silnik jakby lepiej działał (zwiększały się obroty i spadał prąd). Drivery dałem tak blisko bo czytałem, że niektórzy mieli problemy z ujemnymi szpilkami na Vs przez co układy były uszkadzane. Program sterujący raczej nie ma możliwości...
https://obrazki.elektroda.pl/5092109900_... Witam, Odkąd w moim aucie pojawił się pilot do bramy wjazdowej na posesje nie chciałem aby leżał on gdzieś na wierzchu albo żebym musiał go szukać w czeluściach jakiegoś schowka. Postanowiłem więc, że zintegruje go z autem, jednakże nie chciałem dodawać żadnych nowych przycisków, tylko użyć...
AVE... 1. Zmniejsz sobie wartość tego licznika eksperymentalnie, aż dojdziesz do takiej wartości, gdy kod będzie działać poprawnie. 2. Spróbuj użyć funkcji delay_ms, czy jak ona się zwie w Twoim kompilatorze(to złe rozwiązanie z punktu widzenia praktyki programistycznej). 3. Masz trzy timery, użyj któregoś z nich. 4. Użyj pinu z Interrupt_On_Change....
C:\Users\ORMO\Documents\Arduino\moje... warning: 'PCINT2_vect' appears to be a misspelled signal handler [enabled by default] ISR(PCINT2_vect) { ^ C:\Users\ORMO\Documents\Arduino\moje... In function 'void setup()': moje_dzialajace:210:...
Dodam moj przepis na ładną tablicę wektorów (przykład dotyczy ATtiny2313) : .cseg ;—————R...
W PICach rozne przerwania wywoluja jedna funkcje w ktorej musisz sprawdzic zrodlo wywolania przerwania czyli sprawdzic np flage czy timer sie przekrecil lub czy nastapila zmiana na porcie B. Powinno to wygladac tak: void interrupt() { if ( T0IF == 1 ) // czy timer sie przekrecil ? { if( T0IE == 1 ) // czy jest wlaczone...
Skoro tak, to po co jest to zdanie, które wytłuściłem: When an edge or logic change on the INT7:0 pin triggers an interrupt request, INTF7:0 becomes set (one). If the I-bit in SREG and the corresponding interrupt enable bit, INT7:0 in EIMSK, are set (one), the MCU will jump to the interrupt vector. The flag is cleared when the interrupt routine is executed....
całość pochodzi z tej strony:https://www.electronoobs.com/eng_... żebyś mi tu po cichu nie zarzucał ze nie pokazuje kodu co do kodu Dodano po 7 A ja myślę Sławuś Ze od urodzenia Coś chyba słońce za mocno świeci. Pudło.
...I bardzo dobrze ;) tylko proszę o informację które potwierdzą moją "herezję". Pozdrawiam Jarek Proszę bardzo ;) • Bit 7 – INTF1: External Interrupt Flag 1 When an edge or logic change on the INT1 pin triggers an interrupt request, INTF1 becomes set (one). If the I-bit in SREG and the INT1 bit in GICR are set (one), the MCU will jump...
Po niewielkich zmianach powinno działać też na Attiny85. Wrzucam kod dla Attiny85 (nie testowany; nie mam jak): [syntax=c]//############################... // SPWM implementation for Attiny85 // Clock frequency 8MHz internal clock oscillator // High Fuse: 0xFF, Low Fuse: 0xE2 // // Signals generated: // - SPWM...
Witam, dopiero wczoraj ogarnąłem przerwanie PCINT0 a już dziś potrzebuję PCINT4. Poniżej zamieszczam program testowy na którym pracuję. Przerwanie PCINT0 działa bez problemu niestety PCINT4 już w ogóle. Wpisanie w konfiguracji PCINT4 kończy się błędem "unkown interrput source" więc doczytałem, że wektor przerwania jest jeden i jest nim PCINT0 tylko...
Witam, najprawdopodobniej za długo siedzę nad blachym tematem i niedowidzę problemu. Nie wiem dlaczego program w pętli głównej nie wchodzi do warunku if (RC5_detected == 1) po obsłużeniu przerwanie zewnętrzengo. Przerwanie jest wykonywane poprawnie więc RC5_detected jest napewno ustawiane. Moją ideą jest ustawienie zmiennej w przerwaniu i późniejsze...
1 strona: Peripheral Features – Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes – One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode – Real Time Counter with Separate Oscillator – Six PWM Channels – 8-channel, 10-bit ADC Differential mode with selectable gain at 1×, 10×...
Witam Problem w tym, że po włączeniu zasilania w urządzeniu, na INT0 od razu pojawia się stan niski (z bramki NAND - bo żaden przycisk nie został wciśnięty) no i generowane jest przerwanie, które z kolei ustaje gdy wcisnę dowolny z przycisków (wtedy na INT0 pojawi się stan wysoki) wówczas wykonuje się główny blok programu. crooveck Zastosowanie bramki...
jak kolega _Robak_ napisał czyli datasheet -> rozdział External Interrupts -> Table 31 -> wiersz 2/4 "ISC11=0 ISC10=1 Any logical change on INT1 generates an interrupt request." Natomiast w samym przerwaniu dajesz zmienna globalna = timer timer = 0 if który sprawdza poziom na pinie od przerwania jeżeli 1 to było zbocze rosnące else zbocze opadające......
Witam, mam pewien problem. Chce zbudować regulator PiD do grzałki na arduino. Znalazłem taki kod w internecie : [syntax=c] //LCD config #include "max6675.h" #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,20,4); //sometimes the adress is not 0x27. Change to 0x3f if it dosn't work. /* i2c LCD Module ==> Arduino...
ale one mówią na jaki mikrokontoler skompilowano program. doprawdy? Kolega jak zwykle "ciekawe" rzeczy pisze https://obrazki.elektroda.pl/2928104400_... Ciekawe skąd microchip wiedział jak będziesz kompilować i wgrać to do uC w fabryce Sprawdzałeśs co zwróci np to ? [syntax=c]sprintf_P( txt, PSTR( "AVR %02%02X%02X" ), SIGNATURE_0,...
https://obrazki.elektroda.pl/6206626500_... Przedstawię tutaj prosty w użyciu moduł pozwalający na uzyskanie dodatkowych portów I/O. Jeden PCF8574 sterowany jest tylko dwoma sygnałami, a daje nam aż całe 8 konfigurowalnych wejść/wyjść razem z dodatkowym opcjonalnym sygnałem przerwania. Co więcej, dwa piny mogą wysterować jednocześnie...
No i wszystko. Panowie, popełniłem błąd bo założyłem błędnie ten właśnie czas, nie wiem skąd mi się to w głowie pojawiło, przepraszam. Natomiast dzięki Waszym wyjaśnieniom i oscyloskopowi który służy mi nie od dziś, doszedłem do wszystkiego co aktualnie dla mnie istotne. Dziękuję za wyjaśnienia. Aktualnie z AtTiny85 wyciskam ile się da, i proszę mi...
To jest w PCint.h #include "pins_arduino.h" volatile uint8_t *port_to_pcmask[] = { &PCMSK0, &PCMSK1, &PCMSK2 }; static int PCintMode[24]; typedef void (*voidFuncPtr)(void); volatile static voidFuncPtr PCintFunc[24] = { NULL }; volatile static uint8_t PCintLast[3];...
8051 nie ma możliwości konfiguracji poszczególnych wyjść a poza tym ma inną obciążalność wyjść (i ich charakterystyką prądowo napięciową). A może problem jest w tym sprawdzaniu wejść, bo skoro usunąłeś funkcje if i problem zniknął, to problem jest z czytaniem wejść A jeszcze sprawdź czy masz zgodne wersje oprogramowania, bo może tu się gryzie: http://www.helmix.at/hapsim/...
W sekcji main programu ustawiasz: TRISB=1 to oznacza, że tylko RB0 jest wejściem, pozostałe piny RB7-RB1 są wyjściami. Przerwanie informujące o zmianie stanu pinu dotyczy tylko tych spośród RB7-RB4, które będą wejściami. W Twoim przypadku - żadnego. Spróbuj zmienić w/w instrukcję na: TRISB=240 (wartość binarna 11110000, hex F0). Nie koduję w mBasic-u....
Witam wszystkich, od paru dni walczę z obsługą ekspandera MCP23S17. Dopiero dziś udało mi sie zmusić go żeby w ogóle zareagował na wysyłane dane jednak nie reaguje tak jak powinien. Procesor PIC32MX250F128B działa na 40MHz. SPI konfiguruję tak: [syntax=c]PLIB_SPI_Disable(SPI_ID_1); PLIB_SPI_MasterEnable(SPI_ID_1); PLIB_SPI_SlaveSelectEnable(SPI_ID_1);...
Nie znam, ale w ostatnim zdaniu jest napisane co powinieneś zrobić. Zrobiłem i nic to nie dało.. Dodano po 1 Dodano po 1 Jeśli pin D2 równa się jeden a pin D3 równa się zero to kierunek równa się prawo. I odwrotnie w przypadku obrotu w lewą stronę. Gdzie to mam wrzucić? Dodano po 41 Jeżeli już odczytasz kierunek obrotu to w przerwaniu zwiększasz każdy...
Oto coś, nad czym GPT i ja pracowaliśmy, aby stworzyć symulator BL0937 do testowania OpenBeken na różnych platformach. Jest to szkic Arduino, który działa na ESP-WROOM-32 i jest obecnie podłączony do RTL8720DN/BW16E NiceMCU_RTL8720_V1 z uruchomionym OpenRTL. Szkic wykorzystuje PWM do symulacji CF, CF1 i SEL, umożliwiając OpenBeken interpretację sygnałów...
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);...
http://obrazki.elektroda.pl/3207877000_1... http://obrazki.elektroda.pl/9634776400_1... http://obrazki.elektroda.pl/8673988800_1... http://obrazki.elektroda.pl/3005768300_1... Termometr z funkcją pamiętania maksimum i minimum (zapisane w rejestrach, tracone przy braku zasilania). Program...
Moja przeróbka na arduino mini pro wzorowana na źródle Mike Naberezny. Na płytce łączymy pin 4 i 13 oraz 9 i 10 oraz trzeba wylutować rezystor który jest przy ledzie od pinu 13. Połączenia do poszczególnych pinów opisane w kodzie. [syntax=c] #include <SPI.h> #define STATE_STARTING_PLAY 1 #define STATE_PLAYING 2 #define STATE_IDLE_TAPE_IN 3 //connect...
Mam ciągle problem z funkcją itoa. Chyba nie do końca wiem jak sie nią posługiwać. Chciałbym odczytane bajty zapisać jako kod w hexie, żeby potem stworzyć jakieś funkcje do obsługi tych kodów. Muszę mieć rozgraniczenie na poszczególne bajty, żeby wyciągać charakterystyczne części tylko. Zdarza się że pilot którego muszę obsłużyć ma początek bajtu inny,...
Cześć, po analizie działania enkodera obrotowego (mechanicznego) i ilości problemów, jakie on dostarcza, postanowiłem skonstruować prosty układ elektroniczny, który "wygładzi" impulsy enkodera. Układ posiada dwie wersje. Obie są na przerzutnikach Schmitta. Pierwszy na pojedynczych układach TI SN74LVC1G17: https://obrazki.elektroda.pl/5101546100_...
http://obrazki.elektroda.pl/4301568800_1... Autor poniższej konstrukcji przedstawiał już podobny układ - miniaturowy zegarek oparty o ATtiny ( Krok 1: Przygotowania http://obrazki.elektroda.pl/4194769400_1... Mikrokontroler Układ oparty jest o mikrokontrolery AVR firmy Atmel ATtiny85. Autor wykorzystał element w obudowie...
Witam. Testowałem sobie różne opcje oszczędzania energii i trochę za szybko wgrałem program zmieniający częstotliwość taktowania za pomocą komendy CLKPR , przez co teraz nie mam komunikacji z mikrokontrolerem - nie mogę wgrać innego programu, bo dostaję błąd: avrdude: error: programm enable: target doesn't answer. 1 avrdude: initialization failed, rc=-1...
O licznik to raczej jestem spokojny. Bardziej mnie niepokoją te przerwania na int0. No 16-bitowym timerem to nie sztuka zrobić taki spowalniacz :-) ale akurat 2313 nie mam na stanie, a np. dużą ATmegę 8 pakować do modelu w takim celu to jak armata na muchy. Ale w przyszłości na pewno się zabiorę za jakiś tiny z 16-bitowym timerem. Jeżeli chodzi o uruchamianie...
Witam. Znalazłem w necie. To powinno pomóc rozwiązać twój problem. Gościu tu przedstawia jak uśpić procesor i obudzić go przerwaniem INT0. [syntax=c] #define LED_PIN 4 void setup() { pinMode(LED_PIN, OUTPUT); //Save Power by writing all Digital IO LOW - note that pins just need to be tied one way or another, do not damage devices! for (int i = 0; i...
Generalnie z timerem1 cośtam się zrobić da, nawet na przerwaniach. Trzeba tylko ściągnąć odpowiednią [url=https://github.com/PaulStoffregen/T... <TimerOne.h> // This example uses the timer interrupt to blink an LED // and also demonstrates how to share a variable between // the interrupt and the main program. const...
Witam w Nowym Roku Chciałem zapytać, czy ma znaczenie, do którego pinu kontrolera jest podpięte wejście sterujące wyborem karty SD ? Korzystam z kodu podanego w helpie - zamieniłem tylko PortB.4 na PortD.6 i cały czas mam aktywną kartę SD, co oczywiście skutkuje zablokowanie kontrolera. Jako, że nie działa mi to razem z innymi funkcjami, więc próbuję...
Pokwapiłem się przetłumaczyć fragment ze strony 65 manuala ATMEGA8 dotyczący przerwań na pinie INT0. Wygląda on następoująco: • Bit 6 – INT0: External Interrupt Request 0 Enable When the INT0 bit is set (one) and the I-bit in the Status Register (SREG) is set (one), the external pin interrupt is enabled. The Interrupt Sense Control0 bits...
Poniżej obiecany schemat. https://obrazki.elektroda.pl/1485483000_... Narazie nie ma jeszcze tranzystora T1 i wejścia 'Światło'. Do testów jest TxD. Nie ma też jeszcze optotriaka, jest tylko dioda LED1. A tu biblioteka USART. [syntax=c]/* Software ("bit-bang") UART Transmitter (8 data bits, 1 stop bit, no parity) for Attiny24A/44A/84A...
Witam , mam nadzieję iż nie zanudziłem bez reszty.. W zestawieniu z moimi "dokonaniami asm." kolega michalko12, jest najbliższy temu co ja kiedyś robiłem . Oto wersja asm z przełącznikiem kompilacji aby kompilować jako samodzielny plik - kto chce ->ten może :D ( ta wersja to 16-timerów, 16-nasto bitowych, każdy cztery tryby konfiguracji, oczywiście...
Próbuje uruchomić przerwania: vector.c wygląda tak [syntax=c]static void __Default_Handler(void) __attribute__ ((interrupt)); static void __Default_Handler(void) { while (1); } /* +=======================================... | assign all unhandled interrupts to the default handler +=======================================...
Witam ponownie, Poszedłem o krok dalej i moim planem jest podłączenie każdego z czterech wtryskiwaczy do osobnego pinu Arduino Uno/Nano z Atmega 328p. Pozwoliło mi to na skonstruowanie programu aby sterować każdym wtryskiwaczem z osobna z tą samą częstotliwością i wypełnieniem, ale sygnał do ich wysterowania jest przesunięty około 90° (problem z rozdzielczością...
(at)sulfur Dopiero teraz znalazłem czas żeby dalej zająć się CANem. Ustawiłem tak jak mówiłeś i dalej nic. Nie mam pomysłu co sprawdzić . Tak jak wcześniej wspomniałem mam przejściówkę USB/CAN za pomocą której próbuję przetestować CANa. Program do obsługi tej przejściówki w ustawieniach transmisji wygląda następująco : http://obrazki.elektroda.pl/8802608800_1...
Pewnie masz racje, chyba zainstaluję Windowsa i jakieś dedykowane narzędzie Dodano po 2 pin 13 zawsze stan wysoki 2.9 V przed i po odwróceniem bitów
Dzięki, zasadę pomiaru znam, ale tu chodzi o to żeby zrobić na tym konkretnym procku. Ten konkretny procek jest wypasiony do tego celu jak mało który. Pomijając timery i komparatory ma CLC, interrupt on change na wszystkich pinach. A do tego zadania wystarczy najprostszy. Więc w czym problem? Albert
Nic to nie zmieniło. HandleEncoder jedynie sprawdza czy zmienna została zmieniona, nic tam nie wpływa na samo działanie interrupt'a. ponadto w Encoder.h obie funkcje są używane wielokrotnie więc to kiedy ja ich użyje i tak raczej zostanie nadpisane. Oto zawartość Encoder.h: [syntax=c]/* Encoder Library, for measuring quadrature encoded signals * http://www.pjrc.com/teensy/td_libs_Encod...
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...
https://obrazki.elektroda.pl/3153730500_... Witajcie moi drodzy W tym temacie najpierw szczegółowo pokażę wnętrze drukarki HP Deskjet D1360 , a potem przedstawię jak można wykorzystać jej części z Arduino. Określę pinout enkodera ze środka, napiszę kod pozwalający określić pozycję karetki dzięki użyciu enkodera, oraz też oczywiście...
Witam. Znalazłem stary (z 2012 roku) ale dość fajny mały projekcik oparty na Arduino Pro Mini, wyświetlacz OLED 128x64 oraz moduł GPS. Całość ogólnie prosta w połączeniu, autor udostępnił soft. Z racji tego, że był robiony w mocno starej wersji Arduino, aby w ogóle się skompilował, była potrzebna zmiana w jednym z plików (data.h) przestarzałego polecenia...
Kiedyś umieściłem na obecnie niedostępnej stronie and.elektroda.eu materiał o dekodowaniu sygnału DCF. Urządzenie potrzebne było w urządzeniu, które wymagało synchronizacji czasu w pomieszczeniu gdzie wyprowadzenie anteny zewnętrznej do GPS było utrudnione. Poniżej umieszczam treść oryginalnego materiału, który może być pomocny przy budowaniu urządzeń...
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 wszystkich. Od dłuższego czasu próbuję uruchomić w PIC16F1578 3x PWMa. Przeszukałem sporo materiałów, tutorialów i nadal to u mnie nie chodzi, przerobiłem sporo kodu i niepowodzenie za każdym razem. Może ktoś obeznany spoglądnie na kod i doradzi gdzie leży błąd. Nadmienię, że jeśli wyjście wysteruje do { LATCbits.LATC3= 1; } while(0) to działa...
change section change language browser change
delphi uszkodzić impedancja głośników amplitunera katalizator emulator
krups napełnianie krups napełnianie
Migająca dioda "Waschen" w pralce Miele - przyczyny Home Assistant: Tworzenie przełącznika trójstanowego