(at)tmf - dziękuję za miłe słowa :) Właśnie takie było założenie co do grupy "docelowej". Myślę, że jeszcze długo ATmegi i ATtiny będą punktem startowym dla hobbystów ze względu na nawał informacji w Internecie i mocno zakorzeniony pogląd jakoby wszystko inne było drogie/trudne itd. W sumie chciałem, żeby w poradniku było trochę więcej nawiązań do...
https://obrazki.elektroda.pl/4024863600_... W tym temacie zbuduję od 0 prosty ściemniacz LED sterowany dwoma przyciskami. Projekt będzie oparty o PIC12F683, którego tu zaprogramuję bez użycia zewnętrznych bibliotek - GPIO i PWM zostanie skonfigurowane wedle informacji z noty katalogowej. Do tego dobiorę kilka zewnętrznych elementów...
IRQ tester https://obrazki.elektroda.pl/3243423400_... IRQ Tester to proste narzędzie, głównie do testowania czasu odpowiedzi na impulsy, lub czasów międzyzboczowych dostarczonego sygnału. Program został napsiany na ukontroler AVR Atmega168, a jego głównym zadaniem jest funkcja multiwibratora monostabilnego, którego działanie polega...
OK. Zdaje się, że bez kodu trudno będzie to wyjaśnić. Inicjalizacja TIM1: [syntax=c] void timc_startup(void){ // timer clock and interrupt __HAL_RCC_TIM1_CLK_ENABLE(); // Set Interrupt Group Priority //HAL_NVIC_SetPriority(TIMc_IRQn, TIMc_IRQ_PRIORITY, 0); //HAL_NVIC_EnableIRQ(TIMc_IRQn); hTIMc.Instance = TIMc; hTIMc.Init.Period = TIMc_PERIOD-1; trace_printf("timHandle.Init.Period:...
Napisałem delay oparty o timer konfiguracja TIM1: void TimerConfig() { RCC_APB2PeriphClockCmd(RCC_APB2Perip... ENABLE); TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_TimeBaseStructure.TIM_ClockDivision=... TIM_TimeBaseStructure.TIM_CounterMode=TI... TIM_TimeBaseStructure.TIM_Period=72; TIM_TimeBaseStructure.TIM_Prescaler=1;.....
Do pomiaru krótkich czasów czy z dużą rozdzielczością używa się przechwytywania w timerach a nie pulseIn(). Podaj jakieś przykłady :?: Z pamięci nie napiszę a na szukanie po projektach i wycinanie istotne fragmentów kodu szkoda mi czasu. Ustaw timer w tryb przechwytywania. Jeśli chcesz mierzyć czas jednego z poziomów, w przerwaniu zmieniasz zbocze....
No to tak: Jeżeli dobrze czytam program to masz 4 przyciski, timer ustawiony tak aby przerwanie od niego występowało co 50 Hz i nic poza tym. Używasz tylko przerwania od Timera - boisz się innych? Czy może to tylko nieznajomość AVR. Aż prosi się żeby przyciski działały pod INT0 / 1 - zewnętrzne przerwanie i po kłopocie. Następnie _delay_ms(750); zamienił...
To technicznie też nie to - tutaj jest po prostu zezwolenie dla NVIC na przerwanie typu CC od timera, ale jeszcze trzeba właczyć odpowiednie przerwania w timerze. Zapewne jest to przerwanie od porównania, czyli właśnie po tym TIM_Pulse. Jak już mówiłem - nie używam tej spartaczonej biblioteki, więc nie wiem co dokładnie JESZCZE robią te funkcje... 4\/3!!
nie wiedziałem, nie używam Logo tylko s7-300 podejrzewam że tam nie ma takiej funkcji Przejrzałem dostępne funkcję w Logo http://www.scribd.com/doc/33288380/Logo-... i zastanawiam się czemu Wiping w którym trzeba użyć timera a nie Miscellaneous – Pulse relay?
Po pierwsze: Kolega sobie najpierw poszuka dokumentacji tego PLC, przestudiuje ją uważnie ze zrozumieniem, a potem zacznie podłączać coś do niego (aby nie zamienić sprzętu w szrot) . Po drugie: Przeanalizuj sobie układ zasilania wyjść - wszystko jak na dłoni. Zwróć uwagę na zaciski 1M, 1L+ itd. http://obrazki.elektroda.pl/5832352800_1...
A może na timerach??? zawsze to lepszy kod :D [syntax=c] #include "Timer.h" Timer t; int Data, wartosc = 0; bool strob_b; void setup() { Serial.begin(9600); pinMode(5, OUTPUT); } void loop() { if (Serial.available()) { Data=Serial.read(); switch (Data) { case '1': digitalWrite(5, HIGH); break; case '2': digitalWrite(5, LOW); break; case '3': strob_b...
Witam, Na początek przestawię kod konfiguracji timera: [syntax=csharp] LPC_SYSCON->SYSAHBCLKCTRL |= (1 << 9); LPC_TMR32B0->TCR = 0x02; LPC_TMR32B0->PR = (SystemCoreClock/1000000) - 1; LPC_TMR32B0->MR0 = 1; LPC_TMR32B0->MR2 = PI_MAX_PERIOD; LPC_TMR32B0->MCR = (1 << 0) | (1 << 1) | (1 << 3) | (1 << 4)/*...
To napewno wynika z nowej konstrukcji tego procka jest to prawie nowy układ na rynku. Układ ten wyparł AT90S2313. Ja Też mam problem z min dobrze napisamy program błędnie działa na tym nowym. Czyli przerwania od timera przychodzą znacznie póżniej niż mają przychodzic Na AT90S2313 działał poprawnie. Także moim zdaniem wynika to głównie z konstrukcji...
Witam, potrzebuje stworzyć prosty układ obsługujący ultradźwiękowy czujnik odległości firmy Mobot. Wynik wyświetlany jest na wyświetlaczu w mm. Korzystam z bibliotek TWI_Master od AVR oraz jakiś ogólnodostępnych hd44780. Dodkowo korzystam z biblioteki dostarczonej przez producenta: Sonar_TWI.c: [syntax=c]//////////////////////////////...
Moja funkcja RC5_Init: if (T0IR & 1) sprawdza ?
LPTIM ma przecież: External clock source over LPTIM input (working with no LP oscillator running, used by Pulse Counter application) Wydaje się to dużo lepszą opcją niż budzenie co przerwanie. Impulsy taktują timer, cały układ jest wyłączony, co godzinę budzisz układ przez RTC, odczytujesz licznik timera, odejmujesz od poprzednio odczytanej wartości,...
TIM_Pulse to jest zwykły współczynnik wypełnienia sygnału. TIM_ClockDivision jest to podziałka zegara -> timer masz taktowany określonym zegarem, który jeszcze możesz odpowiednio podzielić. TIM_OC1PreloadConfig() robi to co jest w opisie funkcji, nie wiem co więcej dodać. Ponadto: CCR1: "It is loaded permanently if the preload feature is not selected...
Nie możesz tylko używać Timera2 do innych celów, bo właśnie jest on używany przez RC5 Funkcja GETRC5 domyślnie wykorzystuje Timer0 a nie Timer2. Oczywiście można to zmienić w konfiguracji, jednak autor tego nie czyni. Zatem pozostają mi dwie opcje, albo przestać używać timera0 do odliczania 1s odcinków czasu i zaprzęgnąć do tego timer2 (co może nie...
Funkcja pulsein wstrzymuje działanie programu na te 655ms? (lub krócej) Nie, nie wstrzymuje, cały czas mierzy. Tyle tylko może zmierzyc(!!!). Jeżeli mierzony przedział czasu jest dłuższy to powie (Err=1) ; znaczy to że jego miara jest za krótka. Tu masz przykład pomiaru impulsu (active low) timerem 1 [syntax=basic4gl] 'Timer1 measure time interval...
http://obrazki.elektroda.pl/2645142000_1... Sterownik diod LED został wykonany w celu automatycznego lub zdalnego sterowania oświetleniem LED w zależności od jasności w danym pomieszczeniu. Układ sterowania oparty jest o mikrokontroler ATmega16/ATmega32 firmy Atmel, który w zależności od oświetlenia w danym pomieszczeniu steruje jasnością...
Dzięki pomocy jednego z forumowiczy ( dziękuję mrh :) ), udało się ustalić, że przyczyną problemów komunikacyjnych z ds18b20 są źle skonfigurowane opóźnienia. Opóźnienia chciałem zrealizować na jednym z timerów 2-5 w trybie one pulse mode. Niestety nie udało mi się do tej pory znaleźć błędu, więc proszę o pomoc w walce z opóźnieniami. Zamieszczam kod...
Witam, Próbując się posiłkować reference manualem (RM0008) oraz książką "Mikrokontrolery stm32 w praktyce" próbowałem odpalić okresowe wykonywanie przerwania na TIM2 i niestety nic z tego nie wyszło. Proszę o rade gdzie szukać błedu. Wygląda to tak: Konfiguracja NVIC // Wlacz przerwanie od Timera 2 NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemp...
1. kod działa na tej zasadzie: If T1 = max_pulse then 'jeżeli trzymamy przycisk długo, tak że ilość przerwań timera zrówna się ze zdefiniowaną stałą to t1=0 'resetujemy licznik przerwań long1 = 1 'ustawiamy flagę długiego trzymania przycisku gosub dlugie_1 'wykonujemy funkcję endif 'to samo dla drugiego przycisku If T2 = max_pulse then t2=0 long2 =...
Witam, Mam kolejny problem niestety. Chciałbym użyć drugiego kanału Timera 2 do generowania sygnału na danym pinie w sposób sprzętowy (czyli nie tak, ze w obsłudze przerwania ustawiam sobie ten pin na 1 i 0...). W manualu jest napisane (tabela 43), że TIM2_CH2 przy braku remapingu jest podłaczony do pinu PA1 Wobec tego konfiguracja portu A i pinu 1....
Witam, obecnie zmagam się z dynamiczną zmianą wartości wypełnienia PWM w Timer3. Pracuję na uC STM32f103. Zamierzony cel polega na zmianie wypełnienia PWM po naciśnięciu przycisku i teraz pytanie brzmi, jak to poprawnie zrobić? Niestety aktualnie stworzony kod nie reaguje - to co do tej pory napisałem zamieszczam poniżej: [code][syntax=c]int main(void)...
Witam , mam nadzieję iż nie zanudziłem bez reszty.. W zestawieniu z moimi "dokonaniami asm." kolega michalko12, jest najbliższy temu co ja kiedyś robiłem . Oto wersja asm z przełącznikiem kompilacji aby kompilować jako samodzielny plik - kto chce ->ten może :D ( ta wersja to 16-timerów, 16-nasto bitowych, każdy cztery tryby konfiguracji, oczywiście...
Witam, Mam taką funkcję: [syntax=c]int init_pwm(int pwm_freq) { int clk = 72e6; // 72MHz -> system core clock. This is default on the stm32f3 discovery int tim_freq = 2e6; // in Hz (2MHz) Base frequency of the pwm timer int prescaler = ((clk / tim_freq) - 1); int pwm_period = tim_freq/pwm_freq; // 2MHz / 200Hz = 10000 int ms_pulses = (float)pwm_period...
Bez taktowania nic nie będzie działać. Funkcja zapisuje dane pod adresy które są wyłączone, więc możesz tam wpisywać co chcesz.! No to już wszystko jasne, dzięki za pomoc. Co do uruchomienia TIMERA to tez mi się udało, jednak mam jeszcze jeden problem z nim... mianowicie chciałbym uruchomić go w trybie porównywania, gdy chce zmienić opóźnienie wystąpienia...
Witam! Próbuję zrobić czujnik temperatury z ustawianym alarmem do pieca CO na ATtiny2313 i czujniku DS18B20. Niemal wszystko jest cacy, układ mierzy temperaturę, wyświetla ją na wyświetlaczu 7 segmentowym, odczytuje zapisaną wartość alarmu i alarm włącza. Problem zaczyna się, gdy chcę zmienić temperaturę alarmu. Do nastawiania temperatury mają służyć...
Po kolei: - w reset_pulse wysyłasz coś przez USART, wysłanie tego trochę trwa, w zależności od bitrate może trwać całkiem długo, co rujnuje timingi... - w write - początkiem nowej ramki jest krótki impuls ujemny. Może on trwać 1-2 us, to wystarczy. Więc jeśli nadajesz 0 to zrób 0 przez cały czas trwania ramki (prawie 60 us), a jeśli jeden, to po 1-2...
W swoich programach korzystam z biblioteki dostarczanej przez ST. I mam w tym takie dwa pliki 91x_it.c i 91x_it.h, w których mam deklaracje i defnicje handlerów. Handlery te sa odpowiednio podpinane do przerwań, za pomocą funkcji VIC. I zasadniczo chciałem zrobić sobie przerwanie od timera 1, na przepełnieniu licznika, w którym przez UART wysyła się...
Witam, Układ działa przy wykorzystaniu ATiny4313, posiadam pewny pakiet danych który przesyłam przy wykorzystaniu programu RealTerm dla przykładu jest to ciąg ASCII tego typu: 51276550032250 . Gdzie: 5 - adres urządzenia 127 - wypełnienie PWM 65500 - wartość dla przerwania TIMER1_COMPA 32250 - wartość dla przerwania TIMER1_COMPB oraz oznaczenie końca...
Czyli zrobić tak jak kolega tmf proponuje tak? W tej chwili dokładnie tak robię, że uruchamiam procedurę pomiaru temperatury dla 3/4 czujników po kolei z osobna dla każdego: [syntax=c] // pomiary temperatury void pomiaryTEMP(void) { /* tempWejscia; // Temp1 - tempStabilizacji; // Temp2 - tempSzczytu; // Temp3 - gora tempPlaszcza; // Temp4 - kociołek...
Dziękuję, o takie coś mi chodziło :) Napisałem wobec tego takie funkcje: [syntax=c]uint16_t pRegulator(uint16_t output, uint8_t actualValue, uint8_t desired_value, uint8_t kp) { int error = desired_value - actualValue; output += kp*error; return output; } void setActualValue(uint8_t evsysValue, uint8_t *actualValue) { *actualValue = evsysValue; } //...
Oto opis tego telewizora : Nowa linia: 2014 Typ: LED Kolor obudowy: Czarny Gwarancja: 24 miesiące Typ podstawy: Tak Wymiary z podstawą [ S x W x G ]: 723 x 465.1 x 163.4 mm Wymiary bez podstawy [ S x W x G ]: 732 x 427.5 x 64.6 mm Zasilanie: 220 - 240 V (50/60 Hz) Klasa energetyczna: A+ Pobór mocy podczas pracy / w trybie czuwania [W]: 32 / 0.3 W Wyposażenie...
Podałem wyraźnie, że oprogramowanie napisałem w WinAVR ;) Nie uznaję czegoś takiego jak bascom (wystarczyło mi raz w życiu się na nim przejechać...). Przedstawię "odchudzone" kody źródłowe - aby były całkowicie funkcjonalne należy troszkę dopisać. Ogólna idea jest przedstawiona. Sam main w programie jest niewielki. Dla przykładu pokażę jak zrealizowałem...
ciężko się z nim dogadać niestety :( teraz jeszcze czytam trochę o temacie i zastanawiam się czy problemem nie jest tutaj ustawienie PWMa? przyznaję że nie czuję się w tym mocny a w połączeniu z silnikiem to już w ogóle... Jeżeli ktoś ma chwilkę to spójrzcie proszę na ten fragment kodu: [syntax=c]void IniPWM() { //dorowadzenie sygnału zerowego do portu...
uC zasilany z 5V. Po dłuższej przerwie (pauza na zaliczenie sesji) wziąłem się znowu za ten projekt. I tak... przegooglowałem neta i ze strony http://winavr.scienceprog.com/avr-gcc-tu... zapożyczyłem kod obsługujący timer input capture. Przerobiłem go pod potrzeby ATmega32, ale też do końca nie wiem czy poprawnie....
Witam. Mam taki problem, że próbuje skonfigurować Timer1 tak żeby na kanale 1 był generowany sygnał PWM, który będzie wyprowadzony na pin PA8. Skonfigurowałem Timer 1 oraz Timer 3 takimi samymi wartościami, piny PC8 oraz PA8 skonfigurowane jako funkcje alternatywne i sygnały z pinów podane są na LED. W efekcie dioda, która jest sterowana sygnałem z...
Dobry wybór jest na pewno Samsung UE32ES6100. Cena do 1900 zł Działa z klawiaturą i myszą. Ogólne Model na rok 2011, 2012, Linia Series 6, Kolor Czarny, Załączone wyposażenie Pilot, Podstawa, Kabel zasilający, Gwarancja 24 miesiące, Obraz Rodzaj ekranu LED , Przekątna ekranu [cal] 32, Rozdzielczość 1920 x 1080, Kontrast dynamiczny Mega, Zastosowane...
Próbowałem, ale coś robiłem źle lub o czymś nie wiem. Efekt miałem taki, że nic nie świeciło. [code][syntax=c] RCC_APB1PeriphClockCmd(RCC_APB1Periph_TI... ENABLE); void init_timer() { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TI... ENABLE); // Konfiguracja podstawy czasu....
jak napisać sterowanie pwm diody od 0% do 100% oraz od 100% do 0% dla takiego samego układu Wstępna ocena dostępnych informacji Analiza podanych przez użytkownika danych: - Pytanie: Jak napisać sterowanie PWM diody od 0% do 100% oraz od 100% do 0% dla takiego samego układu. - Poprzedni układ: Arduino Duemilanove z zewnętrzną diodą LED. - Czas migania:...
Panowie potrzebuję pomocy, bo się pogubiłem. Próbuję przerzucić GPIOC->IDR do bufora w pamięci RAM. DMA wyzwalać chcę Timerem 3. W szablonach do konfiguracji Timera mam takie 3 funkcje: TIM_DMAConfig(), TIM_DMACmd(), TIM_SelectCCDMA(). Ale żadna nie ustawia mi który DMA i który kanał ma popędzać. Najpierw inicjalizuję DMA2 funkcją: [syntax=c] void init_DMA2(void)...
Patrzę na kod od godziny, nie mogąc znaleźć przyczyny problemu. Pewnie winny jest jakiś drobiazg, którego nie jestem w stanie dostrzec. Zapewne ktoś z większym doświadczeniem wychwyci go natychmiast. Na początek trochę o projekcie . Jest to moje pierwsze "większe" przedsięwzięcie w ramach nauki programowania AVR-ów w języku C. Krótko mówiąc jakiś czas...
Pytania uszczegóławiające: 1. generować sygnał gdy zostanie zrealizowana funkcja (A+B)*C (zrobione) Czy to ma być jakiś generator wyzwalany kombinacją sygnałów (A+B)*C (kombinacja logiczna trzech sygnałów ??) ? Jaki sygnał ma być generowany, może zrób rysunki poblądowe, co gdzie wchodzi i co ma wychodzić 2. Inkrementacja czy też dekrementacja sygnału...
Jęśli chodzi o pytanie nr 3 to tak Dodano po 7 Bezpośrednia odpowiedź na pytanie Aby jednocześnie wyświetlać prędkość obrotową (RPM) wentylatora oraz ustawioną moc (np. w formie procentowego wypełnienia PWM) na wyświetlaczu dotykowym podłączonym do Arduino Mega, należy: - Zliczać impulsy z tachometru (pin TACH) wentylatora, przeliczać je na obr./min...
Polecam SAMSUNG 50F5000 100Hz FullHD CENA 2800 Linia F Seria Seria 5 Kolor Czarny Wzornictwo Slim Typ telewizora LED Obraz 3D nie Technologia 3D Nie dotyczy Zgodność z wymogami odbioru cyfrowej telewizji naziemnej tak Załączone wyposażenie Pilot Podstawa Baterie do pilota Kabel zasilający Obraz Przekątna ekranu [cal] 50 Przekątna ekranu [cm] 127 Format...
Jeden przycisk (widełki telefonu) ma obsłużyć 3 funkcje: 1 - off - podniesienie widełek, możliwość wprowadzenia numeru do zmiennej realizowana do czasu krótkiego naciśnięcia widełek 2 - on (1-3 sek) - krótkie naciśnięcie widełek i zatwierdzenie wprowadzonego numeru, dalsza rozmowa już w trybie off przycisku do czasu długiego wciśnięcia widełek - odłożenie...
Próbowałem już w opisany przez Ciebie sposób, zero reakcji, żeby program wyszedł z pętli while pomagało tylko zwarcie rezystorem 1k do GND, czyli ręcznie wymuszony pull low. Datasheet DS18x20 znam już na pamięć :( funkcja opóźniająca: [syntax=c] volatile int delayFlag; void delayTimerConfig(){ RCC_APB2PeriphClockCmd(RCC_APB2Periph_TI... ENABLE); TIM_TimeBaseInitTypeDef...
Witam Próbuje wykonać sterowanie dla projektu: https://www.elektroda.pl/rtvforum/topic3... Ogólnie tak: Mam ESP32, które jest jednostka główną Jest Arduino mega które przesyła dane co 2ms przez Serial2 Jest tez Aplikacja na PC, która komunikuje się z ESP32 poprzez Serial Problemem jest to, że jak na aplikacji wcisne dany przycisk, to aplikacja...
timer pulse stm32 timer pulse pulse pulse
częstotliwość rezonansowy beczek oleju zalewa cewka
filtr dolnoprzepustowy radia makita
Pralka buczy bez włączenia programu - co robić? Odbijanie silnika przy zapalaniu - przyczyny i rozwiązania