W tym projekcie w którym Ci to nie działa pewnie nie masz prawidłowych wektorów przerwań, bo w pliku startup_stm32f030xc.s nic ciekawego nie ma (tylko same zera).
Klasa TwoWire (której obiektem jest Wire) też używa przerwań. Po wejściu do ISR przerwania są blokowane. Jeżeli chcesz, aby dane ISR nie blokowało innych przerwań można użyć ISR_NOBLOCK:[syntax=c]ISR(TIMER2_OVF_vec... ISR_NOBLOCK) { ... }[/syntax]Byłbym jednak z tym bardzo ostrożny, ponieważ może przydarzyć się przepełnienie stosu. https://www.nongnu.org/avr-libc/user-man...
Nie odpowiem na wszystkie pytania bez znajomości kodu, ale zerknij na to, że kiedy nawet Timer stoi a pin jest skonfigurowany na Timer to steruje się innym rejesterem. https://obrazki.elektroda.pl/8568974800_... Mozliwe że potrzebujesz coś w nim zmienić.
.Czy ktoś może wie w czym tkwi problem/spotkał się z taką sytuacją? A zmienna, której wartość kopiujesz do OCR3A/PWM3A nie jest przypadkiem zadeklarowana jako BYTE ? Jeżeli to nie to, to spróbuj zapisywać rejestry OCR3 osobno - OCR3AH, OCR3AL.
Skoro nie masz problemu z timerem, to po co w ogóle o nim pisać i po co testować program który ma też przerwania od timera? Niemniej jednak na początek brawa za to, że NIE używasz słynnego i popularnego badziewia (; Wg mnie (skoro chodzi o pin zerowy), powinieneś konfigurować rejestr AFIO->EXTICR[0], a nie 1. Problemem jest manual niezgrany z plikiem...
No przecież prosto. Konfigurujesz timer1 do pracy w normalnym ale nie robisz start timer. robisz przerwanie dzialajace na zbocze np. narastające-> Dalej : robisz zmienną flaga w przerwaniu robisz if flaga=1 then start timer1 flaga=0 else stop timer1 w rej od timera masz czas... kopiujesz gdzie Ci tam pasuje flaga=1 zerujesz licznik endif I tyle, oczywiście...
Ja mam to tak skonfigurowane: [syntax=c] // gpio enkoder - PB4, PB5 RCC->AHB1ENR |= RCC_AHB1ENR_GPIOBEN; GPIOB->MODER |= GPIO_MODER_MODER4_1 | GPIO_MODER_MODER5_1; GPIOB->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR4 | GPIO_OSPEEDER_OSPEEDR5; GPIOB->PUPDR |= GPIO_PUPDR_PUPDR4_0 | GPIO_PUPDR_PUPDR5_0; GPIOB->AFR[0] = 0x00220000; //init enkoder RCC->APB1ENR |= RCC_APB1ENR_TIM3EN;...
Cześć, Pozwól, że przejdę do konkretów. 1. Możesz napisać program tak, żeby aktywować timer tylko wtedy, kiedy masz aktywny klawisz. 2. Dlaczego chcesz mieć klawisz na tym samym pinie co wyjście timera? 3. Jeśli chcesz liczyć, ile razy klawisz został aktywowany (naciśnięty), potrzebujesz zdefiniować zmienną, którą będziesz zwiększać o 1 przy każdym...
A nie masz tam przypadkiem przed main() funkcji SystemInit() ze SPLa, która "coś" robi z zegarem? P.S. Ta deklaracja przerwania przed main() naprawdę jest zbędna... Czemu to niby miałoby służyć? P.S.2 - PSC też powinno być 499. 4\/3!!
Witam, Spróbuj tak: [syntax=c]//Konfiguracja Timera 3 jako slave TIM3->PSC = 1; TIM3->EGR = TIM_PSCReloadMode_Immediate; // update PSC TIM3->PSC = 1; //.. reszta tak jak było [/syntax]
Podaj jaki to uP. Ustaw noge OC1A jako wyjście, po konfiguracji timera dopisz: Start Timer1 Pozwinno zadziałać
W ATTiny timer chyba przejmuje kontrolę nad IO, więc włączenie/wyłączenie odbywa się z poziomu konfiguracji timera. CZyli robisz to tak - np. ustawiasz inny timer, aby generował przerwanie co 1s, a w obsłudze tego przerwania w zależności od potrzeby konfigurujesz timer generujący PWM. Chyba to najprostsze rozwiązanie.
To nie pytania kontrolne tylko naprowadzające :) 80% wypełnienia to 80 % stanu "high" w danym okresie, czyli jeśli okres trwa sekundę to przez 800 ms będzie przepływał prąd przez dany pin. po czym zatrzyma się na 200ms i cała operacja się powtórzy. Zgadza się ? I właśnie do odmierzania tych czasów służą liczniki (timery). Wybrany timer z funkcją PWM,...
Nie włączyłeś globalnie przerwań. Poza tym brakuje pętli głównej w kodzie.
Ok po pierwsze zdecyduj się czy używasz kanału 1 czy kanału 2 DAC bo odpalasz DMA dla kanału pierwszego DAC ale w rejestrze DAC_CR odpalasz kanał drugi. Do tego aby działał trigger inny niż software'owy musisz ustawić bit TEN1 oraz bity TSEL1[2:0] w zależności od źródła wyzwalania. Więc dla TIM6: [syntax=c]DAC->CR = DAC_CR_DMAEN1 | DAC_CR_TEN1 |...
Piszesz: #include <msp430x20x3.h> A w tej podrodzinie nie ma drugiego Timera (Timera B).
Wszystkie Timery układu Mega32 mogą generować sygnały PWM: Timer0 - jeden kanał: OC0 - PB.3 Timer1 - dwa kanały: OC1A, OC1B - PD.5, PD.4 Timer2 - jeden kanał OC2 - PD.7 Na wejściach T0 i T1 liczniki nie generują sygnałów PWM. Co do samej konfiguracji to problem jest prawie żaden. W przypadku Timer1 sprawa jest prosta, gdyż CONFIG TIMER1 posiada wszelkie...
Jeżeli to jest cały Twój program, to nie dziwne, że uC się zawiesza. Brakuje mu sekcji main. Co do konfiguracji timera, to skorzystaj z trybu CTC zamiast robić te dziwne operacje z TCNT0.
Oj bałaganiarz z Ciebie... ;) Porozsiewałeś konfigurację timera gdzie się dało... Zcal to jakoś nawet jako funkcję czy makro... Sam się łatwiej połapiesz i unikniesz błędów... Jak już włączasz przerwanie od przepełnienia to wypadało dać procedurę jego obsługi... SIGNAL (TIMER_OVF_vect) { OCR1A = pwm; }
Czemu sterujesz OUT-em i CTL-em? Nie lepiej sterować bezpośrednio strefą wykorzystując funkcję wyjścia 8?
Tablicami NVIC się nie przejmuj. Korzystaj z funkcji dostarczonych przez CMSIS, w tym przypadku nie warto stosować rejestrów wprost. Konfiguracja Timera OK, choć kolejność nie należy do poprawnych. Przyjrzyj się jeszcze rejestrowi EGR. Przerwanie? Brak kasowania flagi skutkuje ciągłym jego wywoływaniem. Flagę kasuje się na początku przerwania. I taka...
Witam. Można np. tak :) 6 x Pwm Config Timer0 = Pwm , Prescale = 1 , Pwm = On , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down 'Konfiguracja Timera Config Timer2 = Pwm , Prescale = 1 , Pwm = On , Compare A Pwm = Clear Down , Compare B Pwm...
Problem już istnieje sporo czasu i nie mogę sobie z nim poradzić, a polega on na tym iż nie udaje mi się zmusić timera TIM1 do działania by wystawiał jakikolwiek sygnał na zewnątrz czy to PWM czy sygnał zegarowy o małej częstotliwości. Przy podobnym kodzie dla innego timera (TIM3) z uzyskaniem sygnału na zewnątrz mikrokontrolera nie miałem żadnego problemu....
No i mamy odpowiedź. Myślę że jak to zrobisz, to wszystko powinno zadziałać, o ile dobrze oprogramowałeś µkontroler. Serwa jako punkt odniesienia dla własnego sterownia brały masę własnego zasilania. µkontroler podawał sygnały na wyjściach timerów w odniesieniu do własnej masy. Łącząc tylko wyjście timera µkontrolera z wejściem sterującym...
Witam. Brak konfiguracji szyny I2C kod: np: Config Sda = Portc.4 Config Scl = Portc.5
Wlasnie o czyms takim myslalem!! A jak dobrac ten rezystor R2? Napiecie zasilania bedzie ok 12 volt a tranzystor sterujacy to TIP147(taki akurat mam. Mam nadzieje ze poradzi sobie z tak krotkim impulsem..?)
witam mam problem a mianowicie nie moge sobie poradzic z uruchomieniem timera w trybie pwm w procku tiny26. juz na roznych avr robilem ale tutaj ilosc rejestrow do konfiguracji tego jednego timera jest ogromna i sie troche gubie, moze ktos pomoze ??
Aby uruchomić taką funkcjonalność, należy zbudować prostą funkcję logiczną. Iloczyn logiczny wyjść (wyjście fizyczne do lampy), a w nim: - sygnał z naruszenia czujki (np. p.mono) - sygnał z timera (np. timer). Teraz konfiguracja powinna być jasna.
jedyne co mogę jeszcze dołożyć to definicja struktury [syntax=c] struct connections { uint8_t detect : 3; //nr. detektora uint8_t triac : 3; //nr. triaka uint8_t setFlag : 2; //znacznik ustawienia fazy }; // zmienna connections ma zapisane w sobie // kolejności występowania faz oraz przyporządkowuje // do fazy detektor i triak volatile struct connections...
Konfiguracja prescalera jest w TCCR0 B a nie TCCR0A.
Poradnik kol. (at)szczywronek , strona 139.
Z listingu programu nie mozna doszukac sie jaka metode przyjmujesz w pomiarze RPM. Ja jakoś się doszukałem. A nie, sory. Nawet doszukiwać się nie musiałem. Liczy okres pomiędzy impulsami. Ale przerwanie to powinno wyglądać tak: Przerwanie: Zmienna = Timer1 Timer1 = 0 Wynik = 7500000 / Zmienna Return Preskaler Timera ustaw na 64. A: Capture Edge...
Dziękuje Wam za odpowiedzi na moje pytania, ładnie to działa ;) teraz tylko skonfigurować to z potencjometrem ;)
TCCR0 |= (1<<WGM01) | (1<<CS01); OCR0 = XXX; TIMSK |= (1<<OCIE0); Tak wygląda konfiguracja timera w tryb CTC z preskalerem 8 i zezwoleniem na przerwanie Compare Match
Timer- np. Timer1- jako licznik zlicza impulsy zewnętrzne. Podane na odpowiednią końcówkę- T1 w wypadku ATmega8. Nie potrzebuje żadnego preskalera- bo preskaler dzieli impulsy z zegara- a tu nie ma co dzielić. Ustawiamy bity CS10-CS12 na external clock source- falling lub rising. Czy ustawiamy końcówkę T1 jako wejście- nie pamietam. Można ustawić. Ilość...
Czy istnieje możliwość konfiguracji timera w następujący sposób? Ustalana jest stała częstotliwość zegara licznika. Na wejście (TIOA/TIOB) podawany jest mierzony zewnętrzny sygnał. Każde wybrane zbocze tego sygnału powoduje przepisanie chwilowej wartości licznika do rejestru 'capture'. Wyzwalane jest przerwanie, w którym następuje odczyt tej wartości.
Przede wszystkim nie widzę, aby kolega odpalił zegar dla tego timera - rejestr CTRLA - preskaler. Bez taktowania nic nie zmierzy. No i należy ustawić PER, bo domyślnie ma 0 i też to nie zadziała.
Generalnie należy pin pracujący jako PWM ustawić jako wyjście, powinno się też ustawić jego domyślny stan, który obowiązuje w chwili zatrzymania/resetu timera. Oprócz tego należy odblokować w timerze odpowedni kanał CCx. Co do pracy jednocześnie w trybie capture i compare to jest to możliwe, ale tylko w XMEGA E5.
Ponieważ występował problem w momencie, gdy zatrzymywałem silnik w momencie rozruchu. tzn. po ponownym aktywowaniu timera, OCR0 przechowywało starą wartość, czyli potrafił się uruchomić z wypełnieniem, na którym zatrzymał się silnik. Nie wyłączaj timera aby zatrzymać silnik tylko ustw OCR na 0. naturalnie bedzie "piczek" 1/256. Jeśli piczek jest problemem,...
cytat z twojego przykładu: [syntax=c]__IO uint16_t CCR1_Val = 40961; __IO uint16_t CCR2_Val = 27309; __IO uint16_t CCR3_Val = 13654; __IO uint16_t CCR4_Val = 6826; uint16_t PrescalerValue = 0; [/syntax] PS. odliczyć sekundy już trudniej widzę nie można.
Nie wiem dlaczego ciągle się upierasz by robić dziwne operacje na rejestrach porównania w przerwaniu przepełnienia. Najpierw pętlę, teraz porównania... Efekt rozjaśniania i ściemniania masz wyprowadzić poza przerwanie , ale zrobić tak by cykle działy się na podstawie tego przerwania. I jeszcze jedno. Korzystasz z DCO, ale licznik TA taktujesz z Auxillary...
Tadzik daruj sobie odpowiedzi bo jak narazie żadna twoja uwaga ani nie była trafna ani pomocna. A nie wróżę lecz użyłem debuggera, w którym widać że bit odpowiadający za wybranie źródła taktowania TIM1 jest właśnie PLL. Żebyś oczywiście się nie czepiał odniosę się do RM że chodzi o Bit 8 TIM1SW Timer1 clock source selection w rejestrze RCC_CFGR3. Zmieniałem...
Jak to zrobić: 1. włączasz przerwanie od timera w NVIC 2. Konfigurujesz timer, żeby generował jakieśtam przerwanie Odpowiedzi na pytania: 1. No bez timera raczej nie zrobisz przerwań co jakiś czas [; 2. Funkcja przerwania po prostu musi nazywać się DOKŁADNIE TAK SAMO jak jest wpisana w tablicy przerwań (zwykle CośtamCośtam_IRQHandler() ) 3. Hę? Przykłady...
Przede wszystkim musisz zacząć kolego od poznania timerów. Do odmierzenia czasu używamy timerów ponieważ zlicza nam czas w tle działania procesora. Używając polecenia wait zatrzymujesz kompletnie uC na ten czas. Konfiguracja dla AtMega8 8Mhz u mnie wygląda tak: Config Timer1 = Timer , Prescale = 256 ''''konfiguracja timera On Timer1 1s ''''przy przerwaniu...
Witam Ponizej podalem fragment kodu i zaznaczylem miejsce w ktorym emulator JAGODA pokazuje mi caly czas blad kompilacji, czy mozna cos z tym zrobic? Przykład jest typowo książkowy.... ;---------------- KONFIGURACJA TIMERÓW------------------- ; TIMER 0 T0_GEQU0 T0_CEQU0 T0_MEQU1 TIM0EQUT0_M+T0_C*4+T0_G*8 ;TIMER 1 T1_GEQU0 T1_CEQU0 T1_MEQU1 TIM1EQUT1_M+T1_C*4+T1_G*8...
AtTiny2313 nie ma wbudowanego przetwornika AD, więc w prosty sposób się nie da. Można zawsze używając kilku elementów zrobić prosty przetwornik, ale patrząc na ceny innych uK, np. AtMega8, który ma dużo większe możliwości, nie ma to sensu. A wystarczyłoby uruchomić PWM w rozdzielczości 10 bitowej i bezpiśrednio przypisywać mu wartość odczytaną z przetwornika,...
ten timer włączyłeś? W bascomie uzyles pewnie config clock=soft Więc jesli z punktu widzenia konfiguracji timera i procesora jest wszystko ok, to przyczyna moze byc jedna: kwarc nie oscyluje. Spróbuj podotykać np. pęsetą (trzymając ją mocno w ręku) pinów kwarca. Jesli zaczną przeskakiwać sekundy to błąd jest w kwarcu == wymień kwarc. Ta sytuacja tez...
FUNCTION Fc1 : VOID VAR_INPUT key1 : BOOL; END_VAR VAR_OUTPUT lampa : BOOL; END_VAR VAR currtime : S5TIME; bival : WORD; END_VAR currtime :=S_PEXT (T_no:= t10, s:=i0.0, TV:=T#10s, r:=i0.1, bi:=bival, q:=lampa); END_FUNCTION Witam! Czy takie adresowanie jest poprawne?? Może ktoś dokładnie opisać elementy timera? tzn. T_no:=t10 - adres naszego timera?...
Obiecałem zrobić sterowanie silnikiem DC z Układem sie uporałem, natomiast moje małe umiejętności nie pozwalają mi przeskoczyć napisania programu regulacji obrotów. Kompilator Bascoma pokazuje mi wciąż błędy i to w linijce konfiguracji Timera, gdzie robię błąd? Proszę pomóżcie, a może ktoś ma już gotowy modół sterowania obrotami? Układ AtMega 8 2 przyciski...
ad 1:Podaj F rezonatora np. 8mhz config timer1 = timer,prescale 256 'konfiguracja timera load timer1 , 31250 'załadowanie timera 1s on timer1 odliczanie 'określenie która procedura ma byc wykonana co 1s enable interrupts 'właczenie przerwań enable timer1 'właczenie timera1 dim twoja_zmienna as long ' twoja pętla do "jakis tam twój program" loop odliczanie:...
Mam pytanko. W jaki sposób skonfigórować timera aby na wybranym pinie np.: portd.0 wzrastało napięcie płynnie z 0V do (iluś tam)V. Potrzebuję wysterować tranzystor NPN, aby płynnie go odtykać. Pozdrawiam.
Powiem szczerze, nie ogarniam tego :( siedzę już 2 godziny nad tym i efekt jest taki że na 5 wciśnięć przycisku tylko 2-3 wciśnięcia działają poprawnie Wcale nie tak źle(!). Z rachunku wynikałoby średnio ok. 50%. Spędzisz następne 2 godziny i bilans osiągnie 100%. Zacznij myśleć bardziej koncepcyjnie i zwróć więcej uwagi na posiadany sprzęt. Czy twój...
Jak już Ci pisałem Stoper zrobił bym tak: 2 guziki podłączone do przerwań: 1 guzik przerwanie: if(FlagCount) { FlagCount = 0; Wyłącz Timer } else { FlagCount = 1; Załącz Timer } Pochodzące od 2 guzika: FlagCount=0; Wylacz Timer; ss=0; s=0; m=0; h=0; Pochodzące od Timera: ss++; if(!(ss%20))FlagDisplay=... i...
Zapis LPC_TMR32B1->TCR = 0; //DIS.TIMER na początku programu zbędny ponieważ po restarcie/uruchomieniu licznik nie zlicza. LPC_SYSCON->SYSAHBCLKCTRL |= 0x11; // System AHB clock control enable clock to timer1 32 na pewno nie załącza bloku timera, ewentualnie I2C. Więcej znajdziesz w UM w rozdziale LPC111x/LPC11Cxx System configuration (SYSCON)...
Założyłem, że cli() zatrzymuje przerywania już po dokonanym pomiarze czasu tym samym zatrzymuje sam pomiar. Po wywaleniu cli także nie wchodzi do obsługi przerywania. Wyszedłem z założenia że program ma prawo działać poprawnie na układzie dopiero jeżeli będzie działał poprawnie na symulatorze, więc jak na razie testuję tylko na nim, gdzie wygodniej...
Czytaj wolniej bo chyba ominąłeś coś co napisałem. Powiedz mi co to ma znaczyć w odniesieniu do mojej poprzedniej wypowiedzi: Start Timer1 usuń bo tylko tu zawadza. Używa się jej tylko kiedy się najpierw Timer zatrzymało. Po konfiguracji Timer jest włączany automatycznie.
No tak, tylko dlaczego ten sam kod działa dla AT89S8252 ? Ja miałem podobny przypadek tylko że na jednym typie mikrokonrolera. Po długich analizach okazało sie że był błąd w programie (trzeba było zamienić linijki komend między sobą). Już nie pamietam co było powodem. Jeżeli TimerT2 nie chce wygenerować tych 5MHz, to zmniejsz mu trochę "wymagania"...
...ktoś ma jakiś pomysł? Ja mam ;) Zamień miejscami linie konfigurujące timery i tuż po konfiguracji timerów dopisz linię Tcnt2=128 Piotrek
Kupa błędów, trudno, żeby działało. Nie wiem, czy wszystkie wyliczę: 1. W komentarzach jest TIM1 ch1, TIM1 ch2, TIM1 ch3, ale kody pod tymi komentarzami są identyczne (tylko rejestr CCRx jest zmieniony) - niby czym się różni inicjowanie dla poszczególnych kanałów? 1a. Rejestry PSC i ARR są określone dla timera (wspólne dla wszystkich kanałów), więc...
Jak używasz jakiejś bardzo starej wersji spolszczonej to możliwe, ale Demo2075 już nawet to potrafi. Możesz użyć Twojej poprzedniej konfiguracji z Load Timer, ale dodaj ustawianie tej flagi 5ms w przerwaniu.
(i warunkiem jest aby silnik rolety miał wyłączniki krańcowe). A widziałeś kiedyś taki bez wyłączników?
Ten mikrokontroler nie jest z rodziny AVR. Musisz mieć Bascom - 8051 pobrać ze strony: www.mcselec.com/
Ponieważ oprócz przypisania rejestru licznika TC do CR0 przy zmianie zbocza "chcę" wygenerować przerwanie. Za generację tego przerwania właśnie odpowiada 2 bit w rejestrze CCR. Zapis LPC_TMR32B0->CCR = wartosc ustawia tylko te bity które są ustawione w wartosc. Dlatego za każdy razem konieczne jest ustawienie 2 bitu, gdyby to pominął nigdy nie było...
Witam!!! Częśc programu która cie interesuje to: TEMPLOOP: MOV ADCMODE, #12H ; INITIATE A SINGLE AUX CONV JNB RDY1,$ ; Wait for conversion results ; conversion result ready ; a value of 80h in AD1H=0degC MOV A, ADC1H ; 80h=0, FFh=+127, 00h=-128 CLR C SUBB A, #80H ; convert to 2's comp ; FFh=-1, 80h=-128, 00h=0, 7Fh=+127 W akumulatorze pozostaje temperatura...
Ale o co konkretnie Ci chodzi ?? Wogole nie wiesz co robia instrukcje czy jak ? Co do programu to jest malo przejrzyscie napisany. Jesli to jest kurs dla poczatkujacych to proponuje poszukac innego. Sam patrzac na to cos z poczatku zglupialem i musialem sie wgapic zeby zrozumiec o co chodzi. Do meritum: Na poczatku sa sa dwie dyrektywy org ktore mowia...
Nie licz na gotowe biblioteki, które najczęściej zawierają masę błędów. Napisz swoją obsługę serwa. Timerem wygeneruj impuls zależnie od tego jaki kąt chcesz uzyskać. Wiele serw nie wymaga przerwy pomiędzy impulsami ok 20ms, jeśli jednak ma ona być to też jest proste, po wygenerowaniu impulsu, wywołane zostanie przerwanie, które zmieni konfigurację...
Bascomowe komendy konfiguracyjne tylko z pozoru wyglądają na jakieś nieefektywne. Bascom taką konfigurację timera by zrobił dwoma wpisami do dwóch rejestrów i finał a nie rzeźbił tak jak pokazane wyżej czterema wpisami. Jak już ktoś chce ustawiać bity w rejestrach to mozna to zrobić za jednym zamachem poleceniem Bits() Jedynym pretekstem do grzebania...
kurcze, trudne zadanie. Mógłbyś podrzucić cały katalog projektu, tzn. bez rzeczy które chciałbyś zachować tylko dla Siebie. Chodzi mi o tą często zwaną 'rozbiegówkę'( nawiasem... świetna polska nazwa) w assemblerze i o 'startup' w 'C'. sam'a tylko na płaskich przerwaniach znam( bez priorytetów przerwań). Czy procesor wchodzi w to przerwanie? tu inicjalizacja...
Przecież obsługa timera w AVR i '51 jest inna , zobacz jak wygląda konfiguracja dla obu wersji .
zła konfiguracja timera.
Przerwanie ma być co 800ms. Timer0 prawidłowo generuje to przerwanie: 1/8000000=0,000000125 => 0,000000125*256=0,000032 => 0,000032*250=0,008s => 0,008*100=0,8s i tyle jest odliczane. Dla timera1 rachunek jest analogiczny, ale niestety nie generuje przerwania po tym czasie, tylko kilkakrotnie później. Timery ładowane są początkową wartością w programie...
Witajcie, W oparciu o Atmegę8 zrobiłem sobie prosty sterownik. Odczytuję temp. z dwóch czujników ds18b20 i na jej podstawie steruje elektrozaworem. Chciałbym dodatkowo wprowadzić obsługę 3 przycisków. Problem w tym, że sam odczyt temp. z czujek powoduje pewne opóźnienia np. czas konwersji jest dosyć spory bo 750ms w związku z tym reakcja na przyciśnięcie...
LED EQU P1.7 X EQU 20h ;(zmienne w pamieci RAM) XK EQU 21h ORG 000h ;procek po resecie zaczyna od adresu 0, tak wic skacze do etykiety MAIN JMP MAIN ORG 0013h JMP PRZERWANIE MAIN: MOV X, #1 MOV XK, #1 SETB LED >>>Dalej wpisz konfiguracje timera JMP $ ;zapetlenie kodu, bo poleci dalej do przerwania i narobi bigosu PRZERWANIE:...
Dziękuję za odpowiedź. Sygnał PWM z mikrokontrolera Stm32 rzędu kilku kHz. Sygnał będzie sterował falownikiem wentylatora więc dokładność z +-5% mi wystarczy. Na co zwrócić uwagę w trakcie konfiguracji timera?
No dobrze zatem oto co udało mi się sklecić: Konfiguracja timera: [syntax=c] TCCR0B|=(1<<CS02); TIMSK|=(1<<TOIE0); sei(); [/syntax] Obsługa przerwania: [syntax=c] ISR(TIMER0_OVF_vect) { } [/syntax] I ponawiam prośbę. Czy ktoś mógłby napisać swoją konfigurację timera analogiczną do tego co zostaje zrobione w BASCOMIe. A może jest jakaś możliwość...
.... W pętli głównej sprawdzam na okrągło bit 0 rejestru 0 układu ( sprawdzam flagę alarmu timera). .... "Additionally, a timer alarm can be programmed by setting the timer alarm enable (bit6 of the alarm control register). When the value of the timer equals a pre-programmed value in the alarm timer register (location0F), the alarm flag is set ( bit1...
Procesor STM32F103ZET6 jest mikrokontrolerem ARM z rodziny Cortex M3, który jest taktowany zegarem o maksymalnej częstotliwości 72 MHz i zasilany napięciem +3,3 V z wyjścia stabilizatora napięcia LT1117-3.3 (oznaczony desygnatorem U10). Po co to piszesz? Napisz może co to cudo ma z założenia robić. Zastosowanie opóźnień jako pętli for (int i=0;i<ADC_value;i++);...
Niech sobie kolega nawet nie żartuje. Wejść w konfigurację strefy, ustawić "Sterowana timerem" - skonfigurować dany numer timera.
Jest mozliwa taka konfiguracja "Config Rc5 = Pinb.2 , Timer = 2" P.S. przepraszam za moj "Polski jezyk" jestem Czechem :-)
Nie nie rób się kaczką albo sie prześpij ahahahahahaha :D OCIE1B zamieniasz na OCIE1A OCR1B zamieniasz na OCR1A zamieniasz wektor TIMER1_COMPB_vect na TIMER1_COMPA_vect kasujesz wszędzie to TCNT1=0 bo nie ma sensu Dla Timer0, w przerwaniu, pod linijką "dot ++ ; " dopisz TCNT0 = 6; To też można na palcach policzyć: 8MHz to jest na sekundę a sekunda ma...
To już nie rozumiem, co jest źle. 1) Konfiguracja timera 2) Nie można podejrzeć zmiennej podczas debug
Rzeczywiście konfiguracja timera 0 bezpośrednio na rejestrach przyniosła pozytywny skutek. Dzięki za info, uważam temat za zamknięty.
Witam Jak zwykle mam problem z konfiguracją timera i prosze o pomoc Potrzebuje wykonać stoper z dkładnością 0,1 s Jak skonfigurować timer0 i jakiego kwarcu urzyć w procku AT89c2051 Prosiłbym o jakiś przykład :(
Oto fragment kodu programu. Zmienne KEY_1, KEY_2, KEY_3, KEY_4 służą do przechowywania kolejno wpisanych liczb z klawiatury. Po podaniu 4 cyfr z klawiatury, zmienna "sprawdzenie" przyjmuje wartość 1 i następuje sprawdzenie poprawności wpisanego kodu. Jezeli kod jest poprawny, to zrealizują się komendy zawarte w "if". Jest tam między innymi komenda P1OUT|=BIT6....
Konfiguracja Timera ma być w jednej linii. Tak to się nawet nie skompiluje, nie mówiąc już o działaniu.
Przy jednym Timerze były by obliczenia takie jakie masz w pierwszym poście. Czyli kierunek masz dobry. Co do konfiguracji Timera to nie wiem, bo nie używam bibliotek STMa.
Program na pewno można zkompresować. Konfiguracja Timera to max kilkasaście B pamięci programu.
jaki sposób można to zmieniać na rejestrach? Jest rejestr TIMx capture/compare enable register (TIMx_CCER). https://obrazki.elektroda.pl/9768584600_...
Tak na szybkiego,sprawdź to: #include <avr/io.h> #include <avr/interrupt.h> void main(void) { //konfiguracja wyjsc DDRB = 0b11100; //konfiguracja timera 0 TCCR0A = 0xC3; TCCR0B = 0x01; //konfiguracja timera 1 TCCR1A = 0xF1; TCCR1B = 0x09; OCR1A = 0xFF - 0x04;//jasnosc niebieskiego OCR1B = 0xFF - 0x02;//jasnosc zielonego OCR0A...
W konfiguracji Timera dodaj Mode=1. Teraz chyba pracuje jako 8 bitowy.
Witam Konfiguracja timera do sterowania wyjściem ma postać: - ustawić czas ZAł. WYŁ i wskazanego akcję WYJŚCIE, - dla danego WYJŚCIA zaznaczyć 'załączane przez' odpowiedni TIMER np. TIMER 1, TIMER 2... W przypadku pytań proszę o kontakt. Robert H.
Na bazie jednego z przykładów od STM zrobiłem transfer DMA z urządzenia zewnętrznego i drugi układ z transferem do urządzenia zewnętrznego. W każdym przypadku miałem zewnętrzny sygnał taktujący (zegar) danych równoległych w takt którego dane są wysyłane/odbierane. W przykładzie był do tego zaprzęgnięty któryś timer, ale nie pracował jako licznik tylko...
15 może 20s. jeszcze dokładnie muszę zmierzyć Na początku konfiguracja timera [syntax=basic4gl]Config Timer0 = Timer , Prescale = 256 Enable Interrupts Enable Timer0[/syntax]
Gate i Mode w konfiguracji timera nie występuje w bascomie na AVR. Prawdopodobnie może to być sposób wyzwalania/ zliczania timera (wewnętrzne lub zewnętrzne) plus jakieś inne tryby pracy.
Ale zabiera drogocenny timer. Lepiej włączyć przerwanie od porównania w timerze0. W Arduino HAL Timer0 jest używany przez funkcje delay(), millis(), micros() etc. Jak się zacznie tam zmieniać konfigurację timera, to te funkcje przestaną poprawnie działać. Można próbować, ale trzeba wiedzieć, co się robi.
Witam, w tych wszystkich kodach przydałaby się jeszcze nieskończona pętla główna, np.: [syntax=c]while(1) { }[/syntax] po konfiguracji TIMERa.
Jak powinna wyglądać konfiguracja timera i przerwania wyzwalanego przyciskiem? Kawałek kodu z opisem na pewno by mi bardzo pomógł i sam bym to powklejał :)
Witajcie. Mam następujący problem. Otóż przy obsłudze przerwania od rc5(Int0) oraz pracy Pwm na timerze0 przy częstotliwości 1MHz wszystko działa, natomiast gdy zastosuję 16MHz mikrokontroler nie odczytuje komend od rc5? Dodam, że po wycięciu fragmentu z konfiguracją timera rc5 działa, natomiast co oczywiste przestaje działać pwm. Czyżby zła konfiguracja...
Serdeczne dzieki wszystkim, ktorzy sie dołaczyli do postu. Dziwne jest tylko, ze przy tej konfiguracji Timera uklad ladnie dziala ;) ! . Poeksperymentuje jeszcze. Mam jeszcze jeden problem. Napisalem programik - (praktycznie taka sama konfiguracja timera itp) ktory wygrywa melodyjke. Problem polega na tym, ze czesto przerywa gre i wypadaja poszczegolne...
Funkcja nazwana przeze mnie, w niej wpisujesz całą konfigurację Timera. Pisanie w taki sposób ułatwia życie. Teraz wszystko działa ok?
konfiguracja timer bascom stm32 konfiguracja timer biblioteka timer wieża
nadajnik niskich częstotliwości volvo silnika skuter tuningu
kamery zewnętrzne opinie myjka macalister
Czujnik przepływu wody – brak sygnału, diagnostyka, typowe usterki, wirnikowy, ultradźwiękowy Gorenje WA 60149 – liczba amortyzatorów bębna, parametry, wymiana