https://obrazki.elektroda.pl/3221612800_... Witajcie moi drodzy. Zapraszam na relację z postępów prac nad otwartym firmware dla BK7231T. Temat ten napisany będzie w formie tutoriala, przedstawię tu krok po kroku jak opracowałem własny, wieloplatformowy (działający na Windowsie i BK7231T) mini-serwer HTTP, system konfiguracji pinów...
Jeśli masz kod, który odnajduje liczbę, to w prosty sposób możesz przerobić go na taki, który zlicza ilość wystąpień liczby spełniającej dane warunki, prawda? Wystarczy zamiast zwracać wartość (return) - inkrementować licznik (licznik++). Po takiej inkrementacji wystarczy tylko sprawdzić stan licznika i przerwać na interesującej Cię jego wartości (if...
1. powinieneś zamiast SIGNAL(SIG_UART_RECV) zastosować makro ISR( _vect) 2. przerwanie to nie zwykła funkcja którą od tak sobie można przerwać prze break albo return 3.uart_rx_buffer[uart_rx_len] = 0; tu powinien być NULL('\0'), a nie zero 4.nie rozumiem Twojego sposobu wykorzystania flag spróbuj uart_rx_complete = 1; i uart_rx_complete = 0;
Napisz tak swoje podprogramy by były w nich powtarzalne pętle, wtedy można użyć poleceń break (dla pętli) i return (dla całej funkcji) by ją przerwać gdy przycisk zostanie wciśnięty: if (digitalRead(A2) == 0) return;. Można to wstawiać dowolnie często, ale jak odpowiednio napiszesz funkcję (podprogram) z millis to ona może działać cały czas "równolegle"...
Ja bym widział dwie możliwości, w obydwu z posortowaną tablicą pierwszą: 1. w pętli for... po pierwszej tablicy, odejmował od jej i-tego elementu szukany punkt i obliczał wartość bezwzględną tej różnicy. Do tego zapamiętać poprzedni wynik, a kiedy bieżący wynik będzie większy od zapamiętanego, przerwać iterację i zwrócić poprzedni element. 2. Jeżeli...
Witam. Podłączę się do zamkniętego tematu: https://www.elektroda.pl/rtvforum/topic3... Jestem w takiej samej sytuacji jak brinktomasz22. 1. Początkujący ... albo bardziej ... 2. Zgrzewarka z projekt: https://majsterkowo.pl/zgrzewarka-do-ogn... Również zależy mi na tym, aby przycisk chwilowy zadziałał tylko raz...
Czy po wciśnięciu przycisku program ma wykonywać w kółko wybraną sekwencję? Pewne tak, a wtedy: jak w trakcie wykonywania sekwencji program ma reagować na wciśnięcie przycisku? Ma dokończyć wykonywaną sekwencję, czy ją przerwać? Jeśli program ma rozpoznawać wciśnięcie przycisku w czasie wykonywania sekwencji, to zamiast _delay_ms() trzeba wstawić własną...
Jak w czystym C (AVR GCC) wyglądała by funkcja millis() ?, a może pokaż też 2 podejście (listing), gdzie milisekundy to zmienna globalna np millis. Wykorzystaj timer do przerwać dostępny na każdym AVR. W AVR GCC, funkcja podobna do `millis()` z Arduino, która zwraca liczbę milisekund od startu programu, może być zaimplementowana z wykorzystaniem timera...
Return dałem tylko po to aby przerwać procedure gdy pierwszy if jest prawdą
mam taką funkcję: [syntax=cpp] node *count::preorder_search(list_element *search_node, int *id_node) { if(search_node == NULL) { return NULL; } else { node *tmp_node = (node*)(search_node->return_data_element... if(*tmp_node->get_id() == *id_node) { return tmp_node; } preorder_search(tmp_node->get_edge_list(...
[syntax=vbnet] ...... Do Debounce S1 , 0 , Pr1 ,Sub Loop End ' koniec pętli Pr1: Waitms 100 Serwo(1) =150 Waitms 150 Serwo(2)=250 Waitms 200 Serwo(2)=50 Waitms 250 Serwo(1)=50 Wait 1 Serwo(1)=150 Waitms 100 Serwo(1)=50 Wait 1 Serwo(1)=150 Waitms 100 Serwo(1)=50 Return [/syntax] Przy takim kodzie serwa działają jak bym chciał tylko procesor wykonuje...
Dobry wieczór. Przepraszam za tak dużą zwłokę, ale ostatnio miałem zakuwanie na egzaminy szkoleniowe do pracy i nie miałem kompletnie czasu by myśleć o tym:( Musiałbyś pokazać przykład swojego programu. Najpewinej efekty o któych piszesz wynikają z tego, że nie korzystasz z peryferii mikrokontrolera - m.in. timerów, przerwać itd. A na siłę starasz się...
Witam. Mam program, który działa w pętli DO..LOOP typu: DO ... IF warunek THEN procedura ... LOOP przerwanie: ... return sub procedura ... end sub Procedura wywołana w pętli głównej ma opóźnienia na WAITMS. Chciałbym przy pomocy przerwania (przycisk) zrezygnować w dowolnym momencie z wykonywania 'procedury' i wyjść z jej obsługi do pierwszej instrukcji...
(at)tadzik85 - jak dla mnie SPLa mogłoby by w ogóle nie być :} Niemniej jednak wydaje mi się to dziwaczne, że pliki nagłówkowe z nazwami rejestrów - dla tego samego mikrokontrolera - są różne, w różnych bibliotekach... Jak zaczynałem z STMami to wszędzie królował SPL. Trochę mi się nie uśmiecha zabawa w porównywanie plików nagłówkowych... ale coś czuję,...
??? tak [syntax=json] function scroll() { var startTimeUTC = Date.now(); scrollBy(0, 1); if(scrollY >= document.documentElement.scrollHeight - innerHeight) clearInterval(scrollInterval); if (startTimeUTC + 5 * 60 * 1000 < Date.now()) return ; } var scrollInterval = setInterval(scroll, 4); [/syntax] bo chyba co nie działa.. nie zatrzymuje się
Witam, proszę o pomoc w następującym problemie. Uproszczony przeklejony program w bascom działa w ten sposób że po przesłaniu określonych liter przez rs zapala RGB ledy w odopowiedni sposób. Przerwanie działa dobrze. Natomiast chodzi o procedure "zmieniaj" która to wywołana w przerwaniu działa, ale przerwanie nie powoduje wyjścia z niej. Musi wykonać...
Witam mam mały problem z projektem w c++. Chcę napisać prostą aplikację która zarządza kolekcją danych o osobach. Do tej pory udało mi się stworzyć coś takiego [syntax=c]#include <vector> #include <string> #include <conio.h> using namespace std; class czlowiek { public: string lp; string imie; string nazwisko; string numer; czlowiek(string...
Witam. Bardzo bym prosił o przykładowy program bo próbowałem już to wykorzystać, ale nie wiedziałem jak. Wiem że jest taka składnia: try { } catch ( <k1> ) { } catch ( <k2> ) { } catch ( ... ) { } Czy muszę stosować klasy aby to działało? A co do wyniku 1.#INF wiem że jest to...
Nie używam przerwań bo na bieżąco chciałem znać co kiedy przychodzi. Timer0 używam bo ostatecznie ten będzie wolny a w AtMega8 tylko przepełnienie Timer0 jest dostępne, nie ma CTC dla T0. Chyba zapomniałem o tym wspomnieć ale transmisja jest HalfDuplex po tej samej linii danych. Cały kod testowy wygląda tak. Wiem ze bez formatowania, nie wiem jak jest...
Witam Mam oto taki kod: $crystal = 8000000 Config Debounce = 45 Dim A As Byte Dim B As Byte Dim C As Byte Dim D As Byte Dim E As Byte Dim S As Integer B = 1 C = 1 D = 5 E = 5 Config Portc = &B10011001 Portc = &B01111111 Do If Pinc.5 = 0 Then Gosub Bbb Else Gosub Xxx Loop Xxx: If Pinc.6 = 0 Then Gosub Ttt Else Gosub Ppp Return Ttt: Portc.0 = 0 For A...
Albo nie doczytałeś, albo (jak zwykle(!)) - nie zrozumiałes całości fragmentu... Przeciez pisałem w twoim języku, ze nie chodzi o sam odczyt, lecz o funkcję millis(). Raczej Ty nie doczytałes w funkcji milis nie za bardzo jest co przerwać a wyglada ona tak: [syntax=c]unsigned long millis() { unsigned long m; uint8_t oldSREG = SREG; // disable interrupts...
Osobiście używam instrukcji CLI i SEI w głównej pętli programu gdy potrzebuję mieć coś 'ekskluzywnie' i to wystarcza. Trzeba tylko pamiętać że podczas wyłączonch przerwań nowe zdarzenia 'nie przychodzą' dopóki ich nie włączymy, ale jeśli jakieś się 'przydarzy w międzyczasie' to zostanie obsłużone zaraz po włączeniu przerwań. Ważna informacja - podczas...
Kolejne pytanie. Wiadomo, że czasem przy obsłudze układów peryferyjnych trzeba na coś czekać. Np na flagę: [syntax=c] while(!(I2C1->SR1 & I2C_SR1_ADDR)); [/syntax] Jeżeli coś będzie nie tak z urządzeniem to może się zdarzyć, że ten while się po prostu nie skończy. Kod powinien być tak przygotowany aby po określonym timeoucie przerwać działanie funkcji....
a nie mogę bezpośrednio w przerwaniu zamieścić kod do wykonania ? czy musi być skok do innego miejsca programu ? wiem, że tylko niektóre mają priorytety a ja się pytam ogólnie jak wygląda system przerwać w PIC. np. [syntax=c] #pragma code highVector=0x08 void HighVector (void) { //chyba przed skokiem mam sprawdzić flagę przerwania ? _asm goto MyHighISR...
[Bascom]Witam. Natrafiłem na pewien problem. Chciałem by po otrzymaniu ramki 10 01 0A 01 otrzymał zwrot w postaci "dana 1" a wysyłając ramkę 10 01 0A 02 odpowiedz "dana 2" Problem wygląda następująco: - nie za każdym wysłaniem jest reakcja - odpowiedz na wysłane dane - odpowiedz nie przychodzi raz tylko w koło i nie można tego przerwać Dodatkowo powiedzmy...
... i jest tak samo ;/ Bo nie słuchasz o czym mówię :( Potestuj poniższe - skrobnąłem dla Ciebie ;) : '$map $regfile = "m32def.dat" '$crystal = 11059200 'ATMega32 adres rej SPL+&H20 Const Lowsp = &H5D Dim A As Byte , Lab_adr As Word Dim Alow As Byte At Lab_adr Overlay , Ahi As Byte At Lab_adr + 1 Overlay Dim Tspl As Byte On Int0 Int0_intr...
Jeśli tylko uC ma wbudowany sprzętowy moduł TWI czyli odpowiednik I2C to warto z niego korzystać. Wiele zależy od części kodu których nie zamieściłeś. Sprzetowe TWI jest o tyle lepsze że nie przeszkadzają mu tak bardzo przerwania z innych źródeł. Kiedy korzystasz ze software`owego I2C to niestety, ale chyba każde przerwanie potrafi przerwać te transmisję....
Witam, Próbuję napisać prostą klasę (DBConnector), która będzie odpowiedzialna za przesyłanie danych do bazy danych(mysql). Klasa tworzy osobny wątek w którym co jakiś czas odbywa się operacja `INSERT` zbuforowanych danych to bazy. Wszystko śmiga pięknie poza funkcją "disconnect". Funkcja ta jest wywoływana z innego wątku i ma za zadanie przerwać połączenie...
A tak wracając do początku, czy przez przypadek fragment bascomowego help'a (przykład z $serialinput), nie odpowiada na pierwszy post? ldi R24, 13 'fake enter so INPUT will end '---------------------------------------... 'name : $serialinput.bas 'copyright : (c) 1995-2005, MCS Electronics 'purpose...
Napisałem krótki program w win-avr. #include <avr/io.h> #include <stdio.h> #include "rs.h" int klawisz; int main (void) { rsconfig(); fdevopen(rsput,rsget,0); while(1) { if(scanf("%i",&kla... printf("Wcisnieto %i \r",klawisz); }...
Witam wszystkich Elektrodowiczów! Otóż muszę użyć układu DS18B20 do pomiaru temperatury. Sięgnąłem po niego, gdyż kiedyś go używałem i działało wszystko OK ;) - jednak nie tym razem :/. Chcę wykonać po prostu zwykłą pojedynczą konwersję temperatury i odczytać ją ze ScratchPada. Wykonuję: 1. Wysyłam Presence Pulse do DS18B20. 2. Otrzymuję "1". (zapala...
Witam. Napisałem program z Symfonii C++ Standard, wyd. 3 z 2008r, ćwiczenie XXIII/218, w skrócie: mamy napisać funkcję, która do końca stringu będącego w jednej tablicy dołączy string będący w innej tablicy, funkcja powinna przerwać w przypadku zapełnienia całej tablicy. Jak zwykle będę wdzięczny za uwagi, spostrzeżenia, komentarze i wskazówki. Ćwiczenie...
Dżyszla, dziękuję za odpowiedź. 1. Nie ta pętla - eof może wystąpić już na początku (pusty plik), nieprawdaż? Ale to akurat tak na marginesie. Zmieniłem z do while na if (uchwyt.eof()!=1). 2. Nie możesz lecieć aż do indeksu, gdy g osiąga koniec ciągu, gdyż próbujesz badać znaki poza ciągiem (g+3). Musisz szybciej przerwać pętlę for, aby to tuż za ostatnim...
Witam! Mam problem z jednoczesnym użyciem Timera1 i funkcji RC5 która jak wiadomo dziął na Timerze0 (kod napisany na ATTINY2313) Jeśli rozdzielę kod na dwa czyli: 1. Wykorzystuje timer1 do sterowania serwem - wszystko działa (bez funkcji pilota na RC5) 2. Jeśli zaprogramuje attiny2313 aby używało tylko funkcji RC5 (pilota) i przy okazji korzystam z...
Wskazówki : [syntax=basic4gl] Config Serialin = Buffered , Size = 254 , Bytematch = All Enable Serial Enable Interrupts Serial0bytereceived: Return [/syntax]
Czyli jak ma to wyglądać?? Bo chce by program odczytał z pliku i przepisał wszystko do memo1 . Nie wiem czy dobrze poza tym to robie . słowo kluczowe wszystko nie wiem po co się bawić w fstream skoro i tak chcesz przepisać wszystko Memo1->Lines->LoadFromFile(&qu... bądź jeśli plik jest w tym samym katalogu...
https://obrazki.elektroda.pl/4950580000_... Witajcie moi drodzy W tym temacie poznamy podstawy przerwań i timerów w PIC18F2550 . Na początek będzie krótki wstęp teoretyczny, a potem wszystko przerobimy dokładnie na praktycznych przykładach. Do lektury tematu przyda się ogólna wiedza na temat przerwań i programowania w C, choćby taka...
Przerwanie czyli to co masz pomięrzy Sygnal1: a Return. To raczej zajmie więcej cykli ;p Mniej więcej trzeba zrobić tak jak piszesz.
zamknij petle glowna do nop idle loop end przerwanie: ........ ........ return end
DDRD|=(_BV(PB5) | _BV(PB6) | _BV(PB7)); DDRD|=(_BV(PE3) | _BV(PE4) | _BV(PE5)); Widzisz tu subtelną różnicę...? Działające wstawki dla pwm na Tim1 i Tim2: [syntax=c]void Timer0Init(void) { DDRB|=(1<<4); TCCR0 |= (1<<WGM01)|(1<<WGM00)|(1<... OCR0=0; } void Timer2Init(void) {...
Konfigurujesz przerwanie zewnętrzne: dim flaga as bit config portd.4 = output 'przykładowo na ten pin reset portd.4 Config Int0 = Rising Potem On Int0 przerwanie Enable Int0 Enable Interrupts gdzies w pętli: If flaga = 1 then set portd.4 = 1 waitms 10 reset portd.4 reset flaga end if Za petlą Przerwanie: set flaga Return To najprostszy prymitywny...
Gdy procesor jest w trakcie wykonywania procedury przerwania, następne przerwanie nie będzie przyjęte , gdyż procesor (nie kompilator!) zeruję flagę globalnego zezwolenia na przerwania. Tak samo flaga bieżącego przerwania (tego, którego procedura obsługi jest wykonywana) zostaje automatycznie wyzerowana. Po zakończeniu przerwania flaga globalnego zezwolenia...
Wracajac do tematu czy moglbym prosic przynajmniej o pseudo kod obslugi przykladowo drgania w przyciskach , wysterowania przekaznika np przez 2s oraz komunikacji 1wire jednym timerem (atmega8 ma az 2 timery wiec pewnie szybko skoncza sie jego mozliwosci chcac napisac kod bez zatrzymywania) Cały dowcip polega na tym że z tego 8 bitowego timera możesz...
Do sterowania użyjmy portu B. Przycisk do zmiany efektów to pin D.2, będzie działać na przerwaniu. Potencjometr to pin C.0, przetwornik. No to prawie że gotowiec: $regfile = "m8def.dat" $crystal = 8000000 Config Portb = Output 'Wszystkie linie portu D jako wyjściowe Dim Opoznienie As Word 'opóźnienie między przełączeniami, liczba do 65535...
marcinek.p - to gotowiec dla ciebie, nie mam jak go przetestować ale jestem pewien że zadziała jak trzeba. Masz tu przerwanie, miganie led i zliczanie migniec z incr Mozna to wszystko wkleic do przerwania ale dobra zasada nakazuje w przerwaniach umieszczać jak najmniej kodu. [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 1000000 $hwstack = 32 $swstack...
no przeca pisze Ci kompilator że powinieneś napisać int ISR... a na końcu return 0; :-)
$regfile = "m8def.dat" $crystal = 8000000 Enable Urxc On Urxc Rs232 Enable Interrupts Do 'Instrukcje w petli Loop End Rs232: 'tutaj zostalo zgloszone przerwanie w Udr jest aktualna przeslana liczba Print Udr Return
Nie wiem czy odbierasz tam jakieś komendy. Wywal te Wait`y. Tutaj po zmianie stanu do zmiennej Blokada zostanie wpisana wartość do odliczenia w dół. Jeśli nastąpi następne przerwanie to w zależności od tego czy minął już czas blokady, to albo zostanie przedłużony jej czas bo ktoś trzyma przycisk dłużej albo.. :D [syntax=basic4gl]Dim Blokada As Word...
Absolutnie żadne Start Timer0 nie jest tu potrzebne. Wystarczy, że tak będzie skonfigurowane przerwanie: [syntax=basic4gl]Config Timer0 = Timer , Prescale = 256 On Timer0 Sekunda Const Przerwanie = 131 Counter0=Przerwanie Enable Timer0 Enable Interrupts . . . end Sekunda: Counter0=Counter0+131 . . . Return [/syntax] ...i unikaj jak ognia "drukowania"...
Wykona się Return z "Obslugaprzerwania" które wcale nie będzie RETI tylko RET, a puźniej wykona się Return z "Przerwanie" które to jest RETI. Czyli wszystko jest ok.
return remote return patch carriage return
transfer plików drugi komputer radio kradzież wykryto przekroczenie limitu czasu
generator sygnału stereo hotpoint ariston zmywarka
Case 850 – pojemność układu chłodzenia spycharki, modele G H M L XLT Mazda CX-5 nie rozpoznaje pendrive'a - przyczyny i rozwiązania