Witajcie moi drodzy W tym temacie poznamy podstawy przerwań i timerów w PIC18F2550 . Na początek będzie krótki wstęp teoretyczny, a potem wszystko przerobimy dokładnie na praktycznych przykładach. Do lektury tematu przyda się ogólna wiedza na temat przerwań i programowania w C, choćby taka z Arduino. Temat oczywiście nie zastąpi w pełni czytania noty...
Witam kolegów, głowię się już ładnych parę dni nad taką kwestią w procku: zrobiłem na Atmedze8 zegarek. Zewnętrzny kwarc 4MHz. Timer1 zajmuje się odliczaniem równych sekund, Timer0 osługą wyświetlania itp. Na czym polega problem? Zegarek spóźnia się, wg moich obliczeń na symulatorze w AVR Studio, o 0,345s na dobę. Nie jest to szok ani porażka, raptem...
"Ktoś ma jakiś pomysł, żeby to rozwiązać? Może ktoś ustawiał RTC na innej atmedze i mu działał?" Kiedyś robiłem na Atmega32 , i działało . Rożnica taka , że w A32 timer pracujący z oscylatorem zewnętrznym to Timer2 ASSR = 1<<AS2; TCCR2 = 1<<CS22 | 1<<CS20; TIMSK = 1<<TOIE2;
Problem wyniknął z mojego poprzedniego tematu... ;) Wszelakie przykłady jakie znajduję na necie dotyczą timera w trybie 1-2, a nie potrafię znaleźć nic w "3" :| Chcę użyć timer0 jako "podwójny licznik": 8-bitowy licznik impulsów i 8 bitowy licznik czasu. Wg. dokumentacji: No dobra, ale jak to wygląda w praktyce? Jeśli mam 1/2 licznika i 1/2 timera to...
Witam. Mam drobny problem i nie wiem jak go ugryźć. Atmega32 kwarc 16mhz W przerwaniu odczytuję klawiaturę ps2 i w między czasie robię wyświetlanie na matrycy w Timerze z preskalerem 64. I jeszcze mam uruchomione PWM. Jesli wyświetlanie zrobie w pętli głównej i wyłaczę timer to klawiatura czyta się prawidłowo ale jeśli uruchomię timer to wówczas czyta...
Poszukuję schematu prostego timera, działającego w ten sposób, że po podłączeniu zasilania po ok.4-5 min wyłącza mi przekaźnik sterujący zewnętrznym urzadzeniem.
Tak więc moja teoria legła w gruzach. Niestety nie można sterować timerem wyjścia typu Przełącznik BI. Bardzo pomógł mi pomysł BENO99. Troszkę go jednak zmodyfikowałem. Zrobiłem tak: Strefa oświetlenie, Wejście wirtualne zał/wył czuwanie należy do strefy Strefa sterowana timerem z priorytetem (jak nie było priorytetu, to po wyłączeniu pilotem i ponownym...
Witam Poszukuję układu zewnętrznego Timera, który zawierał będzie minimum 2 timery i najlepiej gdy by dało się go konfigurować po magistrali I2c. Wymagane jest również aby mógł sygnalizować przepełnienie czy dopasowanie do wartości rejestru kontrolnego na osobnych nogach jako zmiana stanu umożliwiająca wywołanie przerwania w uP. Układ potrzebny ponieważ...
Potrzebny mi timer z wyzwalaczem i przerwaniem na ATmega. Założenie jest takie że przed rozpoczęciem zadania ATmega ma aktywować timer, a jeśli nie zostanie ono wykonane w określonym czasie to nastąpi przerwanie i wyświetli awarię. Problem w tym że czas timera jest dość spory (powyżej 1 min) i bardziej widzę zrobienie czegoś takiego na zewnętrznym niezależnym...
Witam. Jestem zielony w temacie . Posiadam timer do podlewania roślin doniczkowych programowany na 30 dni który ma małą pompkę, chciałbym wywalić tą pompkę i przewody zasilające podłączyć do arduino (napięcie na przewodach podczas pracy pompki to 6V) . Arduino miało by sterować przekaźnikiem do którego podłączył bym dużą pompę na 12V . Jak to wszystko...
Witam. Szukam timera przemysłowego 20-30 cm z odliczaniem 10-0 s (start, reset) albo czy można zadaną wartość on-delay timer (S7-300 Siemens) jakoś przekazać na zewnętrzny wyświetlacz. Pozdrawiam
PZ-1 to praktycznie aplikacja układu zegarowego CEMI MC1206 + automatyczna regulacja jasności świecenia wyświetlacza w zależności od zewnętrznego oświetlenia.
Musisz wykorzystać rejestr D8057 dla 1 potencjometru lub D8058 jeśli są 2. Są w nich aktualne wartości odzwierciedlające pozycję potencjometrów 0-255. Ok.Dzięki,a czy istnieje możliwość podłączenia potencjometru zewnętrznego?
Absolutnie nie oczekuje gotowca, bardziej interesują mnie luźne podpowiedzi przemyślenia. W tej chwili w planie przewidziany jest podział na klasyczne trzy strefy, z zamykaniem rolet po włączeniu czuwania w strefie dom. Po podaniu sygnału na napęd bramy włącza się opóźnienie dla garażu, kontaktron bramowy załącza oświetlenie wewnętrzne garażu. Z klawiatury...
Pewnie trzeba zacząć od schematów urządzenia, albo co najmniej sprawdzeniu na czym jest robione sterowanie wieży. Trzeba sprawdzić czy producent przewidział coś takiego w planach (pewnie wątpliwe). A jak jest na procesorze (a pewnie tak) i nie jest to przewidziane to niestety, ale marne szanse na wpięcie się w elektronikę wieży. No chyba że zastosowanie...
Witam, Pracuję na ATmega16 taktowanym wewnętrznym oscylatorem RC. Chciałem wykorzystać Timer1 do odmierzania czasu np. 1s lub 1min (po zastosowaniu preskalera 1024), a Timer2 razem z przerwaniem zewnętrznym do wykonania regulacji fazowej. Kiedy chce tylko odmierzać czas, albo tylko regulować fazowo to wszystko działa poprawnie. Jednak kiedy chcę połączyć...
Mam taki problem, że zrobiłem projekt Odbiornika Morsa na ATmedze8. W oryginalnym projekcie jest kwarc 10 MHz, a ja użyłem 10.240 MHz gdyż taki miałem w domu, a sklepu elektronicznego w mojej okolicy nie ma. Jak podłącze ten odbiornik do komputera i z programu morsik coś wysyłam to np. "adrian" dekoduje poprawnie, a "jarek" już nie, tylko na LCD pojawia...
Tłumaczą Ci ludzie już drugi dzień. Zwłaszcza kolega Logan . Czy tak trudno przeczytać w Helpie: Instrukcja ON INTERRUPT Przeznaczenie: Wykonuje skok do podprogramu gdy wystąpiło określone przerwanie. Składnia: ON źródło_przerwania nazwa_podprogramu Jeśli trudno to porzuć programowanie - są łatwiejsze profesje.
Przecież pisze to wyżej:) Ma być CTC, i czy to ważne dlaczego? Ma być użyty dlatego, że Timer 1 to PWM, Timer 3 liczy czas między przerwaniami zewnętrznymi i wpisuje ten czas do wartości TOP Timera 2. Ale timer 2 jest 8 bitowy, wiec ucieka mi pewna wartość bo Timer3 jest 16bit. Timer4 jest również 16bit wiec powinno grac.. Teraz działa to tak, że wartość...
Witam! Nie znalazłem odpowiedzi na forum, a już mnie zaczął męczyć ten timer1. Chciałem, żeby po prostu odliczał mi czas. Do funkcji przekazuje mu wartość odpowiadającą ilości milisekund (tu w ogóle jakieś cuda się dzieją - wartość "ms" po wyliczeniu OCR1A przyjmuje jakieś kosmiczne wartości [sprawdzane jtagicem], stąd też zrobiłem przypisanie do zmiennej...
Mam problem z TIMER2 - odmierzanie czasu , najlepiej 1s. Wartość b będzie zmieniała się - tylko co jaki odstep czasu. Może ktoś poratować? Albo ma może jakiś swój przykładowy programik na Timer2 z wywoływanym przerwaniem? Radzio // Testowanie timera 2 #define F_CPU 8000000UL #include <avr/io.h> // dostęp do rejestrów #include <avr/interrupt.h>...
\ 1. Rozumiem, że ustawienie odpowiedniej częstotliwości da mi czas, który jest mi potrzebny? Tak, program z tego postu demonstruje rejestry i bity których odpowiednie ustawienie spowoduje daną częstotliwość przerwać timerów, a w konsekwencji odpowiednią częstotliwość wysyłania tekstu / migania diodą, jednak obecny ustawiony czas jest przykładowy,...
Witam wszystkich, rzadko pisze bo zwykle jakoś sobie radzę, ale po trzech dniach walki jestem zdesperowany i zaczynam szukać pomocy u Was. Zrobiłem emulację odbierania RS232 na nóżce INT0. Zbocze opadające oznacza że mamy bit startu. Tak startuje odbieranie: [syntax=c] ISR(INT0_vect){ // włączenie odbierania znaku na emulowanym UART 600bps GICR&=~(1<<INT0);...
Przepraszam że nie potrafię tego wyjaśnić ale to nie ja pisałem ten program. Mam taki kod:
Zamiast ICR1 powinieneś użyć np. OCR1A i przerwania TIMER1_COMPA_vect. Rejestr ICR1 służy do czegoś innego. Zapamiętuje wartość timera 1 na przykład w momencie zmiany stanu logicznego na pinie ICP1. Wykorzystuje się go np. do pomiaru czasu między zdarzeniami zewnętrznymi.
Witam wszystkich Elektrodowiczów! Chcę uruchomić Timer na ARMie LPC11C24. Zrobiłem standardową inicjalizację Timera, jak w każdym przypadku, ale on nie chce ruszyć za żadne skarby. Zegar magistral AHB jest ustawiony na 48 MHz (kwarc zewnętrzny 12 MHz, dzielnik PLL P = 2, M = 4 i dzielnik AHB = 1). Prosty programik, który będzie migał diodą LED co 1...
Witam Do "kompletu" brakuje mi obsługi zegara DCF77. Tzn. uruchamiałem już wcześniej na Atmega8 i nie było problemów. Jednak przy tym układzie wykorzystuję Timer, przerwania - może konfiguracja jest zła ?. Timer0 - liczniki i flagi Timer1 - DCF77 Timer2 + INT0 - odbiór RC5 INT1 - przerwanie od PCF8574 Całość działa, do momentu podpięcia sygnału zegara...
Witam. Maiłem zbudowany zegar z pomiarem temperatury na atmega 16, lcd standard, temp na ds18b2, czas na wewnętrznym oscylatorze 1mhz. Ze względu na dużą niestabilnośc wewnętrznego generatora dołożyłem zewnętrzny kwarc zegarkowy oraz zmieniłem program, który używał timera1 na timer2. I tu pojawiły sie problemy z 1wire. Przypuszczam, że procedury Bascom...
Bo jak ma działać? Widać kolega nie do końca rozumie mechanizm przerwań, skoro czeka na przerwanie INT0, a włącza przerwanie przepełnienia Timera0. Adresem przerwania przepełnienia Timera0 jest OVF0addr, a nie INT0addr. Przerwanie od INT0 wyzwalane jest ZEWNĘTRZNIE zboczem lub stanem na fizycznym wejściu INT0 mikrokontrolera, a nie Timerem. Skąd ten...
Witam. Pilnie się uczę i kolejnym zadaniem jest dla mnie obsługa PWM. W związku z tym zastanawiam się nad wybraniem odpowiedniego timera, bo generalnie wszystkie trzy nadają się do PWM. Na obecną chwile chcę sterować jasnością świecenia diody, ale następnym krokiem będzie możliwość regulacji jasności świecenia wyświetlacza w minutniku do jajek, który...
Ależ się męczysz z tym timerem... :) Poczytaj [url=]tutaj o timerze 2, tutaj [url=]o obsłudze wyjść, oraz [url=]tutaj o obsłudze wejść cyfrowych bo po jakiego grzyba masz stosować zewnętrzne obwody RC... Powodzonka :)
Jak napisac funkcje w AVR dla ATMEGA32 w jezyku C, aby mozliwe było przechwycenie przerwania spowodowanego impulsem zewnetrznym w liczniku TIMER0?? Gdyż dla TIMER 1 ustawia się bit TICIE1 w rejestrze TIMSK, a dla TIMER0 nie ma tam żadnego takiego bitu?? Jak to zrobić?? A drugie pytanko, czy jest mozliwość uzyskania 1 sekundy na TIMER0??? Ten rodzaj...
Mam problem z przerwaniem od Timera0. Chodzi o to by Timer0 zgłaszał przerwanie w trybie pracy z porównaniem. Jest to tryb Clear Timer on Compare Match (CTC). Licznik zlicza zdarzenia zewnętrzne i w momencie zliczenia do zadanej wartości ma zgłosić przerwanie i zacząc liczyć od zera. Aby to osiągnąć do rejestru OCR0 wpisuję wartość do której licznik...
Jestem w trakcie tworzenia licznika rowerowego z funkcją alarmu przeciwkradzieżowego. W cały układzie mam akcelerometr, który wykrywa większe zmiany przyspieszenia. Chciał bym żeby to wykrywanie odbywało się podczas wyłączonego licznika. Powerdown mode odpada ponieważ wyłączone jest praktycznie wszystko i nie miał bym jak wykryć większych przyspieszeń....
Witam!! mam taki problem, używam wewnetrznego oscylatora 8mhz, do procka podpięty jest kwarc zegarkowy 32,768 khz. Używam timera0 , 1 i 2 i mam nstepujący problem. O dziwo po resecie zewnętrznym mija jakies 4 sekundy zanim ruszy mi timer0, pozostałe timery ruszają bez problemu. Po resecie z wnętrza procesora efekt nie występuje. Czy kroś spotkał się...
TCCR1B |= ((1 << CS10) | (1 << CS11) | (1 << CS12)); /* ustawia timer na pracę z zew. kwarcem */ Nie z zewnętrznym kwarcem, a z zewnętrznym źródłem sygnału. Timer1 o ogóle nie może pracować z rezonatorem kwarcowym. Gdzie w takim razie go w ogóle podłączyłeś (rezonator)?
Witam :) Po kilku dniach zabawy udało mi się zbudować układ składający się z ATMEGA16 (kwarc zewnętrzny 8 MHZ, rs232) i: - czujnika podającego na pin A1 napięcie 0.2-4.7V - czujinka podającego częstotliwość 4-40kHz na pin PBO. Po przestudiowaniu podstaw BASCOMu i lekturze forum udało mi się napisać oddzielne programy do obsługi tych czujników. Jednak...
Witam! Mam wielki problem ze skonfigurowaniem ADC, które jest wyzwalane timerem. Ogólnie chodzi mi o samplowanie wejść w co ten sam okres czasu. [syntax=c] static const u32_t effectiveSamplingFrequency = 160; static const u32_t channelsCount = 8; static const u8_t adcChannels[] = { ADC_Channel_6, //ADC3_IN6, PF8 ADC_Channel_4, //ADC3_IN4, PF6 ADC_Channel_7,...
Nikt na razie nie ma żadnego pomysłu..? A może za pomocą Timera0 lub Timera2, a może wejścia przerwań zewnętrznych jakoś by rozwiązać ten temat ? Pomiar nie musi być jakoś super dokładny (choć wiadomo, im dokładnej tym lepiej).
Celem jest zrobienie funkcji zliczającej czas między przerwaniami generowanymi przez zewnętrzny generator (docelowo będzie to obrotomierz). Generator jest precyzyjny, AD9850. Na wejście zapodaje prostokąt o różnym od 50% stopniu wypełnienia ale to właśnie nie powinno mieć znaczenia. Wyjaśniam. W poniższym kodzie korzystam z funkcji micros która mierzy...
Zmienna pomocnicza zmodyfikowana w programie obsługi przerwania powinna być widoczna w całym programie. Nie bawiłem się nigdy Tiny 13, więc moje spostrzeżenia mogą być mylne lecz uważam, że kolega zapomniał o istnieniu przerwań zewnętrznych INT. Gdybym pisał ten program to podałbym impulsy wejściowe na wejście INT uC. Przerwanie zenętrzne ustawiłbym...
Cześć, słuchajcie mam taki dziwny problemik :/ Może ktoś mnie oświeci o co chodzi. No ale od początku. Mam procka mega16 i podleczoną do niego diodę do portu D pin3, starowana 0 ( świeci ). No i chce sobie zrobić żeby ona migała przy pomocy counter'ów. I napisałem takie coś: #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h>...
Szanowni koledzy czy ktoś z was może mi powiedzieć jaką mogę osiągnąć precyzję przy odmierzaniu czasu przy wykorzystaniu układu ATmega16 z zewnętrznym zegarem 8.000 MHZ(rezonator kwarcowy)? Morduje to już drugi dzień i nie mogę zrobić tego w sposób precyzyjny - na każde odmierzone 10 minut atmege spieszy o ok 20s - taka zwłoka jest dla mnie niedopuszczalna...
Witam Otóż mam taki dylemat ... Mam taki prosty programik robiący mi za licznik modulo 8. Samo liczenie odbywa się w przerwaniu timer'a ale to nie jest kwestia którą chce poruszyć. Po wywołaniu zewnętrznego przerwania, nie da się go przez czas paru/parunastu sekund wywołać. Czego to może być wina ? (pomijając że moja). Czy przypadkiem nie powinno to...
Witam. Potrzebuję napisać funkcję która zainicjalizuje Timer w Atmega32 (asynchroniczny) tak, by działał z zewnętrznym kwarcem 32,768kHz podłączonym pod TOSC1/TOSC2. Timer ma zgłaszać przerwanie co 1 sekunde. W przerwaniu powinien zmieniać stan diody na pinie PD0 na przeciwny. Proszę o pomoc w napisaniu kodu . Przepisz dokładnie to samo co napisałeś...
Witam. Zaprogramowalem mikrokontroler tym programem: $regfile = "attiny2313.dat" $crystal = 4000000 Config Pinb.3 = Output Config Timer0 = Timer , Prescale = 256 On Timer0 Odmierz_1s Dim Licz_20ms As Byte Enable Interrupts Load Timer0 = 156 Enable Timer0 Do Loop End Odmierz_1s: Load Timer0 = 156 Incr Licz_20ms If Licz_20ms = 100 Then Licz_20ms = 0 Toggle...
DEX - no cóż dlatego, bo taki układ już jest i nic nie da się teraz zrobić. Kolumny i wiersze są podpięte bezpośredni pod wymienione porty.. Więc bezpośrednie wykorzystanie zewnętrznego przerwania nie wchodzi w rachubę. mariuszlorenc - no wlasnie może o to mi chodzi, ale jak to się robi, bo to moje naprawdę pierwsze doświadczenie z Timerami, flagami...
Oczywiście możesz czasy po prostu podzielić przez 16 A nie pomnożyć? Tzn. wiadomo, że czasy trzeba zapewnić takie same, a więc pomnożyć ewentualne stałe na bazie których odmierza się opóźnienie. Albo na przykład pomnożyć wartości dla sprzętowych liczników, jeśli na bazie ich odmierzasz sobie czas. Jeśli korzystasz z delay.h z avr-libc, to tak jak pisze...
Witam. Słabo znam angielski i w związku z tym bardzo proszę o pomoc, bo nie wiem, czy mogę zastosować preskaler 128. Tu masz link do pomocy w języku polskim. Musisz ten plik downlold do swojego computera i otworzyć go - podwóny click. Proste.... Tam odnajdzesz informacje na twoje pytanie oraz sposób configuracji i stosowania timerów w AVR, a w szczególności...
Witam szanownych kolegów, Mam mały problem z programem, potrzebuje sterować pompą impulsową, której zakres częstotliwości pracy to 0-1.3Hz i czas trwania impulsu 20ms. uC taktowany jest z f. 1MHz, próby zacząłem od użycia sprzętowego PWMa i trybu CTC. Chciałbym wykorzystać do tego timer 2, ale i tak przy maksymalnym preskalerze nie uzyskam tych częstotliwości...
spróbuj tak: (...) Próbowałem i to samo. A nawet metoda gdzie najpierw przeładowuję timer a potem czyszczę flagę wydaje mi się mniej poprawna bo jeśli zbocze "napędzające" timer wystąpi pomiędzy tymi dwoma operacjami i w tym momencie mi ustawiło flagę od timera to sobie ją wyczyszczę i już drugi raz nie załaduję do timera wartości x0FFFF co robię w...
Bohaterem recenzji jest tani (ok 10 zł) sterownik czasowy HW-0516. Przychodzi zapakowany tradycyjnie - w woreczku antystatycznym i żółtej kopercie bąbelkowej. W paczce nie ma nic więcej, nawet pół słowa pisanego. A szkoda, bo używanie tego gadżetu nie jest takie trywialne, a jego możliwości są zaskakująco duże jak na tą cenę. Ma kilka trybów działania,...
Ten dziwny tytuł to propozycja wykorzystania modułu wyświetlacza z prostych nieco przestarzałych tunerów Echostar DSB-616 lub DSB- 717. Zapewne u niejednego elektronika (lub jego znajomego) taki tuner leżakuje na dnie szafy. Moduły różnią się wyposażeniem. Oprócz oczywiście procesora ATtiny2313 i 4xLED 7SEG, ten drugi posiada kilka przycisków, dodatkowy...
fox525 przepraszam bardzo, ale zle przeczytalem. Bylem swiecie przekonany ze nacisniecie ma rozpoczac zliczanie od nowa. Ups. Wielka pmylka. W takim razie w miejscu przerwania powinno byc tylko: P3_2_int: Incr Ilosc_sek Return Co do Load timer to mi sie wydaje ze ma byc 250. Czestotliwosc 12000000Hz dzielona jest sprzetowo na 12 co daje wynik 1000000Hz....
W rejestrze TCCR0 ustawiasz 3 bity CS02, CS01, CS00 zgodnie z tabelką 42 (83 strona w dokumentacji) Odpowiednio: 0 0 0 – timer zatrzymany 0 0 1 – timer włączony, zlicza bez preskalera (impulsy z zegara systemowego) 0 1 0 - tak jak wyżej, zlicza z preskalerem 8 itd. Dwa ostatnie wiersze to zliczanie impulsów zewnętrznych. W rejestrze TIMSK...
Witam, czy może ktoś spojrzeć na poniższy kod i napisać mi co w nim źle napisałem? Moim zamiarem było ustawienie przerwania na Timer2 z zewnętrznym kwarcem zegarkowym, aby co sekundę zmieniał wartość jakiejś zmiennej i wyświetlał ją na LCD. Niestety nie wiem dlaczego ale program nie odlicza mi sekundy ale mniej więcej minutę ;] Poniżej uproszczony kod...
Tak.Sam mikrokontroler działa dobrze - porty i przerwania zewnętrzne działają.Testowałem programik z tego tematu: wykorzystujący Timer0 i PWM i działa on ładnie, więc nie rozumiem dlaczego Timer na zwykłych ustawieniach nie chce działać.
Muszę użyć układ dwóch timerów ponieważ w docelowym układzie zakres czasowy Timera1 będzie za mały. Czy procesor zliczy na T1 impulsy generowane na OC2 ? Obawiam się sytuacji, że przy wspólnym CLK gdzieś mi się zbocza miną pomiędzy OC2 a T1 i układ nie zatrybi... Oczywiście że zbocza te mogą się minąć, ale to jest bez znaczenia. Podczas synchronizacji...
Witam, czy ktoś może podpowiedzieć czy sygnał zewnętrznego przerwania musi być utrzymany w stanie ( np. niskim) do czasu wywołania procedury przerwania czy może zostać zwolniony. przykład dotyczy ATmega128 (kwarc 14MHz) gdzie uruchomione są dwa przerwania od licznika TIMER1 oraz zewnętrzne przerwanie INT1(aktywne zbocze opadające). Sygnał przerwania...
:arrow: robię mały projekt: jeden słupek potrójnej sygnalizacji świetlnej, z przyciskiem, który będzie służył do zmiany długości cyklu świateł (jeden z pięciu predefiniowanych). :arrow: na chwilę obecną mam działające światełka, dodałem przerwanie przycisku (będąc świadomym jego prymitywności/braku poprawności działania), teraz chciałem dodać timer...
czy ktoś byłby mi w stanie pomóc w ustawieniu przerwania na int1 urzywająć timera1 ? ponieważ nie radzę sobie z ustawieniem tego 16 bitowego timera. ogolnie przerwanie miało by wyłączać silnik jesli zostanie wciśniety przycisk bądź krancówka
Witam Chciałem ostatnio się pobawić timerem w funkcji licznika zewnętrznych zdarzeń. Ustawiłem TMOD w ten sposób: #01000010B (czyli Timer1 w funkcji countera, tryb 0, a Timer0 normalnie w trybie 2(potrzebny do obsługi wyświetlacza)). Umożliwiłem przerwania i włączyłem timery i wartość TL1 i TH1 wyświetlam sobie. I teraz problem: kiedy zwieram nóżkę...
Otóż zliczam czas na timerze 2 i co 1 sekundę generuje mi przerwanie obsługiwane w procedurze signal. Jednak gdy jestem w menu które wywoływane jest za pomocą przerwania: ISR_BLOCK, czas nie jest liczony. Jak zrobić by priorytet przerwania Timera2 był większy niż przerwania zewnętrznego. Nie mogę ustawić ISR_NOBLOCK bo zapcham szybko stos. Czy w AVR...
Przy takim programie, na wyświetlaczu pojawiają się albo same krzaki, albo znaki zapytania, a jeżeli uruchomi się, to jest samo 0... Nie zwiększa się zmienna. [syntax=basic4gl]$regfile = "m8515.dat" $crystal = 8000000 Config Portb.1 = Output 'RW LCD Portb.1 = 0 Config Timer0 = Timer , Prescale = 1024 Tccr0 = 4 Enable Interrupts Enable Timer0 on timero...
Witam. Mam problem z timerami (lub przerwaniami), a mianowicie - nie działają. Mam taki kod: [syntax=c] #define F_CPU 1000000UL #define PORTLED PORTD #define DDRLED DDRD #define DDRDISP DDRC #define PORTDISP PORTC #include <avr/io.h> #include <avr/interrupt.h> int main(void) { DDRLED |= ((1<<0)|(1<<1)|(1<<2)|...
Timer input jest to wejście zegarowe dla timera, który w tym trybie jest po prostu taktowany jakimś zegarem zewnętrznym. Czas trwania impulsu zliczasz wykorzystując właśnie bramkowanie, natomiast jeśli chodzi o zliczanie równoczesne impulsów z zewnątrz to musiałbyś mieć 2 timery, nie 1. Można zrobić to tak: wejścia przerwań zewnętrznych reagują na zbocza...
Na początku zaznaczę, że siedziałem nad tym ostatnie 3 dni. Jestem z tego powodu CHOLERNIE WKURZONY. Ostatnie doświadczenia z kompilatorem AVR-GCC i obsługą TIMER0 i TIMER2 doprowadziły mnie do konkluzji, iż w Nocie Atmegi128 lub w headerach jest błąd. Spójrzmy na tabele preskalera TIMER2. Oto prosty programik: #include <avr/io.h> #include <inttypes.h>...
Cały czas obawiałem się o zliczanie czasu nadejścia impulsów na wejściach przechwytujących, bo wydawało mi się że może na raz pracować tylko jedno. Ale tak jest chyba tylko w trybie kiedy układ czasowy pracuje w trybie zliczania impulsów zegarowych zewnętrznych, natomiast jeżeli pracuje w trybie zliczania impulsów zegarowych wewnętrznych, to wtedy na...
Nie podałeś jeszcze jaki masz kwarc ale kiepsko to widzę... Timery 51 są 16bitowe (max), czyli mogą odliczyć najwyżej 65536 cykli maszynowych, ewentualni mogą zliczzać impulsy zewnętrzne ale to wymaga dodatkowego generatora. Zazwyczaj robi się to tak, że przerwanie jest np. co 10ms i czas 1s czy dowolny inny się odmierza przy pomocy licznika programowego.
Witam Właśnie przeczytałem rozdział manuala M8 dot. pracy T/C0 i rejestrów odpowiadających za timer, tylko nie wiem jak zrobić, aby timer odmierzał wartość 1 sekundy .... ;| To chyba nie bardzo zrozumiałeś to , co przeczytałeś :( Timery nie potrafią odmierzać czasu , ale za to doskonale potrafią zliczać impulsy , których źródłem może być przeskaler...
proszę bardzo :) : (kod jest w wersji roboczej więc nie wygląda podiecająco ;P) // deklaracja bibliotek wbudowanych w WinAVR #include <avr/io.h> #include <avr/interrupt.h> // deklaracja bibliotek prywatnych #include "lcd_driver.h"// biblioteka z driverami do wyswietlacza alfanumerycznego LCD 2x24; biblioteka z opóźnieniami #include...
Witam Jeśli potrzebujesz krótkich czasów to wystarczy timer 8-mio bitowy do dłuższych czasów 16-to bitowy. Taktowanie masz z tego co sobie ustawisz jako źródło zegara w fusebitach. Może to być kwarc podpięty pod uC, zewnętrzny generator podpięty pod uC, wbudowany generator RC. Im mniejsze czasy tym lepiej używać wiekszych częstotliwości kwarcu i ewentualnie...
Witam Projektuje układ do zliczania impulsów magnetycznych zewnętrznych z wykorzystaniem czujnika Halla TLE 490 5L. Układ ma za zadanie zliczać impulsy zewnętrzne z czujnika przekazywane na Port 3.4 (timer t0) mikroprocesora AT89S52 a następnie na układ 7 segmentowego wyświetlacza LED. Czujnik Halla jest czujnikiem o 3 nóżkach, 2 nóżki wymaga zasilanie...
Witam Chciałbym, aby mikrokontroler: 1. Mierzył czas timerem 2. Wykorzystywał funkcje PWM timerem 3. Zliczał impulsy z zewnetrznego sygnału obrotów wiatraczka. Jak dotąd zrobiłem mierzenie czasu na Timerze0 oraz PWM na Timerze1. Problem z pkt.3 ponieważ chciałbym takze mierzyć impulsy zewnętrznego sygnału. Czy jest możliwośc, aby któryś z Timerów chodził...
Witam Piszę na atmedze8 w bascomie program do odczytywania danych z odbiornika GPS. GPS jest podłączony RSem do Atmegi, obsługuje go sprzętowy UART. Transmisja jest realizowana z prędkością 4800, megę taktuje zewnętrzny kwarc 7,3728 Mhz (ale na wewnętrzym 4 Mhz też próbowałem). Oto kod obcięty o parę chwilowo nieistotnych rzeczy (definicje zmiennych,...
Witam. Natrafiłem dziś na problem z przerwaniem. Mianowicie mam DS18B20, LCD, UART i timery. Program wygląda tak, że temperatura z DSa jest wyświetlana na LCD, wszystko gra. Mam też przerwanie, w którym co sekundę wysyłane jest 6 bajtów do kompa (przez UART). Przerwanie jest od Timera co 1 sekundę. Wszystko gra do czasu. W pewnym momencie program sie...
Przez ostatnie 2h doszedłem do tego w czym tkwi problem zarówno w obsłudze przerwania od timera0 oraz od zewnętrznego INT1. Problem polega na tym że zmienna globalna którą wykorzystuję jako flagę istnieje tylko w obsłudze przerwania,flaga nie jest widoczna w głównej pętli programu lub po obsłudze przerwania resetuje się ATmega. Wywnioskowałem to gdy...
Zadaniem programu ma być odmierzenie 1 sekundy (zmiana stanu na wy). Przerwanie od timera 2 przychodzi co 1ms. Kwarc zewnętrzny ~11MHz. Czy ktoś mógłby napisać dlaczego program nie działa? #include<avr/io.h> #include <avr/interrupt.h> int i=0; int main(void) { DDRC = 0b00001000; TCCR2=_BV(CS22); TIMSK = _BV(TOIE2);...
Witam, pisze program w assemblerze który pozwarciu INT0, będzie wykonywać określoną czynność(łączyć się z innym urządzeniem), Ale narazie utknąłem w martwym punkcie, napisałem program który po zwarciu INT0 wywołuje przerwanie które zapala diodę podpiętą do lini PC0 5 razy i gasi(zapalenie uzyskuje poprzez ustawienie PC0 w stan wysoki). Całość funkcjonuje...
Udało mi się uruchomić tryb asynchroniczny, a zrobiłem to tak: #include <avr/io.h> #include <avr/interrupt.h> int main (void) { ASSR |= (1 << AS2); // tryb asynchroniczny TCCR2 |= (1 << CS22) | (1 << CS20); // preskalery TIMSK |= (1 << TOIE2); // odblokowanie przerwań z...
Trigger to jest zewnętrzny sygnał - np. inny timer (master) taktujący Twój timer (slave). Nie używasz tego trybu. Update to po prostu "przekręcenie" licznika, tyle że nie tylko - szczegóły w manualu. 4\/3!!
Chce wlutować bezpośrednio w nogi podstawki do atmegi :P trochę będzie odstawać ale ważne, że działa :) Podpowiedz mi jeszcze, czy jak przylutuje kwarc i preskaler zmienię na odpowiednio mi pasujący to nie muszę w zadnym rejestrze timera0 nic ustawiać, ze to jest zewnętrzny oscylator? (pomijając fusebity)
Tak próbowałem wyświetlić zmienna licznik jest ciagle 0. Nie mam rezystora zewnętrznego. Tak poprawiłem kod ale nadal jest to samo czyli 0. [syntax=c]#include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <hd44780.h> volatile unsigned char licznik = 0; //liczba przepełnień Timera1 volatile uint16_t reszta...
Piszesz, że masz zewnętrzny kwarc 25 MHz i nie używasz PLL. Skąd wyszła Ci częstotliwość zegara timera 12 MHz? Co właściwie chcesz osiągnąć - pojedynczy impuls czy przebieg o stałej częstotliwości? Jeśli to drugie - użyj timera w trybie PWM.
Owszem, wykorzystać AVR z rodziny XMEGA - tam timer jest o wiele bardziej elastyczny, można go też taktować z innego timera, w efekcie uzystać dowolny preskaler zegara. W ATMega 64 timer też może mieć zewnętrzny zegar, możesz więc zewnętrznie połączyć wyjście jednego timera, który będzie preskalerem z wejściem zegarowym innego timera. CLK/2 w ten sposób...
Witam. Mam problem z przerwaniami. Chcę przerwaniem INT0 uruchomić timer0 a przerwaniem INT1 go zatrzymać. Czy jest taka możliwość? 2 czujniki podpięte pod INT0/1, za pomocą których chcę zmierzyć czas przejazdu. Jeden czujnik ma wystartować zegar (bardzo dokładny przepełnienie timer0 co 1us) a drugi ma zatrzymać pomiar. Z góry dziękuję za pomoc i pozdrawiam....
Nie obraź się ale Twoja metoda pomiaru częstotliwości jest "trochę" zagmatwana :) Korzystasz z timera w dziwaczny sposób a funkcje typu Delay() w połączeniu z przerwaniami nie działają poprawnie i nadają się co najwyżej do migania diodą. Natomiast pomiar częstotliwości można zrealizować np. tak: 1. Ustaw timer aby generował przerwanie w stałych odstępach...
No to ok. ale dla niezbyt ogarnietego w programowaniu ani chociaz jak to zrobic czlowieka to niezbyt przyjazne. lecz jezeli pomoze ktos to wszystko ogarnac to stawiam piwo. Dodano po 2 Więc tak, poczytałem trochę i wnioskuję iż potrzebował bym: Kompletny zestaw alarmowy do mieszkania, małego sklepu lub biura. Zestaw zawiera: 1/ Centrala alarmowa DSC...
Użyłem GSmart control. Oto wyniki: 'smartctl' -V smartctl 6.2 2013-07-26 r3841 Dodano po 15
Witam Potrzebuję programik na attiny2313 napisany w bascom. Mam ten procek , oscyloskop i trochę ogarniam bascoma a potrzebuje to dopasować do zepsutego urzadzenia. Podane czasy są orientacyjne , wyliczone na kartce. Te czasy będę musiał dopasować , stąd potrzebuję to w bascom , opóźnienia związane z obsługą "coś ma zrobić" są nieistotne , skoryguję...
Piotrus_999 To timer miał określać momenty pomiarów, więc stosowanie przerwań ADC w takiej sytuacji ma niewielki sens. No ale raczej pojedynczy pomiar adc w tych prockach ma raczej niewelki sens. Jeżeli musialbym dostac wynik pomiaru i to w miarę dokładnie w okreslonej chwili to raczej bym jakies zewnętrzne adc zastosował. A to niby dlaczego? ADC w...
Nie mam "pod ręką" tego układu ale w symulatorze (co mnie zdziwiło, że symuluje nawet podłączony zewnętrzny kwarc) ten kod działa. Masz tam pętlę Do Loop jak ja?
Witam Prośba o sprawdzenie schematu przez doświadczonych gdyż przed zakupem Versy (nie ma funkcji logicznych!) chciałbym sprawdzić, czy to zadziała jak planuję. Czy nie ma błędów w schemacie? Ewentualnie proszę o podpowiedzi. Wersja 1 (górna) ZAŁOŻENIA: -czujka Aqua Luna w trybie 2EOL/NC ma działać jako czujka alarmowa -dodatkowo ma działać jako oświetlenie...
A kanały CCR1 - CCR4 nie mogą zliczać zewnętrznych impulsów? Mają połączenia z pinami GPIO w jakim celu?
Żeby nie zapomnieć na końcu to już tutaj napiszę, że liczy się to w programach bo one się rzadziej mylą, ale zrozumienie tematu jest oczywiście ważne. Jest kilka, a w pełni darmowych, kalkulatorów do tego. Timer jest urządzeniem sprzętowym wbudowanym w mikrokontroler. Najczęsciej taktowany jest w taki sposób, że sygnał zegarowy taktujący mikrokontroler...
No właśnie, w nocie jest taka wzmianka że tryb asynchroniczny T2 niby jest zoptymalizowany dla oscylatora 32,768Hz A ja mam ochotę, podać mu sygnał zewnętrzny. Szukałem jakiś danych w nocie odnośnie właściwości elektrycznych, alem się nie doszukał :) Zależy jak mocno szukałeś i w jakiej nocie... Inna nota Atmel podaje: " External Clocking External...
Uzyskałem pomiar mikrosekund z zewnętrznego czujnika tak jak na poniższym zdj Wartością wyświetlaną na konsoli jest rejestr CNT Timera2, który inkrementuje się co 1 us. Jednak nie zgadzają mi się obliczenia prędkości zegarów i szyny taktującej. Jeśli mam ustawiony HSE na 8 MHz, to aby uzyskać częstotliwość zwiększania licznika timera co 1 us powinienem...
Hmmm.... No to faktycznie teoretycznie wygląda Gites. Ja bym spóbował może zamienić linijkę TIMER1 = 64736 na LOAD TIMER1=800 oraz STOP TIMER1 wpisać na początku w podprogramie obsługi przerwania. Ale też nie wiem czy może to coś pomóc. Teoretycznie powinno to działać Dodano po 42 Acha i jeszcze jedno. Przypomniałem sobie że też miałem kiedyś podobne...
Ma pytanie dotyczące jak ustawić timer, żeby można było wykorzystać go do zliczania impulsów kodu RC-5 mam program zaczerpnięty z forum do jego zliczania ale on jest ustawiony z zewnętrznym kwarcem 16MHz i tam żeby to dobrze zliczało zgodnie z notą aplikacyjną Atmega16 używa się do tego preskalera poprzez ustawienie odpowiednio bitów CSS2 – 0...
Ciekawe, czytałem już te tematy. czy bez tego kwarca 32khz sie nie obejdzie? Jednak nie łapię tych timerów. Generalnie timer służy jako licznik przerwań :), wewnętrznych albo zewnętrznych na pinie TO, zewnętrzne przerwania widziane są z portu TO, a wewnętrzne przerwania generuje prescaler - wewnętrzny przerywacz "sterowany" kwarcem zewnętrznym lub...