Z tego, co wywnioskowałem, to Vaillant nie doczekał się fabrycznego regulatora pokojowego/pogodowego, więc jest skazany na pracę z własnego algorytmu i z widzimisię nastaw pokrętła przez użytkownika. Źle wywnioskowałeś, Vaillant miał swoje regulatory pokojowe pod styki 7-8-9 które miały swój algorytm i sterowały kotłem ale moim zdaniem te algorytmy...
Opis działania telefonu i zestawiania połączenia Do telefonu abonenta dopływa prąd stały o napięciu zwykle ok. 50V. Na prąd stały mogą być nałożone różne sygnały informujące abonenta o stanie połączenia oraz sygnał mowy. Do wywołania (prąd dzwonienia) wysyłany jest prąd o częstotliwości 25Hz i amplitudzie 90-150V. W podstawowym typie aparatu (bez elektroniki)...
Tryb jest 4 bitowy(chyba),bo korzystam z programu powyżej kolegi sp3uqw piny ma mam podłączone nastepująco PD0->D0.....PD7->D7(atmega8) to chyba nie nie przeszkadza że mam podłączone wszystkie 8 pinów w trybie 4 bitowym?? a mój program wygląda tak: #include <avr/io.h> #include "funkcje.c" #define RS_ON sbi(DDRC,PC5);sbi(PORTC,PC5) #define...
Pytanie co będzie powodowało załączenie i wyłączenie kotła? histereza i/lub blokada czasowa palnika ustawiana w menu kotła co daje czas na ostygnięcie wody na kotle by mogło dojść do ponownego cyklu grzania. Ewentualnie może sterować regulator ON/OFF pod warunkiem, że pojedynczy czas pracy palnika będzie dłuższy niż czas potrzebny do osiągnięcia zadanej...
Witam, chciałem stworzyć programik, który przy pomocy dwóch potencjometrów pozwoli mi uzyskać regulację czasu świecenia i wygaszenia diody. I... nie działa :( Można prosić o pomoc i jakieś rady? Poniżej kod: [syntax=c] int diodaPin = 13; int potPin0 = 0; // numer wejścia analogowego 0 int potPin1 = 1; // numer wejścia analogowego 1 int pot0; // zmienna...
Mozemy pomoc w pisaniu, ale z helpem Bascoma powienienes dac rade, obslyga lcd ->gotwa funkcja -klawisze dasz rade, zmieniasz jedynie zmienne - odmierzanie czasu sporbuj na timer1 co np sekunde bedzie zwiekszal Ci zmienna Czas, w petli gl musisz kontrolowac by wartosc nie przekroczyla zakresu - prostym if'em sprawdzasz wartosc tej zmiennej Czas z czasem...
Pytanie jak w temacie. Mam zmienną typu string. W niej zapisane np: Tekst = "Jakis tam tekst" For I = 0 To Len(Tekst) Znak = .... Next I Chciałbym wyciągać kolejne pojedyncze znaki z ich ciągu (wyświetlacz matrycowy), ale nie znalazłem funkcji która mi to wykona. Zmienna Tekst jest definiowana w głównej pęli programu. Gdyby była definiowana poza nią...
Szukałem odpowiedzi na to pytanie, lecz nie znalazłem, wiec postanowiłem rozpocząć nowy temat. Otóż mam problem z liczeniem kanałów DMX, a dokładnie z timerem0 którego używam w tym celu. Mikrokontroler to jak w temacie ATmega8, częstotliwość taktowania 8 MHz, ustawienia sprzętowego UART 250 000 baud. Według specyfikacji DMX najpewniej rozpoznać nowy...
No może wystarczy jedna zmienna która będzie liczona w dół - o tym za chwilę. Musimy także ustalić progowe wartości. - błysk nie może być krótszy niż xxxx - błysk nie może być dłuższy niż yyyy - przerwa w świeceniu LED nie może być krótsza niż ...ssss - przerwa w świeceniu LED nie może być dłuższa niż ...tttt Skoro 9259 przerwań to 1 sekunda, to wyznacz...
Prawdopodobnie kod nadajnika masz błędny. Lepiej zrobić tę funkcję na timerach. ;) Będzie ładniej i stabilniej. Funkcje delay mają dużą tolerację, za dużą. I to, że w programie ustawisz F_CPU jako 16900000 nie znaczy, że procesor działa z takim taktowaniem ;) Musisz mieć taki kwarc. Zmienna ta jest tylko pomocna przy niektórych obliczeniach dla kompilatora...
Witam, widzę, że problem chyba jeszcze nie został rozwiązany mimo, że wszystkie potrzebne informacje już się przewinęły. Zatem pozwoliłem sobie zebrać to w jakąś całość: 1. komunikacja przez UART wydaje się najprostszym rozwiązaniem, 2. dane umieszczamy w strukturze, 3. aby przygotować dane do wysłania nie stosujemy żadnych skomplikowanych przekształceń...
Trochę więcej czasu niż myślałem zajęło mi przerobienie kursu FORBOT, sporo tez czasu straciłem na trawieniu płytek i ich lutowaniu, ale nieważne wszystko wyszło ok i sporo wiedzy sobie przyswoiłem, także wczoraj zacząłem czytać temat timerów http://diycenter.acid19.linuxpl.com/read... podany mi przez Tomq no i trzeba powiedzieć,...
Po prostu odpal timer (procesora) na największej możliwej częstotliwości i próbkuj sygnał na jakimś pinie, oczywiście w tym samym czasie inkrementując jakąś zmienną. Wówczas po odebraniu najlepiej 3 sygnałów wyliczasz długość impulsu (korzystając z obliczeń zmiennej którą inkrementujesz) :) Np: timer działa z częstotliwością 1Hz wiec jezeli zmienna...
Przepraszam ze post pod postem, ale chce cos dodac dla potomnych :) Gotowy kodzik do operowania dioda rgb z uzyciem pwm wraz z #include <avr/io.h> // dostęp do rejestrów #include <util/delay.h> // zawiera definicję _delay_loop2 #define przerwa 5 int main(void) // program główny { uint8_t pwm=180; // zmienna zawiarająca wartość...
/* * grr.c * * Created on: 2009-08-24 * Author: kayou */ #include <avr/io.h> // dostêp do rejestrów #include <util/delay.h> // zawiera definicjê _delay_loop2 #define przerwa 5 int main(void) // program g³ówny { uint8_t pwm=180; // zmienna zawiaraj¹ca wartoœæ wype³nienia DDRD = 0x80;...
Taka już rola MsgBox'a , żeby zatrzymywał i czekał na decyzję użytkownika. zobacz na kod: chciałem to do tego... For animacja = 1 To 5 Step 1 przerwa = 1 start = Timer Do While Timer < start + przerwa DoEvents Loop With Range("a" & wrs).Interior .ColorIndex = 2 End With If animacja = 3 Then End If start = Timer Do While Timer...
Witam. Chciałem zrobić sterownik wzmacniacza audio na bazie kitu AVT2829. Szczególnie zależy mi na uczeniu się dowolnego pilota. Zrobiłem płytkę przystosowałem do niej program, użyłem większego procesora (atmega8) no i program działa ale strasznie ułomnie. Procedura zapamiętania kodów z pilota przebiega jak należy ale już samo działanie jest strasznie...
Witam! Głowie się z tym nie wiem którą godzinę i nie mogę dojść czemu tak się dzieje. Mam tego typu program: #include <avr/io.h> #include <avr/interrupt.h> float m_sekundy_wtrysk=0, m_sekundy_obr=0, wynik2=0; uint8_t i=0, k=0, znacznik=0; float wynik=0; ISR(INT1_vect){ //przerwanie od złącza PD3 (INT1) TCCR1B |= _BV(CS10);...
Jednoczesny odczyt wszystkich 4 linii od tego bym zaczął, potem sprawdzanie pojedyńczo tych bitów i zwiększanie zmiennych czas1,czas2,czas3,czas4, jednocześnie zerujemy odpowiedni bit zmiennej 'gotowe 'xxxx1111' jeśli zakończy się '1' na linii. Na końcu cyklu sprawdzamy czy zmienna 'gotowe' jest zerem jeśli tak (były już 4 impulsy), to wychodzimy z...
Witam Czy ten program ma prawo działać na ATtiny2313 z wewnętrznym oscylatorem RC o wartości 8MHz jako sterownik silnika bipolarnego, gdyż po podłączeniu do l293d sterownik się strasznie grzeje a silnik delikatnie przekręci się o jeden krok a następnie przerwa i jeden krok do tyłu. [syntax=c]/* #include <avr/io.h> #include <avr/interrupt.h>...
Do If pinc.1 = 1 Then ' jezeli jeden 1 to impuls if Zezwolenie = 0 then Y(C) = X 'zapisz czas na pozycji C incr c ' nastepna pozycja Zezwolenie = 1'przelacz zezwolenie na zerowanie x end if end if if pinc.1 = 0 then if Zezwolenie = 1 then X = 0 ' zeruj licznik 1ms odczinkow czasu Zezwolenie = 0 ' przelacz zezwolenie na zapis y end if end if...
Występuje co najmniej 4 rodzaje kopułek i palców rozdzielacza do tego modelu. Nie wiem czy mam odpowiednią kombinację palec - kopułka. Przerwa między palcem a kopułką wynosi ok. 1,5 mm to 2 razy więcej niż na świecy. I stąd właśnie moje pytanie. Twój problem rzeczywiście jest dziwny. Może napisz przede wszystkim, czy samochód odpala? Palec rozdzielacza...
Po tych logach mogę powiedzieć tylko tyle, że turbo przeładowuje i to na maksa ale nie z winy źle wyregulowanej sztangi skoro mechanik widzi jej ruch w dół i górę (skok około 1,5 cm) na biegu jałowym i wolnych obrotach zdejmując i zakładając na gruchę wężyk podciśnienia. Zmienna geometria ma tendencję do zacinania się w pozycji maksymalnego doładowania...
Witam,dzięki za podpowiedzi.Dzisiaj nie za dużo mogłem zrobić pomiarów, w trakcie uszkodził mi się oscyloskop,ale udało się naprawić,jednak później przerwa w dostawie prądu uniemożliwiła dalsze pomiary.Więc tak jak Wojtekx sugerował ,Impuls SC na u4647 jest poprawny,również impuls H w układzie pomiarowym prądu jest poprawny.Wyjście pin 20 TEA2029CV-impulsy...
Witam. Znalazłem kiedyś, zdaje się że nawet na elektrodzie, program napisany dla AT89C2051 którego zadaniem było sterowanie czasowe wycieraczkami samochodowymi. ' Przerywacz pracy wycieraczek o programowanym czasie ' '$sim $regfile = "89c2051.dat" $crystal = 12000000 Wajchain Alias P3.2 'Wejscie z dzwigni sterowania wycieraczka Wajcha1in Alias...
Podałem link, jest tam plik PDF cały opis razem ze schematem i oprogramowaniem w wersji BASKOM kod źródła (czy jak to tam się fachowo nazywa Czy mam go przeżucić tutaj? ----------------------------------------... Umieszczam program. ' Przerywacz pracy wycieraczek o programowanym czasie ' '$sim $regfile = "89c2051.dat"...
Witam, przekopałem się przez wiele tutoriali, postów, wątków, i nie znalazłem rozwiązania, więc postanowiłem opisać własny problem. Mianowicie: mam podłączone do Atmegi8 dwa wyświetlacze 7seg multipleksowane, oraz termometr cyfrowy DS18B20. Chciałem aby zmierzona temperatura była wyświetlana na tych 7seg, oczywiście ze względu na dwa wyświetlacze jedynie...
Witam Szanownych kolegów. Nie dawno zacząłem przygode z programowaniem. Zapoznałem się z kursami na wkrętaku, oraz z kursem na Hobby Robot. Narazie wszystko opiera się na symulacji w proteusie, umiem już multipleksować cyfry na wyświetlaczu, lecz nie rozumiem funkcji bin2bcd, i nie umiem tego połączyć z następującym kodem tak, aby to jakoś działało....
Hej. Dzięki za pomoc. Działa trochę lepiej ale jednak dalej źle. Tym razem dane już się zmieniają w zależności od położenia drążka w nadajniku, ale druga zmienna zmienia się zawsze a jest zbyt mała żeby to była przerwa synchronizacyjna. No i nie wiem co to za dana na miejscu zerowym tablicy, w ogóle się nie zmienia. Jest niby ponad 8000 ale jak ustawie...
Witam i dziekuje za odpowiedzi. POprawilem moj kod nie jestem pewnien czy tak jak mial to na mysli Boski Dialer, ale chodzi trosze opornie ale chodzi. postaram sie to jakos dopracowac zeby bylo plynniejsze ale musze nad tym dluzej pomyslec . I mam jesce prosbe do Boski Dialer jesli to nie o takie rozwiazanie chodzilo rozwin swoja mysl zebym mogl to...
Oto ostatni moj kod, ktory probowalem zaimplementowac. To bylo na Mega8 z obsluga 1-wire - wycialem to. // Definicje dotyczace LCD #define RS 0 // wybor rejestru #define RW 1 // 1 - odczyt; 0 - zapis #define E 2 // sygnal zezwalajacy (enable) #define PORTLCD PORTA // port z podlaczanym LCD #define DDRLCD DDRA // port z podlaczanym LCD #define...
Pierwsza część programu Dodano po 8 no i druga się nie mieści, więc wrzuciłem do pliku tekstowego.
Witam Mam program budzika, który jako dodatkową atrakcję miał mieć możliwość mówienie czasu na żądanie i odtwarzanie oprócz buzzera utworu jako alarmu. Atmega steruje przez jedno SPI programowe układem MAX7219, a przez konwerter poziomów i drugie SPI programowe odtwarzaczem WTV020SD. O ile sam WVT020SD + PCF8563 ( wyjście CLK do INT1 ) działają dobrze,...
Zaprogramowalem procek. Oto spostrzezenia. Zegar odlicza poprawnie czas, ustawienia godziny dzialaja poprawnie. Wystapil natomiast problem z miganiem kropki oddzielajacej jednostki godizn od dziesiatek minut. Powinna ona zapalac sie na sekunde, a potem gasnac na sekunde. Jednak okazuje sie, ze w trakcie sekundy, w ktorej powinna sie swiecic, ona migocze....
Witam. Mam problem z symulatorem semafora. [syntax=c] /* Symulacja Semafora */ /* Krzysztof Bednarczyk (prog.) & Lukasz Domanski (elek.) */ /* uklad ATtiny13 1MHz */ /* * - faza wlaczona */ /* x - faza mrugania */ /* WLACZANIE BIBLIOTEK */ //#include <stdio.h> #define __AVR_ATtiny13__ 1 //#include <stdlib.h> // obsluga random #include...
Powiem tak. Kod się nie trzyma "kupy". Masz podefiniowane zmienne takie jak funkcje. Przykładowo: Temp - wiersz 23 i zmienna Temp - wiesz 33 Za - wiersz 24 i zmienna Za - wiersz 129 p.s. Umieść kod w znacznikach "syntax". Poniżej - kompilujący się kod: [syntax=basic4gl]$regfile = "m32def.dat" $crystal = 8000000 $hwstack = 200 $swstack = 200 $framesize...
Od dawna interesowało mnie wykonanie efektownego oświetlenia LED choinki. Jednak żeby efekty były satysfakcjonujące, każde światełko musiało by być sterowane niezależnie a nie tak jak w chińskich lampkach segmentami. Niestety, żeby każdą diodę sterować oddzielnie trzeba by całej sieci okablowania, zwłaszcza, że chciałem użyć diod wielokolorowych RGB....
A co sądzisz o kondensatorze? Przecież dla prądu stałego to tez przerwa, a zmienny czy przemienny płynie. Dlatego są wzmacniacze o dużym wzmocnieniu i bardzo dużej rezystancji wejściowej.
One służą do filtrowania napięcia sin od zmiennego, wynika to z budowy układu pomiarowego. Kondensatory są takie same i ładują się napięciem stałym, przez co są przerwą dla obwodu stałego, a zwarciem dla zmiennego sin. Dławik natomiast jest zwarciem dla napięcia stałego a przerwa dla napięcia sin. Na takiej zasadzie działa ten filter.
Powinno być ok. Możesz też zastosować metodę drugą. Ale jeśli ta zmienna jest char nie ma sensu kombinować.
Potrzebuję pomocy w przerwaniu pętli while (linijka 146) założenie jest takie jeżeli BlutoothDane=s to ma wykonać tą pętle a jeżeli BlutoothDane=d to ma ją przerwać. problem jest taki, że nie przerywa pętli cały układ ma działać jako sterownik Led na bluetooth. Proszę o szybką pomoc. Masz tu kilka nieprawidłowości; Jakie znaczenie i zastosowanie ma...
1. Jak masz podłączony przycisk? Powineien być tak żeby zwierał pin procesora do masy. 2. if portd.0 = 0 then !!! 3. taki program Ci bedzie dziwnie dzialal bo jest cos takiego jak drgania stykow. Jezeli odczyt trafi akurat na moment ze styk sobie odskoczy to choc ty myslisz ze g wcisnales to nic sie nie zrobi. Wniosek: trzeba wytlumic rgania stykow....
narysuj sposób w jaki masz to połączone. Zakładam że znasz podstawy typu: tyrystor podpinamy na prąd zmienny
Do drasmen: jeżeli chcesz aby układ zadziałał musisz przestawić fuse bity na wew. generator np. 8MHz a do pinów gdzie podłączasz kwarc musisz wpiąć kwarc zegarkowy 32.768kHz. Program dla autora tematu: 'Program wykorzystujący przerwanie od timera0(8 bitowego) generowane co 8ms 'jeżeli przerwanie zostanie wywołane 125 razy, otrzymamy 1 sekundę...
Witam, ustawienie rejestru DDR i PORT na 0 daje wejścia pływające (ATmega8 nie ma rezystorów ściągających do masy, tylko podciągające do plusa). Tak jak jest teraz łapiesz kolego zakłócenia. Należałoby albo dodać zewnętrzne rezystory między przyciskami a masą lub zmienić położenie przycisków (między pinem a masą) i włączyć wbudowane rezystory. O volatile...
Prawdopodobnie źle używam zmiennych volatile przerwa. Zmienna ta jest chyba gubiona. Jeśli zamiast if (przerwa == 0) wpiszę jakąkolwiek inną wartość układ pobiera cały czas te 5 nA
(at)dawid.barracuda Pamiętaj o konieczności zapewnienia atomowości operacji na licznikOdebranychZnakow - zarówno podczas porównania tej zmiennej, jak i przypisania jej nowej wartości. Poza tym zamiast ją zerować na końcu odejmij od bieżącej wartości zmiennej, liczbę rzeczywiście wysłanych bajtów. Jeśli w międzyczasie coś zostanie odebrane, to wartość...
Niektóre z funkcji faktycznie zawierają pętlę oczekującą na zwolnienie magistrali: [syntax=c] while ( TWI_Transceiver_Busy() );[/syntax] Autorzy założyli, że można będzie użyć tej funkcji w dowolnym momencie, niestety powoduje to, że kiedy wywołamy funkcję, kiedy magistrala jest zajęta, to będzie ona czekała na zwolnienie magistrali, co wprowadza czasami...
Ale namgmatwałeś... Ciężko zrozumieć to co piszesz. Jeżeli masz zmienną globalną to wszelkie operacje na niej w dowolnym podprogramie (w tym także w obsłudze przerwań) będą widoczne we wszystkich innych podprogramach (róznież w main()) i nie musisz nic więcej robić. Może przykład: #include jakis.h //zmienne globalne unsigned int zmienna_globalna; void...
Zwarcie do plusa, to nie zwarcie , tylko przerwa - gdzieś nie kontakt. Przecież to czujnik zmienno-oporowy - brak oporu, to maksymalne napięcie widzi sterownik.
Chodzi o to że zmienna temp czyli tak naprawde wskaźnik do tablicy charów będzie żyła tylko w tej funkcji. To mi nie przeszkadza bo jak już przypisze jej wartość(wskaźnik) do mojej zmiennej wskaźnikowej to mam już globalnie adres do pierwszego elementu tablicy ze znakami. Nie wiem tylko jak długo ta tablica będzie zarezerwowana w pamięci. jeżeli wywolujesz...
Jeśli chcesz gotowego rozwiązania to napiszę jak sam robię takie systemy: Deklaruję pewną strukturę globalną, koniecznie volatile, w której umieszczam flagi w zależności od tego ile ich potrzebuję, np.: [syntax=c]volatile struct sZmienna { unsigned char Pomiar :1; unsigned char Timer :1; unsigned char Odswiez_LCD :1; //itd. }Zmienna;[/syntax] Następnie...
Ochrona przeciwporażeniowa będzie jak będzie zainstalowany kontroler napięcia zmiennego. Przy przerwie w PEN odłączy fazy. Takze zabezpieczy odbiorniki przed uszkodzeniem. A będzie on wystarczająco szybki, by odbiorniki nie uległy uszkodzeniom?
Normalna praca sterownika PLC polega na cyklicznym wykonywaniu: odczytu wejść, sekwencji kolejnych rozkazów składających się na program oraz ustawieniu wyjść. Wyobraź sobie taki ciąg rozkazów umieszczony w OB1: 1. A = 1 2. B = 2 3. CALL FC1 4. B = 1 5. A = 2 6. CALL FC1 Wewnątrz FC1 zawsze zmienna A <> B. Podprogram (FC1) jest wykonywany tylko...
W przerwaniu deklarujesz zmienna liczba, ktora przy inicjacji jest rowna 0. Jest jako static więc jest wyzerowana tylko podczas pierwszego uruchomienia, potem już się "nie zeruje". dodaj na końcu while(1);...nie sprawdzałem częstotliwości przerwań więc zakładam że są w porządku. int main(void){ DDRA=0xFF; // PORT A JAKO WYJSCIE TCCR0 |=...
Nie podoba mi się twoje rozwiązanie. Ja bym to zrobił tak - timer odmierzający takty w rytm podstawowego okresu PWM (czyli przerwania np. 1kHz). Teraz zamiast tych porównań z licznikami, wrzuć wartość licznika do rejestru compare register. Dzięki temu masz przerwanie po przepełnieniu timera (nowy okres) - w tym przerwaniu inicjujesz wysyłkę danych po...
dawid512 : ?. "CLI" blokuje wywoływanie przerwań, ale nijak nie przekłada sie na równoważność z wyjściem z funkcji. dreidel : Funkcji obsługi przerwania napisanej w C nie opuszcza się przez reti - wtedy tylko możesz spowodować przepełnienie stosu (na stosie zawsze są odkładane co najmniej 2 rejestry), zresztą powracasz nie do miejsca, w którym nastąpiło...
Powód jest bardzo prosty: zmniejszenie zmiennej w pamięci nie jest operacją atomową. Co prawda za każdym razem następuje odczytanie zmiennej, zmniejszenie jej a następnie zapis, to jeśli przerwanie wystąpi pomiędzy odczytem a zapisem, to utracisz zmianę dokonaną w przerwaniu. W przypadku gdy przerwanie i funkcja main konkurują o jeden zasób, musisz...
A, że tak głupio spytam przerwanie w ogóle jest wywoływane?
każda jest dla mnie cenna Może nie do końca na temat, ale: jeśli zmienna LicznikKonfiguracyjny jest globalna, to nie musisz jej przekazywać (jako parametru) każdej funkcji osobno. Każda z tych funkcji może się do niej (zmiennej globalnej) odwołać bezpośrednio. Zmiennych globalnych generalnie należy unikać. Np. w Twoim kodzie SredniaADC i WartoscADC...
Dawid.wielun tak na szybko napisane sprawdzanie przycisków lewego prawego i środkowego int mouse_click_check(void){ int i=0, bl=0, bl2=0, br=0, br2=0, bm=0, bm2=0;//left right middle while(zmienna globalna=0 przerywa sprawdzanie){ bl2=bl;bl=::GetKeyState(VK_L... br2=br;br=::GetKeyState(VK_R...
ADC robi 3 pomiary na jeden cykl obliczeniowy. Z tych 3 pomiarów wykorzystujesz tylko 1. Jeżeli nie są synchroniczne, to może się pojawić dodatkowa częstotliwość w obwodzie sterowania. To zależy od częstotliwości charakterystycznej obwodu wyjściowego, m.in. pojemności kondensatora filtrującego. Ciebie trochę ratuje regulator PI, który realizuje prosty...
Dla czystej rezystancji nie ma znaczenia stały czy zmienny. Jeżeli w obwodzie znajduje się kondensator lub cewka to wypadkowy opór nazywamy impedancją lub po polsku zawadą. Zawada obwodu zależy od częstotliwości (pulsacji) napięcia i oczywiście od parametrów elementów obwodu. Może jeszcze to - kondensator w obwodzie prądu stałego stanowi przerwę, a...
Jest to zmienna statyczna przypisanie zera następuje tylko przy 1 wywołaniu funkcji.
Dopisz "volatile".
Częstość załączania kotła jest funkcją jego mocy i głębokości jej modulacji,mocy odbieranej przez obiekt (a ta jest zmienna zależnie od temp zewnętrznej) i czasu przerwy między kolejnymi cyklami (jest, bywa na ogół) on też zmienny i zależny od temperatury wody grzewczej zadanej ręcznie lub wynikającej z automatyki pogodowej. 60 razy na dobę super wynik...
Albo stos, albo watchdog.
Czy po ustawieniu nr_trybu = 0 w przerwaniu nie powinieneś zerować timer_count ? Albert
Nie masz dostępu do zmiennej, czy po prostu odczyt zawsze zwraca tą samą wartość (efekt braku volatile przy deklarowaniu zmiennej używanej przez przerwanie)? Bez "volatile" kompilator zoptymalizuje odwołania do zmiennej "status" w funkcji main - zmienna nie jest nigdy odczytywana (kompilator nie uwzględnia tego, że może przyjść przerwanie - widzi tylko...
a co jest nie tak z pętlą while(1) bo nie mogę się dopatrzeć To, że jest pusta. Stan zmiennej flaga sprawdzasz tylko raz na początku programu, po czym zapętlasz go w pustej pętli. Poza tym sprawdzanie if(flaga=1) jest błędem, zapewne miało być if(flaga==1) - przeczytaj ostrzeżenia kompilatora generowane w czasie kompilacji.
Jakieś głupoty mi to pokazuje. Mam breakpoint-a ustawionego i po każdej próbce sprawdzam sobie wartość tego licznika Nie zatrzymuj wykonywania programu tylko użyj SWO (Serial Wire Viewer). Ustaw sobie: 1. W projekcje użycie tego pinu: https://obrazki.elektroda.pl/7797775900_... 2. W ustawiniach debugera włącz to i ustaw odpowiednio...
Rozumiem że coś w przerwaniu zrobić chcesz, ale ciekawe jak to sprawdzasz (tę dokładność) Może najpierw zwiększasz w kodzie zmienna a potem dopiero każesz ustawiac jakiś pin którym to mierzysz? Może na odwrót, najpierw pin a potem zwiekszanie zmiennej bo zwiększanie może się czasowo różnić w zależności od wartości.
Program skacze do przerwania co 50ms więc żeby odmierzyć 1s musi skoczyć 20 razy. Poprostu w programie jest zmienna która jest ładowana stałą 20 i odejmuje się w każdym przerwaniu o jeden. Jak dojdzie do zera to jest 1s i cykl się powtarza (znowu jest przypisywane 20). np: co 50ms w przerwaniu: if(zmienna){zmienna--;}... else { zmienna=CYCLE;...
zwinięty kabel dla prądu zmiennego stanowi przerwę(cewka) i będzie się grzał. Rozwinięty nie powinien robić problemów. Jeśli jest to normalny miedziany kabel to w twoim przypadku jest to zbieg okoliczności.
Zrób to w konwencji automatu - zmienna określające stan i duży switch (stan) w obsłudze przerwania z odpowiednim zachowaniem w każdym stanie. Na ogół wygodnie jest to zrobić przy stałej częstotliwości przerwań timera, odpowiadającej najkrótszemu odcinkowi czasu, który trzeba odmierzać lub takiemu, który jest podwielokrotnością wszystkich odmierzanych...
Okres sygnału napięcia przemiennego to 0.020s = 20ms by zadziałać musi zmierzyć napięcie powyżej 20ms by coś ustalić. Takie samo napięcie działa na sprzęt co 10msek. Wiec wystarczy pomiar 10msk. Ale - napięcie szkodzi od momentu przekroczenia chwilowej wartości napięcia ok 366V. Kryterium awarii nie jest całka za okres (10msek) tylko przekroczenie...
Ten sam kod, który zaprezentowałem w pierwszym poście , natomiast przerwanie wywołane już na nodze portb.0 i działa zmienna nie jest nadpisywana. Cała reszta kodu bez zmian poza zmianą przerwania. Przerwania skonfigurowane prawidłowo. Moze przerwania masz skonfigurowane prawidlowo... ale..... Czy mozesz wyjasnic w jakim celu, w obsludze przerwania...
Zwrotnica jest okej, nawet powiem że jest skomplikowana :) kondensator i cewka szeregowo wstawione i o odpowiednich wartościach są przerwą w obwodzie dla prądu zmiennego. Pętla dla wysokotonowca po prostu omija tą cewkę, nie ma znaczenia. Ja bym tą zwrotnicę zostawił. Co do tuneli to takiego wynalazku na oczy nie widziałem ale podejrzewam że całkiem-całkiem...
na nóżce 3 generatora na US3 działa przebieg jest , ale nie dochodzi do licznika cd4018 bo tam jest kondensator C24 33pF ktory jest przerwą Owszem, dla napięcia stałego ale nie dla przebiegu zmiennego czy też prostokątnego. Chyba że kondensator walnięty i ma przerwę. Zrobilem zwarcie kabelkiem obejscie tego C24 zeby dochodził sygnał na 4018 I podałeś...
a _delay_ms i _delay_us Ci nie wystarcza ? Do opóźnień nie trzeba wykorzystywać koniecznie przerwań timera. Można wykorzystać flagi timera (o ile się da, ale wszystko zależy). Poza tym, zmienna deb w Twoim programie zapewne nie jest volatile, ale wrzuciłeś nam NIC, także pomoc też nijaka
Gdybym opisał program wszystko stałoby się oczywiste :D Użycie IF ELSE bez END IF zawsze warte jest omówienia bo potem nikt nie może się doliczyć END IF :D Chodzi o to że jeśli tylko jedna instrukcja jest od jakiegoś warunku zależna to można ją zapisać w jednej linii. Jeśli z powodu jakiegoś warunku musza juz być zmienione dwie zmienne lub wykonać się...
Czyli działa to podobnie jak w bit bandigu, że sprzętowo jest wykonywana operacja RMW na pamięci ? Coś mieszasz - przecież tu jest tylko "write", więc gdzie jakieś "read" i "modify"? zmienna1 = zmienna2; // atomowe zmienna1 += zmienna2; // nie-atomowe - RMW
Witam wszystkich! Chciałbym wykonać mały elektromagnes, ale nie wiem jak wykonać sterowanie, chodzi o to, aby magnes włączał się np. na 1 sekundę, a następnie sam się wyłączał i cykl znów się powtarzał, a sterowanie ma dotyczyć ustalenia czasu przerwy między włączeniami, innymi słowy czas pracy elektromagnesu stały, czas przerwy zmienny?
nic się nie powinno stać ani z urządzeniem badanym ani z miernikiem, ponieważ w chwili gdy wyłączniki 1 i 2 są załączone to amperomierz nie jest włączony równolegle tylko poprostu zwarty, a jego rezystancja wewnętrzna w porównaniu z rezystancją przewodu spowoduje że przez niego nie popłynie prąd. Innymi słowy jest zwarty a prąd płynie tylko kablem.
Napisz tak: Dim Zmienna As Byte Zmienna = 0 Config Intx = Low Level | Rising | Falling [ | Change ] 'Konfiguracja reakcji na sygnał przerwania 'za x podstaw nr przerwania wybierz jeden ze sposobów pobudzenia kocówki uC Enable Interrupts 'Uruchomienie przerwań globalnych Enable Intx 'Uruchomienie przerwania INTx On Intx Obsluga_przerwania 'wskazanie...
Czy jeżeli w Bascomi-e, w przerwaniu, ............ ......... czy zapis będzie trwał, a procesor w tym czasię będzie już wykonywał inne rozkazy? Zapisywana jest zmienna bajtowa. Wpis wartości zmiennej do EEPROM nie odbywa sie samoczynnie, jak powiedzmy przesączanie wody przez lejek(!). Tego wpisu dokonuje processor; nie ma tam pośrednika (chyba jedynie...
http://obrazki.elektroda.pl/5336859500_1... Projekt został zrealizowany na potrzeby sterowania urządzeniami zasilanymi z sieci 230V , świetnie nadaje się jako sterownik do wytrawiarki lub innych tego typu urządzeń, w których konieczne jest utrzymywanie stałej temperatury. Układ oparty jest o mikrokontroler ATmega8 firmy Atmel , który...
bo nie zauwazylem ze ona go ustawiła nie wiadomo po co Nie właczaj ADLAR bo on przesuwa w lewą stronę ... wynik Właśnie o tym pisałem w poście, który skomentowałeś: proponuje nie pisac niezbyt przemyslanych postów no tak, to jest uwzględnione, wyswietlam ( odczytuje) tylko wynik ConversionResults Czy jesteś tego pewna? Koledze Piotrus_999 chodzi o...
Założyć kontroler napięcia zmiennego - zabezpieczenie przed przerwą w tzw. „zerze”.(N, PEN). Jak podadzą 400V zasilanie w ogóle nie zostanie załączone. Możesz podać jakiś przykład 3F na 40A??
Weź no zmierz pobór prądu przez miernik. Później z pojemności baterii możesz szacować czas jego działania. Baterie akumulatorów NiMH mają po 300 mAh pojemności, więc ok. 100 -150 godzin przy prądzie 500 uA powinny działać. Nie mam teraz czym zmierzyć prądu takiego miernika. Możliwe, że tak mały prąd nie będzie osiągalny. ICL7106 ma prąd od 0,8 mA do...
Witam, Zmienna l (i wszystkie inne uaktualniane w przerwaniach) powinna być zadeklarowana jako volatile: volatile unsigned int l; Dzięki temu kompilator wie, że może ona zmienić wartość poza kontrolą kompilatora np. w przerwaniu. Takiej zmiennej kompilator np. nie usunie podczas optymalizacji Twojego programu :) PS. w PHP operatory wyglądają tak samo,...
Nie wiem co ten Twój Keil wyrabia , bo ten program po skompilowaniu SDCC i po załadowaniu do symulatora , działa jak powinien tzn. zmienna k jest zwiększana dokładnie co 1s i 276 us.Po zaprogramowaniu AT89S52 z kwarcem 12 Mhz, stan portu P0 zmienia się co ~1s(zmienna k wyrzucona). Moja propozycja - zmień kompilator :wink: Piotrek PS Dodaj jeszcze w...
Zadeklarowałeś "Zmianna" a przypisujesz "Zmienna". :) Edit: Wyjście z procedury obsługi przerwania wykonuje się za pomocą Return a nie Goto Glowny ! Resztę błędów znajdziesz sam. :)
Tak na zacisku grzałki jest 25V zmiennego. Czyli wygląda to jednak na grzałkę. Odepnij zaciski od grzałki i sprawdź przejście. Jeśli brak przejścia - tzn. przerwa, to grzałka uszkodzona. Wyżej pisałeś że grzałka ma 0,5Ω przypuszczam, że zmierzyłeś rezystancje uzwojenia transformatora - co wprowadziło w błąd.
KOlego popatrz w jaki sposób masz ustawioną optymalizację i sprawdź symulatorem jak się faktycznie ma ta zmienna overflow, kompilator może robić tobie psikusy :)
To ja się zapytam czy instalacja w układzie TN-S zasilana z sieci TN-C lub TN (najczęściej u nas spotykane) będzie bezpieczniejsza gdy przerwa PEN lub zera wystąpi po stronie sieci? Kontroler napięcia zmiennego wykrywa przerwę w PEN (lub zerze) po stronie sieci. W tym przypadku na obudowach mamy napięcie asymetrii, nie utrzymujące się non-stop. Co...
utworzyłem kolejkę FIFO o rozmiarze 100 komórek (tablica 100 elementów uint32_t) Po co bijesz biedny procesor fifem które ma rozmiar nie-wielokrotność-dwójki? W tej chwili głupia operacja odczytu/zapisu do fifo zajmuje ci coś koło 12..15 cykli (w standardowym indexowaniu modulo, co najpewniej zrobiłeś), bo procesor nie ma cudownej instrukcji modulującej,...
Sprawdź jeszcze czy na C40 nie ma napięcia zmiennego. Być może kondensator dostał przerwy. A jeśli na C40 nie ma ani napięcia zmiennego, ani stałego to walnięta jest AZ1
Zmienna jest równa zero, bo przerwania nie wywołują się podczas innych przerwań "same z siebie" - to chyba oczywiste, że żaden układ nie obsługuje "sam z siebie" zagnieżdżonych przerwań - nie bez powodu zresztą. Zupełnie inną kwestią jest to, że optymalizacja na 99% wywali Ci zmienną pom, bo jest bezsensowna. 4\/3!!
Czy pamiętałeś o włączeniu portów w ODPOWIEDNIM rejestrze APBENR? volatile nie ma nic wspólnego z AVR. Tego atrybutu używa się np. wtedy, kiedy zmienna modyfikowana przez obsługę przerwania jest testowana przez inny fragment kodu. Pokaż kod procedury przerwania, bo coś tam narozrabiałeś.
stm32 przerwa przerwa wstawia zmienna zmienna geometria
gramofon przydźwięk słaby ładować alternator koszt naprawa telewizor panasonic
zakup tunera combo schemat automatycznego prostownika
Kolejność kolorów we wtyczce Steinberg System Jura S95 - Pompka zatrzymuje się po włączeniu