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....
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...
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...
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ą
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>...
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...
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...
No tak, to co ustawione jest na potencjometrze przez uruchomieniem symulacji, po włączeniu jej jest wyświetlane na LCD. Sygnał podany na wejście OSC1/CLKIN ma wartość 1MHz (Taka sama wartość ustawiona w kompilatorze microC). [syntax=c] // Deklaracja portow wyswietlacza LCD sbit LCD_RS at RB5_bit; sbit LCD_EN at RB6_bit; sbit LCD_D4 at RB1_bit; sbit...
Mam układ w konfiguracji jak w tytule ( do tego czujniki DS, BME280, zapis SD, RFM12 ) Ostatni etap to wysyłanie przez JSON do Domoticz. Niestety szwankuje wysyłanie i robi to losowo, czasem po wysłaniu danych z kilku czujników, czasem przejdzie cały "cykl" Odstęp pomiędzy wysyłaniem wynosi pomiędzy 20 a 30 sekund, natomiast odstęp pomiędzy wysyłaniem...
Banalne zadanie. A więc włączasz licznik(lepiej TIMER1-większa pojemność), tak, aby odliczał ci te 10sekund. Dajesz zmienną którą zwiększasz np co 1sekunde (zmienna o nazwie sekundy). W czasie odliczania do 10s w pętli głównej zliczasz impulsy przycisku i zwiększasz je w innej zmiennej (np. impulsy). Po 10 sekundach w zmiennej sekundy będzie10s a w...
Jeśli zajętość pamięci wzrasta w kolejnych krokach iteracji, to jest błąd. Przy zastosowaniu tego algorytmu zajętość pamięci powinna być stała. Zapamiętujesz przecież tylko liczby pierwsze w przedziale <3; 2^32). Niekoniecznie jest to błąd. Zrobiłem to inaczej niż Wy sugerowaliście pewnie. Zmieniłem bowiem typ zmiennych na 64 bitowe i takich używam...
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...
adn. 0. Masa to jest pozostałość po pierwotnym pomyśle na realizację wyświetlacza. Miał być sterownik wyświetlacza LED z kodu BCD do 7-segmentowego. Teraz tak naprawdę jest to pin wolny, bo żadna nóżka, jakiegokolwiek elementu nie jest podłączona do masy. Dlatego nie było potrzeby łączyć tego pinu do masy na schemacie ATtiny. Struktura złącza nie jest...
Wykorzystuje te zmienne do pomiaru ilości spalonego paliwa. Układ to komputerek do samochodu mierzący temperaturę, napięcie, spalone paliwo, sprawdzanie włączenia świateł, sygnalizujący włączenie alarmu zamiast diody i parę innych w przyszłości. Odłączyłem te czujniki, przejechałem 20 km i wygląda na to że wszystko gra, czyli któryś z nich może być...
Witam Potrzebuje waszej pomocy, musze napisac stoper w asm. Już sie męcze z tym troche i nie chce działac tak jak powinno, więc prosze was o naproawdzenie/poprawienie błedów w kodzie ponizej. I chcialbym rowniez wiedziec, czy moja interpretacja polecen w tym kodzie jest poprawna. Sam Timer działa poprawnie. Chcialbym aby sterowanie stoperem odbywalo...
https://obrazki.elektroda.pl/7754134200_... Trafił do mnie jakiś czas temu V640 w stanie uszkodzonym. Wizualnie i mechanicznie nie miał wiele wad, natomiast elektronika była do naprawy - przyrząd nie mierzy nic. Poza testem baterii, zero reakcji na cokolwiek, zerowanie nie działa. Ratować warto więc przestąpiłem do oględzin. Przyczyna...
Witam. Dawno nie pisałem w BASCOM-ie a zdecydowałem się na niego bo myślałem, że tak będzie szybciej i prościej. Nic bardziej błędnego. Do napisania był dwu-trybowy program uśredniający do nieco przerobionego radiometru SOSNA. Ale nie w tym rzecz. O ile kod który zamieszczam powstał w miarę szybko o tyle błędu nie potrafię wyeliminować 3 dzień. Po krótce...program...
Nie kojarzę jak to jest w STM ale w AVR po resecie zrealizowanym przez WD rejestry konfiguracyjne WD nie są kasowane - tj. watchdog od momentu startu kodu działa tak jak został zaprogramowany przed resetem i czeka na komendę WDR albo wyłączenie. Jeśli ktoś tego nie uwzględni w kodzie to po resecie od WD mikrokontroler potrafi wpaść w pętlę resetowania...
AVE... Praktycznie od świtu próbuję napisać prosty generator obsługiwany dwoma przyciskami z pomocą PIC10F322 i jego modułu Numerically Controlled Oscillator. Sam moduł działa bez problemów. Reszta nie za bardzo. W pierwszej wersji kodu jedynie wpisywałem wartości rejestrów NCO1 na sztywno i migałem diodą na porcie RA1, wtedy wszystko działało. Ale...
Dobra pierwsze podejście do kodu: Atmega8 ustawiona fusami na 8Mhz Najpierw dobór preskalera. Jak już wcześniej pisałem pomiar jest od 1,2-1,9ms więc zliczanie czasu moim zdaniem powinno być mniejsze od 0,05ms. Dobrałem preskaler 64 po czasie 524.288ms następuje przepełnienie T1 dla 0xFFFF, a więc jeden takt zliczania ma 524.288/65535 czyli 0,008ms...
Jako, że od niedawna sam uczę się dopiero C, to proszę bardzo poniżej, najpierw kod do odbiornika RC5. Sprawdzony, krótki i odporny na zakłócenia oraz kody z innych pilotów - działa wyśmienicie i w ciekawy sposób wykorzystuje bit TOGGLE: // zmienne do obsługi kodów IR w standardzie RC5 volatile uint8_t address; // adres RC5 volatile uint8_t command;...
Witam Interesujące rozwiązanie. Nie wiem tylko, czy da się je wykorzystać w przypadku skorzystania z ESP8266 ( zapomniałem wspomnieć ,że z niego korzystam ). Wykorzystuje taki kod ( publikował go Kolega Pusiek ), nieco go rozbudowałem o "zabezpieczenie" właściwie sprawdzenie, czy jest internet, gdyż gdy go nie będzie, program się zatrzyma. [syntax=vbnet]...
Witam Mam Atmega32A + PCF8563 + PCF8574 + RFM12 + DS18B20 +DHT11. Port danych LCD to Port.A, ControlPort to Port.C. I2C standardowo na Portc.0 Portc.1. Niestety jest problem z obsługą I2C, tzn. zegar PCF8563 nie działa w ogóle ( na LCD puste pole ) , a klawiatura na PCF8574 - tylko jeden klawisz i to nie ten, który jest przypisany w kodzie ( działa...
Naniosłem poprawki do kodu, nie mam jak sprawdzić komunikacji diodą, bo nie mam jak się z nią podłączyć (przynajmniej nie wiem jak to zrobić). Zmieniłem przejściówkę USB-RS na kabel RS-RS z crossowaniem, ale wydaje mi się, że jest jeszcze gorzej, bo teraz po podłączeniu kabla nie zapala się dioda odbioru przy porcie, która przy przejściówce zapalała...
Program dopiero powstaje (dopiero mam szkielet do uzupełnienia), wiec moze byc duzo elementów nieaktywnych takich jak PWM'y i i2C itp(ale konfiguracje juz sa), głównie jest MENU nieskonczone ale tyle co jes to działa , no i nieszczesny pomiar z wyswietleniem co 0,5 s za pomoca flagi z przerwania. Docelowo będą czytane wszystkie wejscia ADC ale jak utknołem...
Robisz sobie dwie zmienne: blokada i aktywność. Blokada jako prosta wartość 0 lub 1: jeśli blokada jest założona i wykryjesz, że oba przyciski są naciśnięte, to ustawiasz blokadę na 0 (i aktywność na 0, dodatkowo można dać opóźnienie, aby nie uwzględniać naciśniętych przycisków dalej). Jeśli blokada jest zdjęta, to robisz wszystkie testy, dodatkowo...
Jestem elektronikiem i choć od prawie roku (z przerwami ) powoli zagłębiam się w temat programowania na własne potrzeby AVR-ów nadal nie potrafię zastosować wielu pożytecznych funkcji co powoduje że napisanie programu do zarządzania i monitorowania napięć i prądów w układzie zasilacz,akumulator 12V,oświetlenie LED oraz sterowanie przez nastawny dwukanałowy...
Czyżby? Czy dla AVR ktokolwiek przejmuje się skryptami linkera, startupem, tablicą wektorów i Makefilem? Przecież dla tej platformy jest DOKŁADNIE TAK SAMO jak dla ARM, a jakoś nikomu nawet na myśl nie przyjdzie zajmować się tymi plikami - każdy korzysta z gotowców zawartych w pakiecie avr-gcc. Te pliki tam fizycznie są, nikt nie zajmuje się tym jak...
Do czego to doszło ;p Może od nowa, wersja z i2c chce dopiero teraz wprowadzić jak na razie jest po Bożemu znaczy sie wyswietlacz ze sterownikiem znajduje się na 2pietru kamienicy układ wykonawczy i wyłącznik (countera) znajduje się w piwnicy. Z i2c to dopiero mam zamiar zrobić bo zależy mi na dwóch wyswietlaczach jednym w piwnicy drugim na 2pietrze....
Kolega ci napisał konkretnie, czego jeszcze oczekujesz ? A ja odpisałem grzecznie i konkretnie, tydzień czasu i energetyka Warszawa teren, dla lokalizacji teścia, przy podanym adresie, linii, i numerze transformatora (ze słupa z nim), nie potrafi dać odpowiedzi - ciągle "jeszcze nie wiemy". Co do samodzielnej oceny z czym mam do czynienia to wygląda...
Sporo tego ( obsługa SD, PCF8563 + menu do ustawiania daty, obsługa PCF8574 w przerwaniu INT1 )- ale nie ma problemu - zmieniła się tylko zawartość podprogramu Pomiar była taka, jak w pierwszym poście oraz wyłączyłem w wyświetlanie na LCD tych wartości wskazań z DS18B20, oczywiście dostosowałem pozycje wyświetlania do LCD 4*20 - załączniku spakowany...
Witam Po raz pierwszy ( lepiej późno niż wcale ) wykorzystałem wyjście CLKOUT układu PCF8563. Oczywiście podciągnąłem przez 10K do VCC. Dzisiaj po pierwszym kilkugodzinnym braku prądu, rano zegar był wyzerowany. Podejrzewam, że to przez podciągnięcie CLKOUT do Vcc. Jeśli to jest to, to może wystarczy włożyć diodę np. Schottky pomiędzy wyjście CLKOUT,...
Witam ponownie Sugestia Kolegi M. S. była pomocna. Całość wygląda tak [syntax=basic4gl] '************ Zegar 6 wyswietlaczy LED + PCF8563 $regfile = "m8adef.dat" $crystal = 8000000 $hwstack = 32 ' rozmiar stosu sprzętowego $swstack = 32 ' rozmiar stosu programowego $framesize = 32 $baud = 9600 '************ deklaracje portow - 74HC595 Config Portc.3...
Witam, jestem pewnien, że to błachostka, ale niestety kompletnie nie umiem programować, dlatgeo pytam na naszym forum. Nie wiem, dlaczego zmienna się zeruje. Przypuszczam, że poprostu nie umiem użyć globalnej zmiennej. [syntax=cpp]int ir_pin = 7; //Sensor pin 1 wired through a 220 ohm resistor int led_pin = 10; //"Ready to Recieve" flag, not needed...
Usuń znaczek hash i nazwę zmiennej umieść w nawiasach klamrowych. Będzie odwołanie do pamięci, a nie ładowanie stałej. Oczywiście pisze o tym w pomocy, ale szukać się koledze nie chce. :bad-words: Można uzyskać dostęp do zmiennej umieszczając jej nazwę w nawiasach klamrowych { }. By mieć dostęp do bajtu MSB zmiennych Integer/Word, należy użyć formy:...
Wkleję cały program: = 0x33" naprawiło problem, więc gdzieś tu tkwi szkopuł. Bo jeśli dobrze rozumuję , to: bajt XX10 XX11 & ~0x33 1100 1100 ( czyli ~(0011 0011)) bajt XX00 XX00 PD7 jest niepodłączone. PD6 to wyjście na tranzystor (przez rezystor). Nie mam schematu, ale układ elektrycznie działa ok. PD2 i PD3 to switch'e zwierające do masy. Drugi...
Dokonałem optymalizacji kodu, rozmiar zmniejszył się o 2 %. Pilot RC5 działa, można zmienić czas/date, obsługę wyświetlania przeniosłem do przerwania Ale mam kłopot z wyświetlaniem kropki [syntax=basic4gl] '************ Zegar 6 wyswietlaczy LED + PCF8563 $regfile = "m32def.dat" $crystal = 16000000 $hwstack = 64 ' rozmiar stosu sprzętowego $swstack =...
Witam Mimo, że większość proponowanych tutaj rozwiązań podłączenia RFM12 do Atmegi wykorzystuje SPI programowe, ja podłączyłem tradycyjnie, przez SPI sprzętowe - mimo, że nie miałem problemów z wgrywaniem kodu do Atmegi spiętej z RFM12, to uruchomienie ich razem jest problematyczne ( każde osobno działa bez problemu ) [syntax=basic4gl] $include "Config_AVR-DOS.BAS"...
Nie mam zielonego pojęcia jak Wy to widzicie na unii. Ja zrobiłem to mniej więcej tak: Mile widziane jakieś poprawki, wskazówki, itp ;-) Z góry dzięki za pomoc. pozdrawiam #define RDYPB4 #define TIMER_CLOCK 2 //#include <avr/interrupt.h> // dolaczenie standardowych bibliotek obslugi przerwan bez blokady (obsluguje signal.h) #include <avr/signal.h>...
Witam! Skonstruowałem sobie urządzenie, które ma służyć do optymalnego ustawienia sterownika kotła. Mierzy temperatury na zewnątrz i wewnątrz, liczy ich średnie, minima i maksima, jest podłączone do sterownika kotła pod przekaźnik (przez transoptor) i zlicza ilość załączeń podajnika w różnych trybach pracy i sumaryczny czas. Od dłuższego czasu walczę...
W twoim programie compilator, wykłada się w następującej lini kodu, przy deklaracji zmiennych : Dim Stx As String * 10 - zgłasza błąd 8. Nie chce mi się myśleć a wielkość pliku jest nieduża więc zamieszczam go w całości: Może ktoś z forumowiczów pomoże. ArteXL '################ ' --- Miernik pojemnosci 1pF - 500000uF ' NE Nr.5-2003r str.4. Zeataw 337-K...
Rejestrator dość spory. Większość danych zbiera płytka nadajnika na Atmega328 i tam następuje praktycznie całkowita obróbka - oprócz danych z siedmiu DS18B20, jednego DHT11 oraz MPL115A2, odbieranie czasu z DCF77 i jego aktualizacja w PCF8563 przesyłane są dane o tym czy nie ma awarii czujnika ( zmienna Err ) oraz informacja o histerezie czujników DS18B20...
W warunku: [syntax=c]if( aktualnyPik++ <(pikniecia*2)) //sprawdzenie czy piknęło już tyle ile trzeba i zwiększana potem liczba piknięć (++) { digitalWrite(pin,!digitalRead(pin)); //tu jest odczytywany aktualny stan pinu i wpisywany odwrotny stanbuzzera=1; //flaga buzera, że aktywny, pozwala ponownie wywołać funkcję } else { aktualnyPik=0; //jeśli...
Witam, Jestem w trakcie przerabiania kursu z EdW http://sklep.avt.pl/photo/product_info/c... Pracuje na zestawie startowym ZL3AVR http://obrazki.elektroda.pl/1437402200_1... Zamieszczam kod programu: ////////////////////////////////////////... // main.c - testowanie...
Nie lepiej zerować przez RS'a zmienną która zlicza impulsy ?
Przy tej ilości przepracowanych godzin można przed instalacją systemu było wykonać erase - czyli zerowanie dysku.
Na jakiej podstawie twierdzisz, że problemem są priorytety przerwań? Przerwania występują na tyle sporadycznie, że nie ma tutaj miejsca na problemy. Jeśli wysyłany jest znak '2', to porównanie (i==2) jest błędne TCCR2 = 1<<CS00 | 1<<CS02 | 0<<CS01 ; proponuję zapisać tak: TCCR2 = (1<<CS00) | (1<<CS02) |...
kombinuję też, że może za późno wywołuję funkcję fpu_enable()? W sumie to przed nią tworzy się obiekt IMU. To mogłoby mieć znaczenie tylko jeśli konstruktor tego obiektu w jakiś sposób robi coś "zmiennoprzecinkowego". Jeśli tylko zeruje zmienne w pamięci, to raczej bez znaczenia. Jednak gdy robię to tak: W pliku .cpp ta funkcja musi być zdefiniowana...
Można zerować, ale nie trzeba, bo każda instrukcja, która ją "obsługuje" i tak ją wyzeruje jeśli nie ma błędu lub ustawi po błędzie.
Żeby odliczyć wyznaczony czas zamiast ustawiać od razu relay ustaw tryb pracy na wyłączanie i zapisz sobie stan millis, potem w loop jeśli tryb pracy jest wyłączanie odliczasz czas, gdy warunek się spełni ustawiasz zmienną stanu przekaźnika na low i zerujesz zmienną wyłączanie. [syntax=c]if (wylaczanie) { if( (uint32_t) (millis()-odliczanie)>=czasWylaczenia).....
Może odpal jakiś Timer żeby generował przerwanie bardzo często. Powiedzmy co 10us. I w przerwaniu sprawdzaj czy pin ma stan 0 czy 1. Jak 1 to inkrementujesz jakaś zmienną. Jak zmieni się na 0 to zwracasz wynik i zerujesz tą zmienną. Oczywiście w tym samym przerwaniu sprawdzaj tak samo drugi pin. Niestety wymaga to kodu obsługi przerwania w assemblerze...
Myślę, że jedynym sposobem jest odbieranie danych z USARTa za pomocą przerwań. W programie należałoby ustawić jakieś opóźnienie i sprawdzać cyklicznie, czy nadszedł nowy znak. Jeśli w określonym czasie (zależnym od częstotliwości "powtarzania" klawiatury) nie nadejdzie nowy znak to diodę wyłączyć, jeśli nadejdzie i jest to 'w' to zapalić. Więc w funkcji...
Ja bym to zrobił tak: zadziała pierwszy czujnik - ustawiasz jego zmienną na 1 i czekasz aż zadziała drugi czujnik, jeśli tak, zerujesz zmienną , dodajesz jeden do licznika, i czekasz aż drugi czujnik wróci do stanu zasadniczego. Jeśli nie - zerujesz zmienną po określonym czasie. (znaczy że ktoś uruchomił jeden z czujników i nie aktywował drugiego) zadziała...
Sam kiedyś z ciekawości i chęci sprawdzenia jak mają się pomiary różnymi czujnikami do siebie zbudowałem taki układ z termoparą, LM35, DS18B20 i czujnikiem NTC. Jeśli te pomiary Ci się w kodzie "nie spieszą" to może przyda Ci się taka prosta metoda. Jako że ADC czyta się do Word bo ma więcej niż pomieści Byte to pozostaje w tej zmiennej dużo wolnego...
Masz tam od zatrzęsienia operacji na znakach i ciągach... Kolego nie dramatyzuj ;) spacer: Odbieraj znaki w przerwaniu, po odebraniu w jednym ifie sprawdzaj czy NIE jest to znak CR dalej w tym ifie sprawdzaj czy NIE jest to LF. Jeżeli znak nie jest jednym z nich to znaczy że jesteś w tym ifie i zapisuj znak do bufora: bufor[i++]. Dalej w przerwaniu...
W linii 21 Set kom = wksN.Columns(2).Find(What... LookAt:=xlWhole) Jeśli prawdziwe jest If kom Is Nothing wychodzisz z procedury bez zerowania zmiennych obiektowych (które sobie będą siedzieć w pamięci). Unikniesz tego stosując Else... If kom Is Nothing Then MsgBox "Nie ma podanej komórki." Else On Error GoTo 0 wksR.Range("C1:D1")...
buffer<<=18; można też rozumieć jako przesunięcie o 18 bitów :D bo docelowe dane nie znajduja się na początku ramik Tylko czy aby we właściwym kierunku? Funkcja TC_GetTC1() nie wykonuje konwersji tylko rzutowanie i moim zdaniem jest zbędna. Spróbuj tak buf w funkcji RD_AD() bo zmienne lokalne nie są domyślnie zerowane podczas deklaracji i mogą...
zerowanie zmiennych pomocniczych bascom zmiennych przekazywanie zmiennych
transmisja skrętce zasilanie dewalt bateria ciągły restart komputer
aktualizacja esperanza ev107r resetuj dekoder
Setra S 417 – brak spłukiwania w toalecie, diagnostyka układu WC, elektrozawór, pompka 24 V Polar PFL pralka nie pobiera wody, świeci kontrolka Serwis – diagnostyka elektrozaworu, presostatu