Zmienną używaną w przerwaniu deklaruje się jako volatile (wykluczona z optymalizacji), inaczej będzie cyrk... volatile unsigned char licznik Ładniej by to wyglądało scalone... tzn... void czekaj(void) { licznik = 30; TCCR0 = 0x05; do{}while(licznik); } ISR(TIMER0_OVF_VECT) { licznik--; TCCR0 = 0; //wypadałoby...
Zasada działania ? każda instrukcja wykonywana jest określona ilość cykli zegarowych. Więc opóźnienie realizuje się zajmując procesor na określoną ilość czasu czymś co nie da żadnych efektów. Możliwości uzyskania dowolnego czasu opóźnienia. Jednak funkcje z tej biblioteki np delay_ms ma ograniczenia takie ze powyżej pewnej wartości jej dokładność maleje...
temat wałkowany już kilka krotnie. funkcje delay mają argument typu float jeśli podajesz zmienna jako argument do dodajesz również operacje zmiennoprzecinkowe na tej funkcji które .... dają efekt jaki uzyskałeś
Niestety nie znam się na STM, ale wygląda mi to cały czas na problem z delayem przed inicjalizacją wyświetlacza. Mikrokontrolery zwykle startują zanim ustali się pełne napięcie na linii zasilania. W takich sytuacjach należy zaczekać trochę dłużej przed startem wyświetlacza. Czy jesteś pewien, że delay działa poprawnie (do sprawdzenia z zegarkiem na...
Niestety nadal występuje ten sam problem :cry: Problem wystąi niezależnie czy naciśniesz F10 czy F11 bo funkcje delay są inlinowane, więc co prawda tego nie widzisz, ale ich ciało jest osadzane w miejscu wywołania. Najlepiej ustawić breakpointa za delay i dać F5. A jeszcze lepiej zrobić tak, żeby dla celu debug przy symulacji preprocesor wywalał delay.
Nawet z uwzględnieniem zmniejszenia dokładności (które przy wykorzystaniu aktualnej wersji avr-gcc przy typowych opcjach kompilacji nie występuje – patrz fragment If the avr-gcc toolchain has __builtin_avr_delay_cycles(unsigned long) support w dokumentacji) te funkcje (jako same w sobie) są całkiem niezłe. W praktycznych zastosowaniach ich niedokładność...
Nie znam się na bascomie, ale czy w petli do loop nie powinno być Pwm1a = X, b tak jak zostało napisane to wygląda jak by było z czytywanie raz z addc raz z pwm. I takie pytanie co do zadeklarowania częstotliwości czy to coś w ogóle da, w zasadzie funkcje delay i inne wykorzystujące opóźnienia po prostu wykonają się szybciej, czyli tak jak by zmniejszyć...
oraz jeszcze: 1. stosujesz stare funkcje obsługi przerwań a nowe wektory - stosuj nowe funkcje ISR(): http://nongnu.org/avr-libc/user-manual/g... i wywal nagłówek #include <avr/signal.h> 2. returny w funkcjach ISR() i main() są zbędne. 3. Ostatnia uwaga kol Zaquadnik jest baaaardzo istotna. Nie dość, że czekasz w funkcji...
Kolor PCB, krój czcionki oznaczeń, układ padów testowych, ogólny styl i przedrostek "NAS-" do głównego oznaczenia PCB sprawiają, że zastanawiam się, czy jest to WENZHOU NOVA NEW ENERGY CO.,LTD produkt, jak widać tutaj: https://www.elektroda.com/rtvforum/topic... https://obrazki.elektroda.pl/9539262600_... Jeśli masz opakowanie,...
Tutaj przyjrzę się czujnikowi kontaktowemu LoraTap/Tuya MC100W do monitorowania otwarcia/zamknięcia drzwi/bramy/okna. Zakup w Ali Express https://www.aliexpress.com/item/10050072... https://obrazki.elektroda.pl/8345087100_... https://www.loratap.com/products/mc100w Pudełko, części, elementy wewnętrzne urządzenia: https://obrazki.elektroda.pl/8141601100_...
Funkcje write1 i write0 sa bardzo podobne i wykorzystywane tylko przez SendByte. Lepiej byłoby Ci je wrzucić do środka funkcji SendByte oszczędzając w ten sposób miejsca i czasu. W funkcji reset_pulse masz na początku bardzo długi delay - 250ms. Moim zdaniem do usunięcia. Ponadto w funkcji reset_pulse zanim ustawisz stan niski mógłbyś dodatkowo sprawdzić...
asm na pewno jest taki sam (szczegolnie ten ktorego uzywalem, bo to same podstawy), gorzej z timerami na ktorych opieraja sie dluzsze opoznienia (od ms w gore). nigdy nie zajmowalem sie dspic30, wiec... nie wiem jak to tam jest z tymi timerami. najwyzej dostosujesz sobie <: __________________________ modul sklada sie standardowo z pliku c i h. ponizej...
Panowie, panowie - nie rozpędzajcie się w tych wyjaśnieniach o rdzeniach 8-bitowych i dziwnych myślach programistów tworzących funkcje typu _delay_ms() Jak dla mnie - bezsens. Nawet marnowanie czasu powinno być zrealisowane prosto , a nie w oparciu o software'owe biblioteki umożliwiające przetwarzanie double.... Bo jest prosto, i to bardzo prosto -...
int i; for(i=0;i<=255;++i) { OCR0B=i; } a żeby powoli, to byś musiał delay funkcje zastosować. #include <util/delay.h> ... for(i=0;i<=255;++i) { OCR0B=i; _delay_loop_2(100); } gdzie 100 w funkcji to jest odstęp (chyba cykle procesora razy cośtam, ale nie mam pewności) Dodano po 12 funkcja for(xxx;yyy;zzz)...
(at)Marek_Gorecki Jeżeli korzystasz z funkcji xprintx to i tak musisz zaimplementować funkcje odpowiedzialne za wysyłanie pojedynczych znaków. I to w tych funkcjach po prostu dodaj oczekiwanie na zakończenie transmisji. W efekcie, kiedy printf zakończy się wykonywać będziesz miał pewność, że możesz od razu przełączyć się na odbiór. Ceną tego będzie...
Zmienne liczbowe lepiej deklarować jako uint8_t, uint16_t, uint32_t i ewentualnie int8_t, itd, jeśli mają być ze znakiem, wtedy niezależnie od użytej płytki Arduino (niektóre mają int 32bity) zakres zmiennej będzie taki sam i wszyscy wiedzą o co chodzi, a kompilator w szczególności. Jeśli to jest UNO czy podobna z atmega328p to ADC jest oczywiście w...
Ja posiadam takie echo - ostatnio modifikowalem swój aparacik co dalo mi wieksze opoznienie i wyjscie stereo...
Oj kolego jest wyraźnie napisane: Jestem początkującym programistą... wiec gotowca nie ma co dawać bo człowiek się nie uczy tylko bezmyślnie go używa. Podejrzewam że nie potrafiłby jeszcze zainicjować odpowiednio timer, skoro nie znalazł odpowiedzi na prosty problem. Tak poza tym z timerem tez procek się kreci bez celu oczekując na wciśniecie przycisku....
Oj, przejrzałem pobieżnie kod - uwierz mi - skasuj go. W C jest coś takiego jak funkcje - wykorzystaj to, kod, który masz jest kompletnie nieczytelny. Każdy normalny promotor by to coś uwalił chociażby za to. Co do szybkości działania - pokaż kod funkcji odpowiedzialnych za komunikację z czujnikami. Z kodu, który masz: - funkcjie piszące do LCD są zapewne...
Zobacz w nocie jak działa timer, w szczególności funkcje pinów OCx. Zauważ, że impuls wyzwalający triak może być generowany całkowicie sprzętowo. Dzięki OCx możesz ten impuls wygenerować z zadanym opóźnieniem, w takiej sytuacji wyzwalasz tylko timer w przerwaniu detekcji zera. Tak jak kolega wyżej sugerował zapomnij o delay, szczególnie w przerwnaiu....
Delay nie chcę użyć ponieważ on mi zablokuje wykonywanie innych instrukcji jak chociażby obsługę wejść (potencjometr, switch). Chyba nie do końca dobrze ująłem w pierwszym poście co chcę uzyskać. Chciałbym zablokować jedno wyjście arduino na czas 0,2 sek (tak aby było nieaktywne) tuż przed przystąpieniem do pomiaru temperatury. O ile wiem jak wykonać...
http://obrazki.elektroda.net/60_12870844... Witam. Termometrów na elektrodzie było już dużo, w tym projekcie nie ma nic specjalnego, poza tym że wykorzystuje w miarę nowy procesor LPC1343. Projekt umieszczam w sumie tylko po to żeby podzielić się źródłami. Mam nadzieje że komuś się przydadzą. Jak wiadomo, kto stoi w miejscu, ten się cofa....
Stos dla przerwań ustawiłeś? 4\/3!!
Witajcie. Po raz kolejny zwracam się do was o pomoc. O tuż jestem bardzo początkujący z Arduino. Mój problem polega na zmiany funkcji z "delay" na funkcje "stopera". Prosty program" void setup() { pinMode(8, OUTPUT); //Dioda jako wyjście pinMode(5, INPUT_PULLUP); //Przycisk jako wejście digitalWrite(8, LOW); //Wyłączenie...
Wiem, mistrzem kodowania nie jestem, do profesjonalisty też mi daleko Nie chodzi o mistrzostwo ale o dosyć elementarne zasady. Wołasz z przerwania dużą funkcję, która wywołuje różne inne funkcje, również "delay". Te inne funkcje wołane są również z innych miejsc programu, powinny zatem być wielobieżne a napisanie takiej funkcji nie jest bardzo proste....
Kit jest fabryczny AVT sam nic nie lutowałem. Kwarc 32768Hz. to jest kwarc układu MCP7940. Atmega8 na schemacie nie ma kwarcu i piny "kwarcowe" sterują czymś na wyświetlaczu, więc μC pracuje na wewnętrznym oscylatorze RC, który ustawia się fuse bitami. Funkcje takie jak _delay_ms, _delay_us potrzebują tego makra, żeby poprawnie działały. Definicje...
Jak byś był tak uprzejmy podesłać kod to byłbym bardzo wdzięczny Proszę bardzo, kod lda M88 8MHz Dodano po 2 Nie twierdzę, że są super. Prostuję jedynie wprowadzanie w błąd. Może konkretny przykład a nię że jest inaczej niz pisałem? <ciach> Post raportowany. Uprzedzam kolegę, że jeśli w kolejnych wypowiedziach lub tematach po raz n-ty kolega...
...więc się zgadza wszystko... Wprost przeciwnie - nic się nie zgadza :!: K ma być 8 bitowa wartością wpisana do rejestrów 16-31 :) No właśnie , a Ty jako argument K , podajesz time , który to jest adresem(wskaźnikiem) do komórki pamięci RAM i na dokładkę , ten adres w procesie kompilacji nie jest znany , bo time jest zmienną lokalną. Argument K ,...
https://obrazki.elektroda.pl/9666499900_... Tego ptaszka musisz odznaczyć.
Cześć! Twój post był bardzo pomocny w odkrywaniu tego samego urządzenia po mojej stronie! Dzięki! Poszedłem trochę dalej i w pełni zintegrowałem go z HA. Oto mój autoexec.bat (ustawia również kanały, ale w nieco inny sposób): clearIO // ====== CONFIG ====== // Used to hold the delay value in millis for sleeping during closing or opening loop // Play...
https://obrazki.elektroda.pl/8545401100_... Mój poprzedni temat o Pierwsze kroki Jakiś czas temu publikowałem temat o https://obrazki.elektroda.pl/4535548900_... Wyszukujemy DHT. Biblioteka DHT wymaga też dodania Adafruit Unified Sensor Library, więc dodajemy obie biblioteki. Najpierw Unified Sensor: https://obrazki.elektroda.pl/1839946000_...
Ja tam nie mam żadnego problemu żeby go skompilować, ściągnij sobie najnowszą wersje arduino, między 1.0 a wcześniejszymi trochę pozmieniał się kod. Ja mam 1.0 i wszystko działa [syntax=c]int buttonPin = 2; int ledPin = 13; int buttonState = 0; void setup() { pinMode(ledPin, OUTPUT); pinMode(buttonPin, INPUT); } void loop(){ buttonState = digitalRead(buttonPin);...
w pierwszej fnkcji zadeklaruj "u" jako volatile, druga nie powinna być optymalizowana. 4\/3!!
Jeśli dana funkcja się kilka razy, to zwykle nie zwraca się na optymalizację kodu, a jeśli okazuje się, że wykonuje się to wiele razy, wtedy zaczyna mieć spore znaczenie. Optymalizacja algorytmów to przydatne zagadnienie ;)
https://obrazki.elektroda.pl/1957939900_... BK7252 to 32-bitowy układ Wi-Fi i Bluetooth Low Energy (LE) zaprojektowany do zastosowań audio i wideo. Można go znaleźć zarówno w produktach Tuya (wideodomofon), jak i innych (kamera szpiegowska A9). Obsługuje do 6 kanałów PWM i obsługuje dźwięk za pomocą 2-kanałowego przetwornika cyfrowo-analogowego...
Niestety program sie nie kompiluje bo wyskakuje mi błąd "Type 'RCC_APB2Periph_GPIOB' undeclared (first use in this function)" Tam był przykład dla STM32F1 dlatego zmień na: RCC_AHBPeriph_GPIOB Najprościej opóźnienie realizuje się tak: [syntax=c]for (volatile uint32_t i = 0; i < 0xFFFFF; i++);[/syntax]
Witam serdecznie! Uczę sie programować uC w C. Mam napisana funkcje Delay: void Delay(WORD czas) { BYTE timerS; timerS = czas; for (timerS=0;timerS<czas;timerS++... {} } Ma ona robic opóźnienie. Jednak zależy ono od tego jakim kwarcem taktujemy uC... Pytanie ile taktów potrzeba dla wykonania się jednej pętli? I najważniejsze...
Witam, jestem zielony jesli chodzi o programowanie ARMów a potrzebuje napisać kod implementujacy RC5 na ten procek. Problem polega na tym jak najłatwiej i zarazem elegancko napisać funkcje delay czekającą dokladnie 888 us. Generalnie nie wiem jak sie zabrać za odmierzanie tak krótkich odcinkow czasu i którego timera do tego uzyc
Racja, przy obsludze LCD czasy opoznien sa ograniczone tylko od dolu. W takim razie wykorzystaj te funkcje ktora juz masz. Daje ona w przyblizeniu opoznienie rowne 26 * useconds * czas wykonania jednej petli wewnetrznej. Ja nie znam MicroBlaze wogole wiec nie bede sie wymadrzal, ale jako czas wykonania jedej petli przyjalbym np. 5 taktow zegara (instrukcje...
W programowaniu nie chodzi o przesądy a poprawne działanie programu. Trzymanie się podanych zaleceń, będzie eliminowało przynajmniej część pytań: dlaczego cuś nie działa. Co najciekawsze mądrze piszesz, tylko źle to w praktyce stosujesz jeszcze. Janbernat napisał, że szerzysz przesądy, żeby delikatnie określić to, że niestety szerzysz (no sorki) bzdury....
https://obrazki.elektroda.pl/3803750000_... Witajcie moi drodzy Przedstawię tutaj mój sieciowy sterownik przekaźników kompatybilny z Home Assistant poprzez Tasmota HTTP. Sterownik oparty jest o PIC18F67J60 i dodatkowo oferuje m. in. odczyt temperatury, budzik, przyciski, niezależny panel WWW oraz szerokie możliwości konfiguracji. Wstęp...
Używam arduino ide ale jestem zielony. Wiedzę wchłaniam bardzo powoli. Myślałem że to będzie łatwiejsze. Na razie to udało mi się napisać prosty program .Po załączeniu attiny odmierza ona 7 minut a potem jedna dioda mruga co 10sekund a druga co 30. Oczywiście wszystko na delay więc szału nie ma. Coś podobnego mam teraz na NE555 w połączeniu z CD4060...
Przerwanie wywołuje funkcje która czeka x ilość mikro sekund (delayMicroseconds()) po czym załącza triaka. Dobre praktyki programistyczne zalecają nie wykonywać w przerwaniu długotrwałych operacji i ogóle unikać funkcji delay która zajmuje procesor wykonywaniem pustych instrukcji uniemożliwiając zrobienie czegoś pożytecznego. Ty proponujesz jedno i...
http://obrazki.elektroda.pl/3362303300_1... Ciekawość to motor rozwoju :-) Po prostu chciałem usłyszeć jak brzmią i sprawdzić jaką rzeczywiście mają moc końcówki mocy oferowane w pewnym międzynarodowym portalu aukcyjnym na literę E. Chodzi o końcówki mocy nazywane "3xtda7293 255W" . W związku z tym rozebrałem jeden z wielu wzmacniaczy,...
Jakbyś poczytał dokumentację tej metody, albo przeszukał forum, to byś się dowiedział, że te funkcje przyjmują tylko stałe i wymagają włączonej optymalizacji. Więcej można poczytać [url=http://www.nongnu.org/avr-libc/user...
Ok, tutaj są moje bazgroły na "szybcika" , ot taka radosna twórczość. Ja;Kod arduino uno do optymalizacji i usunięcia ewentualnych błedów: #include <FastLED.h> #define LED_PIN 2 #define NUM_LEDS 30 #define SPARKLE_INTERVAL 100 // Czas odświeżania iskrzenia (ms) #define FADE_AMOUNT 50 // Ilość przyciemnienia #define BASE_BRIGHTNESS 50 // Jeszcze...
https://obrazki.elektroda.pl/8335986900_... Witajcie moi drodzy Przedstawię tutaj przykład użycia 32-bitowego mikrokontrolera PIC32MX250F128B w roli hosta USB obsługującego pendrive (zapisującego i odczytującego z niego dane). W temacie opiszę najpierw płytkę którą pod tego PICa zaprojektowałem, a potem przykładowe kody obsługi pendrive...
Potrzebuję sterownika SD_SPI dla FATFS dla tlsr8258. Jeśli ktoś taki posiada, mógłby się nim podzielić? (at)ElektrodaBot AI: Jakiego środowiska programistycznego lub SDK używasz z TLSR8258 (np. Telink SDK w wersji... Wstępna ocena dostępnych informacji - Pytasz o sterownik SD-over-SPI (SD_SPI), który podłącza się do FatFs na Telink TLSR8258. - Odpowiedziałeś...
Witam Panowie niestety nie daję rady , czytam i czytam i co mi jedynie wychodzi to włącz , wyłącz , a potrzebuję coś takiego potrzebuje zrobić coś takiego aby po naciścięciu jednego przycisku S1 zapalała się dioda D1 na określony czas , w tym czasie naciśnięcie przycisku S2 spowoduje zapalenie diody D2 także na określony czas ,następnie przycisk zostaje...
Po trzecie primo: w funkcji _delay_ms() nie stosuje się zmiennej jako argumentu (tu wyjaśnienie: http://mikrokontrolery.blogspot.com/2011...
delay pamięć delay pamięć funkcja delay relay delay
gaźnik husqvarna kosiarka actros moduł silnika router mocny
radio słabo odbiera stacje radio słabo odbiera stacje
Nokia 6300, 5310, 6303i 2MP – migająca klawiatura, boot-loop, flashowanie, naprawa PMIC TP.SK506S.PB802 Android Smart TV Firmware Download for Panda, Akai, Skyworth, Fuego Models