A nota katalogowa na to: A timer/counter can be configured for either capture or compare functions, but cannot perform both at the same time. To samo dotyczy pytania o piny pwm (pinout and pin function) oraz I/O ports, konkretnie gdzie szukać powinien kolega informacji to podejrzeć struktury w ioXXX.h a dokładniej co tam ciekawego siedzi w PORT (polecam...
(at)seba_x:A co to za bzdura?:> • Peripheral Features – Two 8-bit Timer/Counters with Separate Prescaler, one Compare Mode – One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode A co do pytania autora, nie, zliczanie umożliwiają tylko dwa pierwsze timery. Trzeciego można używać jako wewnętrznego.
3 Konfigurujesz Timer w tryb input capture taki sposób aby wyzwalał transfer DMA na którymś tam sobie kanale. Nie prościej właśnie output compare i mieć transfer co ileś tam taktów? 4\/3!!
Czy plik wygenerowany przez nowy projekt ale z dołączonymi bibliotekami HAL będzie dobry? W nim znajdują się już te przerwania. Dodaj tylko to co Ci napisałem. Znajdz w dokumentacji procesora gdzie w tablicy przyrwan jest ten EXTI15_10 - i tam zamiast zera wstaw nazwe seojego handlera. I to wszystko. Tu masz zresztą tę tablicę - policz sobie gdzie...
Robi się to prosto na wejściu ICP Atmegi, mierzysz czas pomiędzy kolejnymi zboczami, raz jest opadające, raz narastające itd.. potem to tylko interpretacja wyników, liczenie bitów i po odliczeniu 64 bitów z transmitowanych 66, bo dwa ostatnie dla uproszczenia procedury pomijasz. wyświetlasz na LCD lub wysyłasz po RS232 do komputera, a tam wyświetlasz...
U mnie (Katowice) z DCF77 nie ma problemu, oczywiście zdarza się, że przez jakiś czas nie działa, ale przecież nie musi - wystarczy że złapie sygnał od czasu do czasu. Z tego co zauważyłem, to strasznie przeszkadza w odbiorze DCF77 komputer. Kiedy miałem zasilane układy przez USB to generalnie był problem, gdy je zasilałem osobno - z sieci lub z baterii...
Prosty program na AVRStudio : #include <m16def.inc> ; Prohibits use of non-implemented instructions (ATmega16) .dseg .org SRAM_START .cseg ;—————R...
Po 1) użyj znaczników [code]... Po 2) funkcje inline _delay_us i _delay_ms muszą być wywoływane z argumentami o wartości znanej w trakcie kompilacji (stałe) - było o tym wielokrotnie na forum. [url=http://www.nongnu.org/avr-libc/user... Po 3) co do inline asm to zobacz [url=http://www.nongnu.org/avr-libc/user...
Mam problem z tym call i ret mam taki kod: ldi R16, 0x00 Co jest źle? W przypadku procesorów AVR zawsze na sam początek musisz ustawić stos w odpowiednim miejscu w pamięci programu. Praktycznie każdy program więc zaczyna się (dla atmega32) od rozkazów ustawiających stos. Za manualem str 45: Address Labels Code Comments $000 jmp RESET ; Reset Handler...
Witam! Polecam ATmega8: Features: • High-performance, Low-power AVR® 8-bit Microcontroller • Advanced RISC Architecture – 130 Powerful Instructions – Most Single-clock Cycle Execution – 32 x 8 General Purpose Working Registers – Fully Static Operation – Up to 16 MIPS Throughput at 16 MHz – On-chip...
Do obsługi Timera1 są 4 wektory i nie wiem, które aktywować, co wpisać w procedurze odwołującej się, czy w ogóle jest taka potrzebna. Czy wystarczy tylko uruchomić te przerwanie i sygnał będzie generowany automatycznie ? Tabelka jest prosta: TIMER1 CAPT Timer/Counter1 Capture Event Zdarzenie z przechwycenia licznika (zwykle przez zmianę na pinie...
[syntax=armasm]g_pfnVectors: .word _estack .word Reset_Handler .word NMI_Handler .word HardFault_Handler .word MemManage_Handler .word BusFault_Handler .word UsageFault_Handler .word 0 .word 0 .word 0 .word 0 .word SVC_Handler .word DebugMon_Handler .word 0 .word PendSV_Handler .word SysTick_Handler /* External Interrupts */ .word WWDG_IRQHandler /*...
Hint timer capture compare
http://obrazki.elektroda.pl/9151953900_1... Założenia projektu: - obsługa wszystkich funkcji dostępnych z klawiszy sterujących magnetofonu, - wyświetlenie nazwy aktualnie wykonywanej funkcji na wyświetlaczu LCD, - wykorzystanie fabrycznego pilota zdalnego sterowania, - zasilanie układu z zasilacza magnetofonu, - możliwość podłączenia...
Wystarczy trochę pogooglać: The Infineon XC2267-56F is a Microcontroller built around the synthesizable C166SV2 Core with 2K Bytes Dual-port RAM for Register Sets and System Stack, 1K Bytes stand-by RAM (SBRAM), 16K Bytes data RAM (DSRAM), 16K Bytes program/data RAM (PSRAM), 448K Bytes Program Flash, Intelligent On-chip Peripheral Subsystems, ADC 10-bit...
A czemu go uruchamiasz w trybie Capture Mode, skoro z opisu wynika, że interesuje Cię Compare Mode?
AVE... Trochę to skomplikowane, Nsvinc. Ja bym to zrobił inaczej... Nadajnik generuje sygnał PWM do kodowania danych. W pierwszym cyklu sygnał PWM ma wypełnienie 50% i służy do skalibrowania modułu Capture/Compare w odbiorniku oraz wywołania przerwania do obsługi transmisji. W kolejnych cyklach PWM jest ustawiany na 25% dla zera i 75% dla 1. Transmisję...
To nie są żadne 'metody'. Układ ma 4 moduły, które mogą działać w jednym z trzech trybów (Capture, Compare, PWM) i dwa moduły działające tylko jako PWM. Do przetwornicy step-up potrzebujesz PWM, więc możesz wybrać dowolny z tych 6 modułów. Oczywiście będzie to prostokąt a nie sinus.
Włączamy przerwanie funkcją na przykład: Tyle, że nie chce używać licznika siódmego tylko pierwszego. W Twoim przypadku będzie to numer przerwania od przepełnienia. Są one zdefiniowane w pliku stm32f334xx.h w postaci czytelnej dla człowieka. Dziękuję. Tylko jeśli chcę aby przerwanie wywoływało się kiedy licznik się przepełni, którą opcję mam wybrać...
metodologia pomiaru jest jest całkowicie do kitu. Zapoznaj się z trybami capture compare licznika i nie licz impulsów w pętli. Licznik sprzętowy powiniem startować kiedy masz jedną zmianę zbocza sygnału mierzonego a wyłaczać się przy innej ( albo przy tym samym zboczu). Możesz tez dać sygnał mierzony jako żródło zegara dla licznika a drugim licznikiem...
ADC w tym przypadku będzie się wyzwalać z częstotliwością zależną od OCR1A Czy aby na pewno? Jako wyzwalacz dla ADC mogę wybrać jedynie: - Timer/Counter1 Compare Match B , - Timer/Counter1 Overflow, - Timer/Counter1 Capture Event. Na tej liście nie ma Timer/Counter1 Compare Match A , które odpowiedzialne jest za tryb CTC...robiw
Config Timer1 = Counter , Edge = Rising ,Noise Cancel = 1, Prescale = 1 , Compare A = Disconnect,Compare B = Disconnect Nie działa Config Timer1 = Counter , Edge = Rising , Noise Cancel = 1 , Capture Edge = Rising , Compare A = Disconnect , Compare B = Disconnect , Clear Timer = 0 Działa THX
Witam, Wpadła mi w ręce płytka prototypowa z STM32f103 na pokładzie wiec pomyślałem że spróbuję swoich sił z tym mikrokontrolerem. Jak dotąd programowałem hobbystycznie głównie 8bitowe AVR-y i z nimi mniej lub bardziej sobie radzę. Ale do rzeczy wymyśliłem sobie że w projekcie zaprzęgnę do pracy Timer2, którego zadaniem będzie po wywołaniu funkcji Beep();...
Dziękuję Wam, naprowadziliście mnie, ale mimo wszystko nie mogę czegoś załapać. W iox16a4u.h jest : /* 16-bit Timer/Counter 0 */ typedef struct TC0_struct { register8_t CTRLA; /* Control Register A */ register8_t CTRLB; /* Control Register B */ register8_t CTRLC; /* Control register C */ register8_t CTRLD; /* Control Register D */ register8_t CTRLE;...
Firma Microchip zaprezentowała nową rodzinę 16-bitowych mikrokontrolerów z rdzeniem PIC - PIC24F „KM”. Produkty z nowej rodziny, produkowane w niskoprofilowych obudowach, wyposażono w pamięć Flash do 16KB, 2KB pamięci RAM, 512B EEPROM oraz zaawansowaną funkcjonalność analogową. Przeznaczeniem prezentowanych produktów jest przemysł motoryzacyjny,...
Zerżnięte z helpa : CONFIG TIMER1 = COUNTER , EDGE = RISING, CAPTURE EDGE = RISING , COMPARE A = DISCONNECT , COMPARE B = DISCONNECT -- Pozdrawiam, Daniel
Oto mój program (atinny2313, zegar 8 mHz). Dodatkowo obsługa pilota sony: Dim Moc As Word Dim Table As Word Dim Ready As Byte Dim Code As Word Dim Period As Word Dim Command As Long Dim Bitcount As Byte Config Timer0 = Timer , Prescale = 1024 Config Timer1 = Timer , Prescale = 256 , Capture Edge = Rising , Compare A No_output = Disconnect Config Int0...
Wciąż nie rozumiem skąd to ograniczenie częstotliwości o którym mówisz - mój timer1 jest skonfigurowany na 1MHz (prescaler /8, a zegar główny 8MHz). Ale to bez znaczenia, bo w takim razie jednak wykorzystam ten timer0 i przerwania zewnętrzne (zamiast input capture timera1). A więc serdeczne dzięki za pomoc ;) I chyba niestety się nie przekonam czy compare...
Czesc Ziomki a próbowaliscie może uruchomić źródła na innym układzie ? np Mega 8535 ? trzeba zmienic 2313inc.def na 8535def.inc na poczatku zrodla oraz wektory przerwań na początku ; Interrupt Vectors (AT90S2313) rjmpreset ; Reset rjmpint0_isr; Extrenal INT0 rjmp0 ; External INT1 rjmp0 ; TC1 capture rjmp0 ; TC1 compare rjmp0 ; TC1 overflow rjmpbackground;...
Jest gdzieś skrótowa dokumentacja do ustawień CubeMX, aby zaczynający programista się nie zniechęcił? Nawet jeśli korzystasz z CubeMX to zacznij najpierw od jakiejś literatury. "Poradnik Szczywronka" takie rzeczy dość łopatologicznie tłumaczy tzn. podstawy działania timerów (i nie tylko). Na pierwszym zrzucie mamy włączony OPM na drugim wyłączony....
Zrobiłem poniekąd tak jak panowie napisali, z wyjątkiem pomiaru oscyloskopem, bo po prostu nie mam. Dodałem do kodu linijkę: Config Timer1 = Counter , Edge = Rising , Noise Cancel = 1 , Capture Edge = Rising , Compare A = Disconnect , Compare B = Disconnect , Clear Timer = 0 Właściwie to powiększyłem o kilka szczegółów i teraz działa, ale... obroty...
No i pomogło :) A jak to wygląda z compare1a ? oc1a to nazwa zamienna, ale po wpisaniu do nie wartości z jaką ma być porównany licznik t1 podprogram sie nie uruchomil $regfile = "m8def.DAT" $crystal = 8000000 $baud = 9600 Config Portc = Output Set Portc.2 Reset Portc.1 Reset Portc.0 Config Pinb.0 = Input Config Timer1 = Counter , Edge = Falling...
inicjalizacja DMA: [syntax=c] void MX_TIM3_Init(void) { TIM_ClockConfigTypeDef sClockSourceConfig; TIM_MasterConfigTypeDef sMasterConfig; TIM_OC_InitTypeDef sConfigOC; htim3.Instance = TIM3; htim3.Init.Prescaler = 0; htim3.Init.CounterMode = TIM_COUNTERMODE_UP; htim3.Init.Period = 105; htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; HAL_TIM_Base_Init(&htim3);...
Z timerem2 się pomyliłem, myślałem że jest 8 bitowy ;-). Przejrzałem DS i jak byk jest napisane: "Two 8- bit Timer/Counters with Separate Prescaler, one Compare Mode One 16- bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode" Atmega8 ma 2 wejścia zewnętrznego interruptu, INT0(PD2) i INT1(PD3), bramki są 4, jak "odpowiednio kombinować"...
Timery (...) Wystarczy włączyć nieużywane. Właśnie tak powinno się to zrobić, ale biblioteka TimerOne blokuje taką możliwość. Dlaczego blokuje? W bibliotece zadeklarowane są wektory Dodano po 3 może Timer2.initialize Zamiast wpisywać w każdym przerwaniu do CNT (jeśli już to sie robi, to na początku obsługi przerwania), co może wprowadzać niedokładności,...
Witam, Prosty program odbierający kod pilota sony i włączający urządzenie. Na ATMEGA32 przy wewnętrznym kwarcu 8000000hz działa (ZL3AVR). Po zmianie na Mega8 przy wewnętrznym kwarcu 8000000Hz nie działa. Mega8 jest na oddzielnej płytce testowej, zasilanie idzie z ZL3AVR, czujnik IR jest na ZL3AVR (IR IN) podłączone jest do PB1 mega8 Przekaźnik włącza...
Tryby CTC w ATMega32 są dwa. Ustawiasz WGM12 w rejestrze TCCR1B i wpisujesz wartość końcową do OCR1. Albo wpisujesz WGM12 i WGM13 do TCCR1B i wpisujesz wartość końcową do ICR. A co z obsługą przerwania? Czy dobrze rozumuję, że wystąpi ono odpowiednio Output compare dla 0CR1 i Input capture dla ICR?
Po pierwsze: jak często jest ono zgłaszane? Przerwanie jest zgłaszane z częstotliwością 1 kHz. DCMI odbiera dane non stop. Po trzecie: co robi AKTUALIZUJ_PWM (pwm_lookup_table aktualizuje rejestr PWM poprzez wywołanie funkcji [syntax=c]TM_PWM_SetChannelPercent(&... TM_PWM_Channel_1, 100-x);[/syntax] która wywołuje [syntax=c]TM_PWM_Result_t...
Atmega32 ma rejestr TIFR, czyli usuń "1". [syntax=asm]; Clear interrupts (if any happened). sbi _SFR_IO_ADDR(TIFR), OCF1A[/syntax] ; TIFR - Timer/Counter Interrupt Flag register .equTOV1= 2; Timer/Counter1 Overflow Flag .equOCF1B= 3; Output Compare Flag 1B .equOCF1A= 4; Output Compare Flag 1A .equICF1= 5; Input Capture Flag 1 edit. Jeszcze TIMSK zamiast...
Moim zdaniem całość nie działa poprawnie, bo używasz Timera1 pracującego w trybie CTC jednocześnie do odmierzania odcinków czasowych wyświetlacza i do pomiaru czasu zatoczenia pełnego koła. W trybie CTC Timer liczy od 0 do wartości Compare1a po czym zostaje wyzerowany, więc ten podprogram w przerwaniu ICP1, który oblicza Ci ile cykli zliczył Timer podczas...
Z demultiplekserem używałbyś prosto trybu fast-PWM do określenia długości impulsu (wyjście OCR podłączone do wejścia multipleksera), ze stałą długością timera (2ms?), przełączając wyjście na przerwanie compare match. Przez pewien czas na wszystkich wyjściach byłoby zero.
Sprytnie używając timera można napisać całkowicie nieblokującą obsługę OneWire z rozsądnym wspomaganiem sprzętowym - jeden kanał timera w trybie compare ze sterowaniem wyjściem w trybie OD, sąsiedni kanał w trybie capture z chwytaniem zboczy narastających. żadnych delay, żadnych problemów z przerwaniami. Można też obniżyć priorytety wszystkich innych...
Tablice wektorów mam z przykładów ze strony [url=http://www.freddiechopin.info/]http... Nic w niej nie zmieniałem i wersja 6.1.1 działa dobrze a 7.1.0 wiadomo Tak wygląda tablica wektorów: [syntax=cpp]void (* const vectors[])(void) __attribute__ ((section(".vectors"))) = { (void (*)(void))&__main_stack_end,// Main stack end address...
Funkcja SystemInit jest wywoływana w obu przypadkach na początku main. Podałem ją w kodzie. Może tutaj faktycznie jest problem. Pliki startup.s Keila i Cube się różnią. Zauważyłem, że funkcja SystemInit jest wywołana w pliku dla Cube. Niestety te pliki to dla mnie czarna magia. Czytałem o nim artykuł waszego kolegi z elektrody. https://www.elektroda.pl/rtvforum/topic3...
1 strona: Peripheral Features – Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes – One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode – Real Time Counter with Separate Oscillator – Six PWM Channels – 8-channel, 10-bit ADC Differential mode with selectable gain at 1×, 10×...
Witam. Aktualnie walczę z kompilatorem GCC non-eabi. Chcę utwożyć projekt w C++ używając własnego skryptu linkera, jednak po długiej walce nie mam już pomysłu na rozwiązanie. W jaki sposób skonfigurować kompilator, linkera oraz skrypt linkera tak abym mógł własne tablice zdefiniowane w plikach .cpp wstawić w wybrane prze zemnie miejsce w pamięci? Wersja:...
Ja nie widzę problemu. :D Timer1: CONFIG TIMER1 = COUNTER | TIMER | PWM , EDGE=RISING | FALLING , PRESCALE= 1|8|64|256|1024 , NOISE CANCEL=0 |1, CAPTURE EDGE = RISING | FALLING , CLEAR TIMER = 1|0, COMPARE A = CLEAR | SET | TOGGLE I DISCONNECT , COMPARE B = CLEAR | SET | TOGGLE I DISCONNECT , PWM = 8 | 9 10 , COMPARE A PWM = CLEAR UP| CLEAR DOWN | DISCONNECT...
Gdzie tablca jest zdefiniowana zależy od toolchaina. Możesz mieć np coś takiego w pliku vectors..... [syntax=c]__attribute__ ((section(".isr_vector"),used)) pHandler __isr_vectors[] = { // Cortex-M Core Handlers (pHandler) &_estack, // The initial stack pointer Reset_Handler, // The reset handler NMI_Handler, // The NMI handler HardFault_Handler, //...
Czas/impuls czy impuls/czas to jest tylko kwestia programowa, zależy czego potrzebujemy. Ja do obliczania z tego prędkości musiałem użyć dzielenia wielobajtowego, ale niestety to było jedyne rozwiązanie, gdyż pozostałe dwa liczniki użyłem do załączania pasm w generatorze SRG. Dzielenie wielobajtowe zajmuje strasznie dużo czasu (ok. 700 cykli zegarowych...
Z noty katalogowej ATmega8515 (pierwsza strona): • Peripheral Features – One 8-bit Timer/Counter with Separate Prescaler and Compare Mode – One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode – Three PWM Channels – Programmable Serial USART – Master/Slave SPI Serial Interface – Programmable...
atmega compare capture compare timer0 timer0 compare
grzewcze systemy termet komin sumowanie napięcia zasilacza
witam serdecznie poszukuję osoby witam serdecznie poszukuję osoby
Regulatory temperatury dla instalacji cieplnych z miejskiej sieci Opel Astra H GTC 1.6 - Wysokie obroty na ssaniu