Witam, Mam pytanie co do obsługi termometru ds18b20 i ogólnie komunikacji 1wire. Przejrzałem kilka gotowych bibliotek do obsługi 1wire i wszystkie zawierają opóźnienia programowe (delay). Znalazłem też informację, że można wykorzystać UART do tego celu ale z tego co widzę tam również...
Witam Temat być może pojawia się po raz wtóry, ale poprzednie tematy nie rozwiązały problemu. Chcę wykonać prosty zegarek cyfrowy oparty na uC ATMEGA8(L) oraz wyświetlaczu LCD 2x24. Wszystko chodzi bez zarzutów, gdyby nie fakt złego odliczania czasu przez mój uC. Otóż mój ATMEGA8...
Witam. Ten sam grek napisł jeszcze inne funkcje opóźnień () - 3 wynik. Wyglądają bardzo podobnie do Twoich. Tylko w nich parametrem funkcji jest liczba pętli a nie mikrosekund. Może w tym tkwi problem (nie 4us ale 25*6+16 cylki maszynowych).
Zapomniałeś tylko dopisać, że ustawiłeś samodzielnie bit UDIS w rejestrze CR1 timera, który właśnie coś takiego powoduje. Nie wiadomo jednak po co go ustawiłeś. Nie potwierdzam, nie zaprzeczam ale faktem jest, że obecnie nie ustawiam bitu UIDS w rejestrze CR1 i bez ustawienia bitu UG...
Witam Pisze własnie program do sterowania w LCD w C pod Microblaza o zegarze 100MHz i mam problem z czasem. Mianowicie, znalazłem sobie funkcje : void czekaj(unsigned int useconds) { int i,j; for (j=0;j<useconds;j++) for (i=0;i<26;i++) asm("nop"); }...
zapoznaj się zprostą jak drut funkcją: _delay_ms(3000); // tu będziesz miał opóźnienie 3s chociaż nie aż tak dokładne co do taktu zegara. Do odmierzania taaak ogromnie długich czasów to funkcja jak znalazł. Zwykle do takich potrzeb rzadko potrzeba precyzji co do taktu zegara. jeśli...
Witam wydłubałem z urządzenia uszkodzonego mechanicznie Z telewizora? Jakie układy siedzą obok na płytce? delay line Linię opóźniającą. ASAHI GLASS CO., LTD. MADE IN JAPAN Przy takich rozmiarach i wykonaniu ze szkła to mi wygląda na linię opóźniającą chrominancji...
Na potrzeby obsługi termometru DS18B20U (1-wire) potrzebuję funkcji, która oczekuje określoną ilość czasu z dokładnością do mikrosekund. Znalazłem coś takiego: [url=]Link Niestety z moich testów wynika, że ta funkcja nie działa prawidłowo - wydaje mi się, że ze względu na dodatkowy...
Często w bibliotekach LCD sa delay. Szukaj takiej co ich nie ma albo wysyłają z bufora ekranu do LCD na przerwaniach. Do obsługi LCD używam biblioteki LiquidCrystal_I2C.h ona używa delay, jak to sprawdzić ??? Reszta jest już prosta. Każde zadanie piszesz w taki sposób jakby działało...
Witam, Od pewnego czasu przestawiłem się z AVR na STM32, zbudowałem sobie proste ramię robota na 5 serv + sterownik Maestro od pololu, wszystko ładnie śmiga. Tydzień temu kupiłem sobie takie Gamepad: . Chciałem za pomocą tego pada sterować ramieniem. I już na 1 kroku się zupełnie pogubiłem....
Domyślną metodą kontroli napięcia 230 V AC jest kontrola poprzez triak. Tak zrealizowany jest każdy ściemniacz. Kontrola taka oparta jest o kontrolę fazy - triak jest otwierany jedynie na pewną część sinusa napięcia przemiennego. Zasadniczo można by wykorzystać do takiej...
I2C to chyba nie jest dobry trop. Zrobiłem troszkę zmian w bibliotece zmieniając kilka rzeczy. Po tych zmianach udaje mi się próbkować troszkę szybiej około 18-20 razy na okres. W pliku Adafruit_ADS1015.cpp zmieniłem funkcję delay na delayMicroseconds. Było to organicznie uniemożliwiające...
hmmmm... kurcze:( Narazie mam ustawiony czas 5 mikrosekund i widać efekt delikatnego migania, dopiero przy czasie jenej mikrosekundy nie widać go... Zasilanie jest albo z jednej 9V baterii albo z 6x1,5V, za każdym razem efekt ten sam:( To może zamieszcze program: #include <avr/io.h> #define...
Jeśli potrzebna jest Wam procedura delay, to możnaby zrobić coś z HPT np. Procedure Delay(x:Integer); //x - czas przerwy w mikrosekundach var f,t1,t2:Int64; begin QueryPerformanceF... //czestotliwosc HPT if f=0 then exit; //wyjście jesli nie ma HPT QueryPerformanceCounter(t1);...
Ok, zapoznałem się już z instrukcją programowania, ale wciaż nie zgadza mi się czas "INTERSCAN CODE DELAYS" W tej instrukcji również interwał czasowy ustawia się co 100us (mikrosekund), Ty napisałeś, że ustawiłeś 100ms, czyli wychodziło by na to, że zeskanowałeś ten kod 1000 razy....
Wprowadziłem stosowne zmiany w moim kodzie: - dodałem odpowiednie opóźnienia po zmianie stanu linii EN oraz RS (1 mikrosekunda), - nieco zmodyfikowałem ustawienia wyświetlacza. [syntax=c]/* * main.c; plik zgodny z biblioteką CMSISv1p30_LPC17xx/inc/LPC17xx.h * CMSISv1p30_LPC17xx/src/system_L...
Niezły dowcip z tym 1000000 * NOP A nie słyszałeś nigdy o pętlach? Napisz sobie taką procedurkę: ;-------------------------------------... Podprogram opoznienia 1 s dla zegara 12 MHz ;----------------------------------... MOV R1,#250 ;...
No wiem wiem, zauwazylem ta glupote:) Szkoda tylko, ze nie jest mi do smiechu:( Dalej to nie dziala... Robilismy kiedys na laborce bardzo podobny problem, z tym ze w asemblerze, a nie w C. Pomimo tego napisalem to identycznie jak bylo na laborce.... no i dalej nic:( Przeczytalem juz wszystko na temat...
Popraw błąd w 76-tej linii programu. Sprawdź, czy nie ma zimnych lutów przy elementach C7 i R9. Błąd poprawiony, przy elementach C7 i R9 wszystko ok. Nadal nie działa. Dodano po 1 [syntax=c]/* hmc5883l lib 0x01 copyright (c) Davide Gironi, 2012 Released under GPLv3. Please...
Interwałometr to urządzenie, które pozwala przy pomocy aparatu fotograficznego robić filmy poklatkowe o dużej rozdzielczości. Film poklatkowy robi się przez złożenie wielu zdjęć obiektów i procesów zbyt wolnych dla ludzkiego oka, np. zachód słońca lub wzrost rośliny. Większość...
Chciałbym wrocic do procedur jakie napisałem na wstępie: void USART_Transmit( unsigned char data ) ... void write_temp( short int t) , otoz chce użyc jakiejs alternatywnej procedyry, zeby byla o wiele prostrza, jak ktos taki jak ja (poczatkujacy) spojrzy na ten program to bedzie wiedzial...
Witam Chciałbym się dowiedzieć czy za pomocą jednej płytki ArduinoUNO, byłaby możliwość sterowania kilkoma serwami MG996r niezależnie wraz z kontrolą przyspieszenia i hamowania każdego z nich. Kupiłem niedawno robota "robot 6 DOF", coś jak na linku poniżej Płytka posiada 6 wyjść...
DS1820 podpinam do 4 pinu portu B. W makrze BusHigh ustawiam mozliwosc "podciagania" lini, a w BusLow - pin 4 jest wyjsciowy. Czasy sie zgadzaja bo sprawdzalem w symulatorze avr studio. Dodam jeszcze ze DS1820 jest zasilany dodatkowa linia. Rezystor podciagajacy dalem zgodnie z zaleceniami 4,7 kOhm....
No i zawsze tak będzie, bo jest JEDEN delay, a powinny być DWA. Rozwiń sobie swój kod, żeby zobaczyć gdzie jest problem: [syntax=c]GPIOA->BSRR = 1 << 5; //set bit Delay(1000); GPIOA->BSRR = 1 << 21; //reset bit GPIOA->BSRR = 1 << 5; //set bit Delay(1000);...
Każdy, kto zaczyna swoją przygodę z Arduino, zwykle na samym początku staje przed dylematem w jaki sposób prosto i przejrzyście zarządzać zadaniami, które uruchamiane powinny być w określonych i najczęściej różnych interwałach czasowych. Jest to problem tzw. harmonogramowania zadań....
Witam. Problem jest znowu z petla opozniajaca ,jak pisalem juz wczesniej. Przy kwarcu 16Mhz zapis _delay_us(1500); nie da opoznienia 1500us, poniewaz wartosc 1500 przekracza maksymalne opoznienie dla kwarcu 16Mhz! W bibliotece delay.h jest wyraznie napisane : /** \ingroup util_delay ...
#define F_CPU na sam początek kodu, przed include'ami, a najlepiej to w makefile umieścić jako jedną z opcji, tak żeby została przekazana do kompilatora jako np. "-DF_CPU=16000000UL" Przyjrzyj się temu: static __inline__ void _delay_ms(double __ms) { uint16_t __ticks; double...
No więc tak, cały program jest podzielony na 3 pliki: -main.c <-główny plik, zawiera funkcję main() -functions.h <-plik nagłówkowy -functions.c <-plik zawierający definicje wszystkich funkcji, których prototypy znalazły się w poprzednim pliku Zaczniemy od pliku functions.h: ...
Skoro już jesteśmy przy konstruktywnych krytykach, to i ja dodam kilka uwag: 1) Schemat jest bardzo słabo czytelny. Staraj się stosować Vcc i GND, bo np. okolice resetu wyglądają na pierwszy rzut oka co najmniej dziwnie. Warto rozdzielić sekcje zasilania i głównego obwodu. Oto kawałek...
No tak... ;) Mam jeszcze takie pytanie, napisałem ostatnio funkcję opóźnienia (delayus/delayms). Generalnie działa poprawnie, ale dzieje się jedna dziwna rzecz, której przyczyny nie mogę znaleźć. Opóźnienie zrobiłem z wykorzystaniem timera TIM2. Działa to tak, że gdy jest wywoływana...
To dziwne bo ja niemiałem najmniejszych problemów... #include <avr/io.h> /*******************... Definicje stałych ****************************... F_CPU 1000000 ...
Znalazłem pewne niedopatrzenie w programie. I upieram się przy adresie 94h lub 9B skąd 4d? Config Scl = P3.0 Config Sda = P3.1 Config I2cdelay = 1 ' P1.2 bedzie asygnowane jako MRQ Do ' glowna petla programu P1.2 = 0 ' MRQ na logiczne "0" 'TID odpowiada SDA-0 delay delay...
Witam Chcę zrobić w miarę dokładny timer na ATMega8. Ten na którym wykonuje prototypowe projekty działa ale się bardzo późni. Otóż przedstawiam problem: Wykonałem układ zapalający diodę LED przy pomocy ATMega8 ( nic więcej - taki prościutki układ). DO tego...
Zaznacze na początku, że nie jestem jeszcze zbyt mocny jeśli chodzi o mikrokontrolery. Napisałem (na podstawie kodów znalezionych w sieci) programik, który za pomocą przycisków pozwala zwiększać/zmniejszać wypełnienie sygnału (PWM) i traktuje nim diodę. Chciałbym za pomocą dwóch innych...
Biorąc pod uwagę fakt, że jeden bit w 1-wire trwa kilkadziesiąt - kilkaset mikrosekund, oraz to, że można go zrealizować w pełni sprzętowo korzystając z UARTu, taka zabawa IMHO nie ma sensu. No racja :] Ale są przypadki gdzie moje rozwiązanie jest najoptymalniejsze. Ja mam do obsługi...
Dałem tam tego delay(55) bo czujnik musi mieć czas na konwersję. Więc delay powinien być pomiędzy wydaniem komendy "mierz", a przejściem do odczytu. Czyli co najwyżej powinieneś wydłużyć "_delay_ms(15);". Jeśli zaadresujesz urządzenie I2C do odczytu, to ono decyduje o tym kiedy odpowiedzieć....
Nie działa Ci z to z millis bo może źle używasz. Jak masz przez 200ms kręcić kołem to wstawiasz w loop funkcję, która włącza kręcenie kołem i zapisuje czas startu, w kolejnych wywołaniach sprawdza czy już minęło od chwili startu 200ms i ewentualnie wyłącza kręcenie kołem. Jak coś...
Tak wiec funkcje np. DELAY(1,6) daje mi opoznienie okolo szescdziesieciu mikrosekund (jedynka oznacza opoznienie w mikrosekundach...dwojka oznacza mili sekundy tylko ziarno to jedna milisekunda) procesor to atmel 89C5131 kwarc 12Mhz...zapomnialem dodac ze 1-wire ogolnie mi dziala moge dokonac pomiaru...
Witam. Mam program który generuję dźwięk na zestawie ZL3AVR. Chciałbym generować dźwięk o określonej częstotliwości, a nie tak jak jest teraz, czyli w postaci mikrosekund. Wiem, że 1hz to 1/1s ale już gdy liczę na mikrosekundach, coś jest źle. Pomoże ktoś ? #include...
Jakiego typu jest absolutnie absurdalny i perwersyjnie wypaczony pomysł, aby mając OSa robić takie delay'e w wątkach ??? Również o podobną perwersję zakrawa wykonywanie przerwania timera co mikrosekundę tylko po to, zeby zmniejszać tam jakąś zmienną. Wez timer, skonfiguruj go jako...
Panowie postanowiłem wykonać test wbudowanych w atmel studio typów fixed point vs float. Na razie tylko samych _Accum z saturacją ale to co zobaczyłem nie napawa optymizmem gdzie jest błąd?Dodam że -atmel studio 7, -wewnętrzny zegar 8MHz -Atmega16. -Do pomiaru czasu używam timer 1. Najpierw...
Od niedawna uczę się programowania mikrokontrolerów w języku C. Cwiczę na ATMega8, programy piszę w WinAVR, programuję przez USB. Języka C do uC uczylem się narazie z krótkiego tutorialu umieszczonego w internecie. Potrafię już sterować silnikiem przez mostek H i PWM, dzisiaj napisalem...
Mozesz isc na latwizne i uzyc kodu ponizej. Na 100% dziala on na kwarcu 11059200 ale ten Twoj tez chyba styknie. W listingu masz petle opozniajaca 1 ms wyznaczona doswiadczalnie oscyloskopem, nie jest ona napewno dokladna co do mikrosekundy ale taka dokladnosc nie jest w tym zastosowaniu potrzebna. Wystarczy,...
Realizując tutorial napotkałem się na problem. Pierwsze aplikacje są dobrze udokumentowane, następne troche słabiej. Mam problem z obsługą wejść w programie. W programie głównym jest wykorzystywana zmiennaklawisz_s1_wejscie a nie jest ona zadeklarowana w pliku nagłówkowym. Analizując...
#include <avr/io.h> /*******************... Definicje stałych ****************************... F_CPU 1000000 /* 1MHz zegar procesora */ #define...
Repeated variable name __c Repeated variable name __c within block. Rename it typedef debugging not supported COFF file contains inconsistencies or unsupported features. Debug info could be wrong or incomplete to musi zniknąć - pewnie jakieś problemy z bibliotekami... void czekaj(unsigned...
Pisanie funkcji opóźniających to wyważanie otwartych drzwi. Są do tego już zrobione funkcje, musisz tylko dołączyć do programu plik util/delay.h i możesz ich używać. _delay_ms(milisekundy); _del... w funkcji klawisz zamiast czekaj(30*tau); wpisz np. _delay_ms(5); program...
Witam, Schemat układu jest niekompletny, brakuje kwarcu taktującego. Z programu wywnioskowałem, że jest to Xtal 12MHz. Długość trwania procedury obsługi przerwania od Timer0 wraz z preambułą nie musi być dokładnie równa 10 cyklom maszynowym (#3CBA). To wniesie pewien błąd pomiarowy...
Niezbyt wiem jak działa platforma, na którą programujesz – ale z czystym sercem mogę ci napisać że oba fragmenty kodu które napisałeś są błędne. W obu fragmentach kodu tworzysz pętlę, która powtarza się bardzo, bardzo wiele razy w krótkim czasie – przez co pochłania...
Autor poniższej konstrukcji przedstawiał już podobny układ - miniaturowy zegarek oparty o ATtiny ( Krok 1: Przygotowania Mikrokontroler Układ oparty jest o mikrokontrolery AVR firmy Atmel ATtiny85. Autor wykorzystał element w obudowie SOIC z uwagi na niezwykle mały rozmiar....
Zmodyfikowałem delikatnie bibliotekę, zamiast korzystać z funkcji microdelay z dodanej biblioteki używam HAL_Delay(). Czyli zmieniłeś delay z MIKROsekund na MILIsekundy. Zapewne w bibliotece był potrzebny ten dokładniejszy, więc nawet jeśli przeliczyłeś argumenty, to pewnie po zmianie...
W temacie prezentuje: 1. Programator optoizolacyjny albo jak kto woli przejściówka do programowania ;) 2. Program na linuxa do programowania avr przez ISP 3. Inne schematy i konfiguracje działające z tym programem. Może zaczne od wad :) Wszystko co tutaj prezentuje to względnie...
Wielkie dzięki za pomoc nadzieja wróciła , adres wyświetlacza 0x3c Raystar pozostaje wysłać do lcd ten adres znalazłem w necie następny kod Spróbuję go dostosować zerknij czy sie nada do zmian i2cmaster.c [syntax=c]//////////... zawiera funkcje wykorzystywane...
Hi wszystim!!! Dziala!!Chocby z predkoscia 1Mhz,wiecej nie sprawdzalem. Oto kod: Czas podajemy w mikrosekundach. procedure DELAY(czas:integer); var zm1,zm2 : int64; cykle : int64; begin cykle:=round(czas/1000000...
Jak należy rozumieć tą linię? Delay1ms(700); // opóźnienie 255ms Ile dokładnie wyniesie opóźnienie? Jeśli 255ms to układ nie wyrobi się z konwersją. A dalej taki "kwiatek": //opóźnienie około 1 sekundy dla kwarcu 8MHz void Delay(unsigned int time) Jeśli...
#include <avr/delay.h> funkcja _del... _delay_us(x); pierwsza opóźnia o x milisekund druga opóźnia o x mikrosekund Pozdrawiam Robert
Witam. Mam problem z odczytem stanu wejść PD2 i PD3 w Attiny 2313 i WinAVR C++. Do wejść podłączone są switche zwierające do masy. Nie mam reakcji na naciśnięcie klawisza. Nie wiem czy dobrze oprogramowałem wejścia. Nie wiem gdzie popełniam błąd. O to wycinek kodu programu: ... //----...
Niby dlaczego za małe(krótkie) Procedury delay liczą 256*256 cykli co daje trochę ponad 65ms dla zegara 1 MHz. Procedury, które podałem łatwo dostosować do dowolnego zegara. Wystarczy pozmieniać wartości ładowane do odpowiednich rejestrow. W komentarzach podane są cykle zegarowe zajmowane...
Temat zostaje przywrócony do życia - mam nadzieje, że pacjent nie zejdzie w trakcie....;). Otóż magistrala 1Wire wymaga dobrego time'ingu, czyli czegoś czym była zupełnie osobna linia zegarowa np. w RS232. Raz podany sygnał w zadanym tempie musi zostać utrzymany do końca wymiany danych...
Witam, buduję sterownik MIDI na uC ATMega8 (język C) i coś nie bardzo mogę się dogadać z komputerem. Prosiłbym o pomoc co może być nie tak. Schemat obwodu (oczywiście bez części programatora, bo ten działa dobrze :)): i kod źródłowy: Krótki opis działania: Program ma...
ok ale jak to realizujesz? ja probuje wlasnie zrobic w ten sposob... tzn probuje narazie zrobic opoznienia od 1 do 255 us void czek(unsigned char ile) { TCCR0=0x02; //zalacz TCNT0=(256-ile); ... TCCR0=0x00; //wylacz } int...
dołącz #include <util/delay.h> i masz _delay_ms();//milisekundy _dela... pętla for(i=0;i<1000;i++) { } opóźnia ale jest wykowywane bardzo szybko i nawet tego nie zauważysz[około 1ms]
Witam, mam problem, nad którym spędziłem całą noc i im dłużej siedzę tym mniej wiem. Mam układ, w którym MAX485 jest odseparowany od ATMEGA8 przez transoptory. MAX485 ma zasilanie (na schemacie zaznaczona jako) VCC_M i GND_M, procesor VCC i GND, rezystory po 510R. Port PD2 służy do przełączania...
A funkcja delay jest twoja? Dziala tak jak powinna? 10*250 mikrosekund to 2.5ms. Nie wiem jak tam z twoimi oczami, ale moje takie odjechane nie sa zeby zobaczyc takie mryganie ;)
Raczej tak. Opoznienia z delay.h sa w assemblerze (glownie) wiec wiadomo dokladnie ile taktow sie wywoluja, sa tez sprytnie optymalizowane, tak, zeby odmierzane czasy byly jak najdokladniejsze. Twoje procedury sa o tyle gorsze, ze sa czesciowo w C, wiec opoznienie bedzie zalezec od wersji kompilatora,...
Mój błąd - użyłem słowa "biblioteka" do plików "*.h" z funkcjami inline. Żaden z dołączanych przeze mnie (jawnie) plików h ( io, signal, wdt, delay, pgmspace ) nie odwołuje się (poprzez nagłówek extern) do plików obj. Więc mam nadzieję że będzie ok. Jeśli te same operacje będą...
beznadziejny_elektronik -> tak jak pisze janbernat czerp informacje ze źródeł a nie z powielaczy w internecie wprowadzających swoje błędy, chociaż powiem ci szczerze , że na tej stronce też jest to poprawnie opisane więc nie wiem skąd takie wnioski wyciągnąłeś void _delay_us(double...
Na początek powinno być: #define DDR_SPI DDRD zamiast: #define DDR_SPI PORTB Kolejna uwaga: staraj się pisać programy nie wpisując wartości dla wszystkich pinów portu! Stan wysoki na wybranym pinie łatwo osiągniesz np. tak: PORTD|=0xF0; // dla pinów PD4, PD5, PD6 i PD7...
Witaj, Jeśli twój program podczas odliczania czasu nie musi nic robić to wystarczy wpisać do kilku rejestrów odpowiednie wartości i potem odejmując je rekursywnie obliczyć czas. Wiedząc ile czasu zajmuje jedna instrukcja. Np dla 8MHz 1 instrukcja zajmuje 1/2 000 000 sekundy czyli 0,5us musiałbyś...
Po kompilacji programu atmega powinna zapodac sygnały na portach: PB1,PB2,PB3 - są to sygnały na 3 serwomechanizmy. U mnie właśnie nie ma tych sygnałów. Poniżej Kod programu: [syntax=cpp] #define F_CPU 1000000L #include <avr/io.h> #include <avr/interrupt.h> #include...
Witajcie! Napotkałem na pewne problemy, gdyż potrzebuje napisać program, który będzie wykonywał pewne operacje co dokładne odstępu czasu w mikrosekundach. Moja funkcja "opóźniająca" wygląda następująco: void delay(int skundy) { int s; for (s=0; s<skundy;...
Dodano po 2 Aaa.. no i popsprawdzałem opóźnienia, zrobiłem na jednym pine przebieg teoretycznie 100kHz, multimetr pokazał 99,99kHz więc całkiem nieźle. HEHE... No już wiem czemu nie działało... Boże jak się nad czymś za długo siedzi to się nie zauważa najbardziej oczywistych...
Witam wszystkich. Mam kod zaczerpnięty z którejś ze stron w internecie. Działał on w pełni na mikrokotrolerze Atmega8 z kwarcem 8Mhz. Mój projekt jednak potrzebuje mniejszego procka i próbuję ten sam program przenieść na Attiny26. Nie mogę zlokalizować ostatniej, tak mi się wydaje że...
Nie pomija tylko zapala ją a później w kilka mikrosekund gasi. Przenieś drugi delay wyżej.
Nie wszystkie AVRy mają jednopoziomowy system przerwań. Ale to i tak nic nie zmienia. Jeśli nawet wykorzystamy wielopoziomowy system to mamy wybór między dżumą a tyfusem. Albo wyższy priorytet będzie miał LED i będzie kaszanił transmisję OW, albo wyższy priorytet będzie miał OW, ale będzie...
zrobiłem test z pętlą, w której program zwiększa wypełnienie o 1 mikrosekundę powtarzając od wartości 700 do 2200 mikrosekund. Wszystko działa płynnie i ładnie do 765, po tej wartości nagle serwo wykona ogromny skok i idzie znów dalej płynnie (jakby nie było zakresu ustawienia 765-1500)....
Witam. Napisałem programik na procesor z tytułu, który mierzy długości impulsów na pinie, i wysyła wynik pomiaru na UART. Postanowiłem wykorzystać to do przechwycenia sygnału z pilota do tunera TV SAT (TechniSat, bo taki miałem pod ręką :) ), taktowanie: kwarc 4MHz, odbiornik typu TSOP,...
Cześć, chciałem przeportować kod do odbioru RC5 autorstwa Dondu za ATMega8 na ATTiny13 - REzystory diod 470Ω, nie zmieniłem na schemacie. Pilot samoróbka, ale 100% pewniak. No więc w czym problem? Uruchomiłem przykład na ATMega8, wszystko pięknie śmiga. Program kompiluje się...
Zapewne dlatego, że okres (opóźnienie) to odwrotność obrotów (częstotliwości), więc przeliczaj czas półokresu ze wzoru: T = (1 / (rpm / 60)) / 2 lub stablicuj czasy dla założonego zakresu obrotów z rozsądnym krokiem i wstawiaj je do funkcji delay. Na przykład dla 100, 200, 500,...
Prosiłbym o sprawdzenie kodu stopera na mikrokontroler Atmega32 współpracujący z kwarcem 16MHz. Prescaler ustawiony na 1024, timer w trybie CTC. Wynik wyświetla się z dokładnością do mikrosekund. Czasami jednak dostaję wynik w stylu 0,000000s, czy 0,002123s, który jest fizycznie niemożliwy...
Mały update: u mnie działa na Ubuntu + XBMC. Z dwoma wyświetlaczami podłączonymi do jednego układu LCD2USB, wyświetlającymi w sumie 4 linie konfigurowalne w pliku /home/username/.xbmc/userdata/LCD.xml T... wszystko zrealizowałem metodą prób i błędów. Jak zawsze można to zrobić bardziej...
z tego co wiem to delay to komenda to odliczania czasu w mikrosekundach, a do dokładnego odliczania czasu należy używać funkcji Timer.
Teraz silnik działa elegancko :) . Natomiast mam pytanie odnośnie prędkości gdy zmieniam cykl na wyższą wartość mikrosekund to silnik przyśpiesza. Gdy zmniejszam wartość to silnik zwalnia. Pytanie jak ustawić tą częstotliwość jaka jest maksymalna dla tego silnika. Dlaczego gdy zmniejszam...
LOLB (Lots Of LighBulbc - ang. dużo żarówek) to element oświetlenia wnętrza, który zainspirowany jest światłem, jakie daje np. kominek - ciepłym i drżącym. Przedstawiana poniżej konstrukcja to druga wersja tego urządzenia, składająca się z 16-kanałowego ściemniacza żarówek,...
Jakieś pomysły Tak - nauka. Zacznij od bloga kolegi dondu gdzie znajdzesz podstawy mikrokontrolerów oraz języka C. Czytałem, że Procesor nie potrafi wykonywać 2 czynności na raz no rzeczywiście jak zauważysz róznicę rzędu mikrosekund między poszczególnymi czynnościami, to rzeczywiście...
delayMicroseconds() wprowadza opóźnienia w mikrosekundach, a nie milisekundach. Powinieneś użyć delay() zamiast delayMicroseconds().
Mój kod: void LCD_String_xy_int (char row, char pos, int liczba) { char bufor[2]; sprintf(bufor, "%d", liczba); LCD_String_xy(row, pos, bufor); } LCD_String_xy po prostu wypisuje ciąg znaków w podanym miejscu (row to wiersz, pos...
Co powodowało te błędy odczytu z dyskietek? Nie udało mi się ustalić co. Błąd raczej przy odczycie niż zapisie. Z każdym odczytem nieco inny wynik. Czasami dało się odebrać poprawnie kilkanaście bajtów, czasami nawet trzech czy czterech nie dawało rady. Czyżby zakłócenia? Czasami...
Twój program z postu [url=]#3 wydaje się być poprawny. Wartości jakie wpisujesz do OCR1 (czas w us) powinny być w okolicach 1500 +- 500 - tak z grubsza, te powinny zaakceptować różne serwa. Te 5000 o których wspomniałeś to raczej przesada. Jak to zasilasz, bo w tym może być problem. Tu...
Też tak mi się wydaje. Sprawdzę po niedzieli czy to problem z delayem od HALa bo z tym programowym problemu raczej nie ma. Stosuję dwie funkcje ponieważ jedna daje opóźnienia w ms - HAL_Delay(), a druga to zrobiona programowo na timerze funkcja delay() która ustawia opóźnienie w mikrosekundach.
Przecież obsługa tego czujnika to kilkadziesiąt mikrosekund, a odczyt całości w najgorszym razie to kilkanaście milisekund. Pewnie czekasz bezczynnie na wynik używając delay(), bez kodu trudno powiedzieć. nie używam delay(), odczyt z 4 czujników wraz z wysłaniem na ekran zajmuje ok 1s
Dosłownie chodzi o 1-2 ms różnicy. A z czego te różnice się biorą? 1-2ms to sporo. Różnica między kanałami w karcie dźwiękowej to mogą być niewielkie różnice w górnej częstotliwości granicznej wzmacniaczy co w najgorszym przypadku da ułamki mikrosekund, elektrycznie zrobić opóźnienie...