a po co Ci dwie zmienne ? if(!(PIND & _BV(4))) { _delay_ms(250); if(++set_h >= 10){ set_hh++; set_h = 0; } } if((set_hh>=6)&&(set_... 68 to wyzeruj set_hh i set_h { set_h=0; set_hh=0; } tak to raczej winno wyglądać
Witam, PLC - serwer HMI - klient W PLC ustawiasz zmienne na https://content.helpme-codesys.com/en/CO... Pozdrawiam,
Instrukcja służy do kopiowania wartości z wejścia IN do wyjścia Q, w tym przypadku dla zmiennej typu Integer (liczba całkowita). Do czego wykorzystać: np zerowanie jakiś zmiennych (liczników, numerów kroku sekwencera itp). ustawienie jakieś wartości zmiennej zależnie od logiki itd
mnie w całym katalogu AS7 i GCC nie znalazłem źródła gcrt1.s a znalezione w sieci są sprzed kilku lat. Są w źródłach AVR-libc, trzeba je pobrać. To co znalazłeć w necie będzie ok dla Dx. Kod startowy to praktycznie tylko wektory, inicjalizacja stosu (zbędna, bo nowe AVR robią to poprawnie sprzętowo), zerowanie jednego rejestru i ew. kopiowanie zmiennych...
Pierwsze to trzeba znaleźć przyczynę zawieszania. Natomiast sprawa zerowania pamięci po dowolnym resecie - oprócz zaniku zasilania, która może pomóc także w diagnozie. Za to odpowiedzialny jest nie sprzęt, lecz kompilator i linker. Standard C wymaga, aby przed wejściem do funkcji main() wykonała się inicjalizacja zmiennych i zerowanie danych globalnych....
Jeśli moduł rf jest zintegrowany z mikrokontrolerem to korzysta on z wewnętrznej magistrali danych skraca to czas aktywności mikrokontrolera do minimum . Każdy inny moduł transceivera będzie wymagał wysłania do niego danych np. po spi to zajmuje czas bo raz że trzeba wysłać dane do modułu spi , napędzić zegar i je wysłać , w przypadku gdy masz zintegrowany...
Dosyć enigmatycznie to opisałeś. Ze schematu wnioskuję, że chcesz zrobić zadajnik napięcia, Górny lewy wzmacniacz, którego sygnał jest podawany na trzy kolejne fazy sterowników tyrystorowych, trzy prawe wzmacniacze z transoptorami i układami całkującymi dla korekcji czasu opóźnienia włączenia spowodowanej rozrzutem elementów. Według mnie nie ma sensu...
drobny opis programu: [syntax=vb] Public Class Form1 Dim operat As String ‘deklaracja zmiennej operatora artemtycznego Dim Cyfra_Pierwsza As Boolean = True ‘deklaracja zmiennej Dim walor1, walor2 As Double ‘deklaracja zmiennych dzialan artmetycznych Private Sub operat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)...
Sprawa jest prosta: funkcja strcpy kopiuje tyle bajtów, ile może, póki trafi na zero które kopiuje, ale zaraz po tym przerywa kopiowania. Jeżeli ilość znaków w MaskEdit1->Text będzie większa od 3, to strcpy może nadpisać wszystkie lokalne zmienne, od pierwszej do tej przed str1, a nawet zmienne w funkcjach które oczekują na powrót z aktualnej funkcji....
E tam, nic strasznego.... Tu masz błąd: Dim U_wy As String * 2 Zwiększ to na: Dim U_wy As String * 3 I leci aż miło. Nie mieścisz się w zmiennej, that's all:) Poza tym skonfiguruj watchdog oraz TIMER. Pewnie jeszcze coś tam siedzi (wyświetlanie bez wymazywania poprzednich, większych o rząd wartości na przykład) ale to tak na szybko. Pozdrawiam, TD
http://obrazki.elektroda.pl/7011174400_1... Cześć ! Dziś chciałbym zaprezentować swój najnowszy projekt, którym jest świąteczna choinka LED. Jako, że według świątecznego zwyczaju swoich bliskich obdarowujemy prezentami ów ozdoba została wykonana dla moje dziewczyny, która bardzo lubi klimat świąt i wszystkie ozdoby z nimi związane....
Znalazłem specjalnie dla Ciebie jeszcze kilka bajtów :D ahahahahaha Bascom stara się być "ignorantoodpornym" czyli jak ktoś może czegoś nie wiedzieć to on to, na wszelki wypadek, robi za niego. W języku C każdą zadeklarowaną zmienną najczęściej inicjuje się jakąś wartością ponieważ po reset nie można być pewnym, że w niej znajduje sie zero lub potrzebna...
(at)_lazor_ i przy okazji pozwala zobaczyć jak sobie zrobić inicjalizacje i zerowanie zmiennych umieszczonych w innych obszarach pamięci (np CCM)
Tak bo Twój program rusza od main. Wcześniej są robione jeszcze inne rzeczy np zerowanie zmiennych globalnych, ale wszystkie operacje muszą być w funkcjach.
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...
Panowie, na szybko zapytałme chatGPT, o kod do obslugi enkodera i zapalenie diody na 1 sekunde ale żeby nie gubic liczenia impulsow. Czy taki kod jest prawidlowy: // Deklaracje zmiennych volatile int impulsy = 0; // Licznik impulsów const int enkoderPinA = 2; // Pin A enkodera podłączony do pinu 2 na Arduino Nano const int enkoderPinB = 3; // Pin B...
cześć. odgrzewam temat, ponieważ problemu nie udało się rozwiązać. Płytke procesora osłoniłem 1mm stalową blachą. low esr 1000u obok procesora. nic to nie dało, albo nie wiele. Procesor dalej się resetuje przy włączeniu stycznika. Program nie idzie w krzaki i zawartość pamięci nie ulega uszkodzeniu dzięki ustawieniu odpowiednich fusebitów zegara, zasilania....
Już Ci pisałem, że nie zerujesz zmiennej licznik_bitow_rx.
Jak to skonfigurować? W Arduino nie mam zielonego pojęcia No właśnie, a internet też milczy... Wymyśliłem to tak - Potrzebuję sygnał którego rozdzielczość jest równa 0.25us czyli timer musi zliczać z częstotliwością 4MHz czyli przy zegarze 72MHz będzie to 18 cykli. Zegar co 18 cykli dodaje 1 do zmiennej x, jeśli zmienna x = 19 (4.75us) ustawia stan...
W przerwaniu Int0 inkrementuj zmienną. Ustaw timer na jakąś jednostkę czasu i w przerwaniu od tego timera obliczaj cześtotliwość i zeruj zmienną
Excray, twój kod zadziała raz na 255, zapomniałeś zerować zmiennej a :P Mylisz się. Po prostu nie zrozumiałeś jak działa ten kod. Nie trzeba zerować tutaj żadnej zmiennej. W zasadzie kod można jeszcze bardziej uprościć: [syntax=c] while(1) { if(!(PINC & 0x01)) PORTD ^= 0x01; }[/syntax] Jak widać żadne zmienne ani globalne ani lokalne nie są potrzebne...
Postarałem się trochę "ucywilizować" ten kod. Mam nadzieję, że teraz wygląd to bardziej po ludzku. [syntax=c] #define F_CPU 1200000UL #include <avr/io.h> #include <avr/sleep.h> #include <avr/interrupt.h> #include <avr/wdt.h> #include <stdbool.h> #include <util/delay.h> #include <avr/eeprom.h> #include <avr/pgmspace.h>...
Całkowicie zapomniałem o temacie :) Z problemem poradziłem sobie w następujący sposób, jest to wycinek z większego programu więc coś może być źle wycięte :) [syntax=c] //--------------------------------------... // Dołączone biblioteki //--------------------------------------...
Niestety jestem nowy na forum i nie znam tutejszych sposobów na dobre przedstawienie schematu programu. Generalnie: 1.Cały program napisany jest w języku SFC 2. Pierwszy blok w tym "pionie" programu jest napisany w ST i jest to warunek, że jeżeli f<60 to f=f+10 3. Następnie blok w FBD przeliczający częstotliwość na napięcie i napięcie na int, rozumiany...
ups. znowu mój błąd. zapomniałem zerować zmienną I I=0 program u góry już poprawiłem moze teraz zadziała ??? :D
A spróbuj tak: Odczyt=Temp Dim Jednostki As Byte , Dziesiatki As Byte ' cyfry do wyświetlania temperatury Dim Temp As Byte ' temperatura Dim Pompka As Bit ' sterowanie pompką Dim Odczyt As Byte Dim Cyfrybcd As Byte Dim Ktorywysw As Bit Enable Interrupts ' oblokuj przerwania Enable Timer0 'odblokuj timer0 Enable Timer1 'oblokuj timer1 Config Timer0 =...
Struktur których nie inicjalizuje ? Które masz na myśli ? W moim mainie nic nie ma, wyrzuciłam wszytsko i w ramach testów używałam tylko fukncji do ustawiania pwm, która załączyłam wyżej i zawsze były błędne wyniki. [syntax=c] int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration---------------------------...
1. Acha... bo ty w programie liczysz ilość kliknięć? Tak? Myślałem że chcesz liczyć czas. 2. Jak używa zmiennych Bascom, nikt nie wie poza twórcą Ale można sobie co nie co poczytać. Może zły konfig dla ramu? https://avrhelp.mcselec.com/index.html?m... I trzeba zwiększyć wartości: $hwstack = 40 $swstack = 16 $framesize = 32 Dla dzielenia...
Jak zrobić żeby wyzerować lub wpisać jakieś wartości w kolejne komórki pamięci GPR w pic 16f84? Myślę tu o uczynieniu programu ładniejszym i zaoszczędzeniu kawałka pamięci. Zamiast pisać po kolei linie clrf 0x0D clrf 0x0E itd czy jest metoda aby ustawić licznik i w pętli obsłużyć seryjnie takie zerowanie lub inne wpisy? Potrzebuję wyzerować większą...
Nie zerujesz zmiennej "w" przy kolejnych uruchomieniach, może coś jeszcze. Możesz przecież uruchomić to pod debuggerem i podejrzeć która instrukcja wywołuje błąd i jakie są wartości zmiennych przy jego uruchomieniu. Jeśli włączysz codeguarda to powinieneś też dostać jakiś sensowny komunikat ze wskazaniem na linię kodu, pewnie access overrun.
Jako że prosty przykład, wiele tu informacji nie trzeba wiedzieć. Jedynie przerwaniu od INT0, oraz ustawienie timerta0 w tryb CTC (do stworzenia timera programowego). Reszta to tylko pętla główna w której jest sprawdzany warunek co około jedną sekundę zgodnie z założeniem:[syntax=c]#include <avr/io.h> #include <avr/interrupt.h> // Atmega16...
No teraz dobrze, ale czy to Ci w ogóle potrzebne? Zerujesz zmienną prze wejściem w pętle ... A wracając o głównego wątku, jeśli masz włączone przerwanie to jego czas dodaje się do tych 1780us, być może wiele razy na bajt (bo częstotliwości oscylatora nie podałeś) i sprawdzasz PD2 w niewłaściwym czasie ... Albert
Sprawdzasz stan końcówek w pętli głównej i za każdym razem porównujesz stan ze stanem poprzednim. Jeśli zgodny i wysoki inkrementujesz zmienną np Czas. Jeśli przeciwny zerujesz zmienną Czas. Sprawdzasz wartość zmiennej czas i jeśli zmienna osiągnie zadaną wartość uC wystawia na swoim pinie wyjściowym określony stan. Jak widać ustalenie błędu musi nastąpić...
Pewnie niewiele pomogę ale zrób to na zasadzie nadpisywania ekranu. 1. Zrób ekran z opisami 2. wykryj przyciski pilota i przypisz flagi, np. góra, dol, lewo, prawo - zakładając, że przycisk włączony to 1 a wyłączony to 0 3. sprawdź flagi i gdy np. góra=1 to; powtórz punkt 1 ale już z innymi opisami. 4. Nie zerujesz zmiennej góra, zerowana jest dopiero...
Witam, to co wykorzystuję: -ATmega16 -4 przyciski PA -LCD - PB -Diody - PD dodatkowa sygnalizacja binarna Do tej pory uruchomiłem układ i dowolnie go modyfikowałem - bez przerwań. Teraz chciałbym wprowadzić wielopoziomowe menu z którego będzie można (w dowolnej chwili) zmienić wykonywaną funkcję czy modyfikować zmienne - czyli bez przerwań się nie obejdzie....
Jest tego sporo, DCF77, 7 x DS18B20 i DHT11 ( akurat jeśli chodzi o niego to mam wątpliwości, czy ten kod działa, bo jest na obydwu płytkach podpięty i zdarza się zawieszenie ) Nadajnik Atmega328p Dodano po 16 Odbiornik Atmega644P - trochę zmieniłem obsługę przerwania, wydaje mi się, że w przerwaniu nie powinno się wykonywać dużych obliczeń. [syntax=basic4gl]...
Robie drona i to jest mój kod kontrolera lotu. Działa bardzo dobrze ale po kilku sekundach nwm jak to nazwać ale arduino zawiesza się i nie wykonuje programu. Próbowałem zrobić zerowanie wszystkich zmiennych za każdym powtórzeniem ale nic nie dało. Dodawałem opóźnienie ale to nie może też byż bo silniki zaczynają wariować. Ktoś pomoże? [syntax=csharp]...
1. Gdzie w apostrofach jest 0? 2. Myślę, że jakbyś wiedział, do czego służy rejestr (E)SI, to by nie było pytania. Ponadto przecież w następnej linijce go wykorzystujesz. 3. mov byte ptr min, al - przeniesienie bajtu danych do zmiennej min z rejestru AL. Moim zdaniem zupełnie niepotrzebne w tym miejscu stosowanie wskazania rozmiaru danych. Tego typu...
Tzok mysle ze właśnie o to mu chodzilo co ty przed chwila napisałeś. Bynajmniej ja tak zrozumialem. Ja zrobilem inaczej na zasadzie wykrycia zaniku zasilania na komparatorze. Procka podtrzymuje kondensator 470uf Spokojnie zapisuje 10 bajtow. W testach dawal rade tez zapisac 20. Ale zmienilem kondensatow na 2200uf bo bedzie jeszcze pare innych zmiennych...
Możesz zmienną Tablica Używanie zmiennych globalnych jest bardzo nieeleganckie i może prowadzić do trudnych do wykrycia błędów podczas runtime'u. (at)Kubbaz: 1. return Tablica[100] zwraca Ci nie tablice tylko jedna wartość, na dodatek poza zakresem. 2. po co zerujesz tablicę, a potem przypisujesz do niech wartości? Zerowanie jest bez sensu. 3. Adres...
Jak na razie dzielenie jest zrealizowane na... odejmowaniu ale jest baaaardzo nieefektywne jeśli różnica między liczbami jest duża, można je znacząco usprawnić mnożąc dzielnik przez 10^n tak aby był o jeden rząd wielkości mniejszy od dzielnej i dopiero odejmować. *** No... wreszcie udało mi się (z pomocą kolegów z grupy lab.) coś wykombinować: //--------------------------------------...
Witam wszystkich, Potrzebowałem uruchomić układ z większą ilością termometrów DS18x20, które będą rozlokowane w różnych miejscach domu i poza nim. Część z nich będzie wpływała na uruchomienie ogrzewania, inna część będzie tylko informacyjna. Jeszcze inna będzie miała za zadanie zabezpieczenie elektroniki przed przegrzaniem. Taki w ogólności jest zamysł...
popełniłem swego czasu taką obsługę Getrc5 w przerwaniu z wykorzystaniem bitu Toggle, który przydaje się do sprawdzenia czy mamy wciąż wciśnięty klawisz - wtedy zmienna Repeat = 1 a gdy tylko raz to Repeat = 0. To się czasem przydaje i fajnie można wykorzystać, oto przykładzk - hmmm może troszkę rozbudowany bo z wstawkami asemblerowymi ale można je...
Czy w sterowniku jest jakaś zmienna odpowiedzialna za zanik zasilania ? A co za problem stworzyć samemu marker typu BOOL w deklaracji VAR (będzie to zmienna ulotna). Po zaniku zasilania tego typu zmienne zawsze są zerowane. Na początku programu wykonujemy operację: IF bAfterReboot = 0 THEN (*tutaj zamykamy pliki*); bAfterReboot := 1; END_IF;...
Wydaje mi się że to zależy od kompilatora. Taka deklaracja nie zeruje zmiennej, czy kompilator ją niejawnie wyzeruje to zależy od niego. Nawet jeżeli ja zeruje to lepiej zawsze napisać; volatile uint8_t accel_decel_counter = 0; Wtedy program jest jaśniejszy, a dobry kompilator i tak to przypisanie zrobi tylko raz. Standard języka C tego nie definiuje...
słuchajcie panowie, ja coś popełniłem w BASCOM8051. nie napisałem jeszcze żadnego programu którego działanie sprawdziłem w praktyce, bo nie mam programatora. wszystko tylko symulowane programowo. chciałem zrobić Config Lcd = 16 * 2 declare sub ustawienia dim d as byte 'przejechana droga dim v as single 'predkosc modelu dim o as byte 'obwod kola modelu...
Po co ciągle konfigurować tego ESP? Mojego skonfigurowałem raz. Teraz jak podłaczę do niego terminal to po włączeniu/resecie sam loguje sie do mojego routera. Sam pisze, że WIFI CONNECTED i WIFI GOT IP Czyli dokąd nie zmieni się sieci WiFi to nie trzeba konfigurować, ewentualnie po otrzymaniu WIFI GOT IP można zapytać jeszcze o IP - "AT+CIFSR", no...
Raczej na [syntax=c]char rodzaj[2]; [/syntax] Mniej zmian trzeba będzie dalej wprowadzać. Zamiast [syntax=c]//if (tab[i].rodzaj=="L" || "l") [/syntax] musisz napisac [syntax=c]if ((tab[i].rodzaj[0]=='L') || (tab[i].rodzaj[0]=='l'))[/syntax] (lubię dużo nawiasów) Jeszcze trzeba przesunąć zerowanie zmiennej wynik przed pętle, a wypisanie wyniku po.
Zdefiniowanie w inkerze to jedno. Trzeba też sprawdzić, czy na starcie kod jest kopiowany do RAMu. Zwykle kopiowanie zmiennych inicjowanych oraz zerowanie pozostałych odbywa się tuż po resecie, kod assemblera (choć nie zawsze). Trzeba sprawdzić czy ten kod również będzie kopiował nasz kod RAMowy, raczej wątpię bo o ile zmienne mają umownie standardowe...
Jeżeli tak zrobisz i nastąpi przypadek, że w momencie w którym licznik będzie miał wartość 125, a warunek który dopisałeś nie będzie spełniony to nie wykona się kod zawarty w instrukcji if, czyli nie wykona się zerowanie zmiennej licznik. W rezultacie zmienna licznik w następnym przerwaniu będzie miała już wartość 126, itd. - i teraz pytanie: Czy to...
zerowanie zmiennych pomocniczych bascom zmiennych przekazywanie zmiennych
philips 55pfl6008 dzielnik napięcia schemat zmywarka brudzi
samsung le37b553 samsung le37b553
Wyłączone rozszerzenie magistrali komunikacyjnej modułu sterującego podwozia Czy telewizory LED są niezdrowe dla oczu i mózgu?