Witam. Timer mikrokontrolera '51 taktowanego zegarem 11.059200 MHz zliczy w ciągu jednej sekundy 921600 impulsów. Ze względu na wielkość timera (2 bajty) może Kolega zliczać setne części sekundy - ustawić przerwanie co 9216 impulsów. Każde wywołanie przerwania zwiększy zmienną o 1, czyli mamy w niej wynik pomiaru z rozdzielczością 0,01 s. Rozwiązanie...
Witam, chciałbym przy użyciu Atmega8 i zewnętrznego kwarcu odmierzać i zliczać setne części sekund, sekundę mogę łatwo wyłapać z timera1 według przykładowych obliczeń 4000000MHz / 256 = 15625 65536 - 15625 = 49911 lub 8000000Mhz / 256 = 31250 65536 - 31250 = 34286 Nie mam jednak pomysłu jak....... Z góry dziękuję za pomocne wypowiedzi. Aby odmierzac...
Nie chodzi mi o dokładnosc oby jakoś działał Więc weź timer bez setnych sekund i dodaj licznik pokazujący na setnych cyferki od 99 do 0. Efekt osiągniesz, dwie cyfry losowe. Tak jak w stoperze liczącym setne sekundy uruchamianym i zatrzymywanym ręcznie. Czas reakcji człowieka to ok 100ms. Co wiec pokaże ostatnia cyferka (setne sekundy)?
czesc w zalaczniku masz fajny program do obliczania czsow przerwan dla procesorow AVR w praktyce wyglada to np tak: ustawiasz timer0 tak zeby przerwanie wystepowalo co 2 ms config timer0 = timer, prescale = 64 ... ... counter0 = 6 start timer0 przy kwarcu 8MHz, timerze0 (8 bitow) i preskalerze 64, timer zwiekszany jest co 8 us 256 - 6 = 250 :) 250 *...
No tak, wszystko byłoby super gdyby nie to, że kontrolka Timer nie wstrzymuje akcji całego programu. A chyba o to chodziło, a jak nie to ja czegoś takiego poszukuję. Narazie moim rozwiązaniem jest wykorzystanie parametru Timer, który zwraca sekundy i ich setne części i tworzę pętle aż nie uzyska czasu początkowego + x sekund (a to daje sporą dokładność).
Witam, mam problem z dokładnością licznika czasu. Licznik ma mierzyć czas pomiędzy pojawieniem się napięcia większego od 512 na pinie PA7 a pojawieniem się zbocza narastającego na INT0. Licznik zlicza setne sekundy i sekundy. Późni się około 10 sekund na minutę. Korzystam z Atmegi32 o taktowaniu 8MHz. Wynik wyświetlam na wyświetlaczu. Napiecię na pin...
[syntax=basic4gl] Dim Przerwa As Byte 'licznik czasu przerwy Dim Pomoc1 As Byte , Pomoc2 As Byte , Wysw As Byte 'zmienne pomocnicze Dim Random As Byte 'zmienna do uzyskania przypadkowości Dim Zliczaj As Bit '1 - zezwolenie zliczania czasu Dim Setne As Byte 'licznik setnych części sekundy Dim Dzies As Byte 'licznik dziesiątych części sekundy Dim Wygasz...
Więc od początku. Wzorowałem się na tym schemacie: http://obrazki.elektroda.pl/7178254200_1... (jest, tu mały błąd PC0, PC1, PC2, PC4 - ale to wykryłem na początku) po drobnej przeróbce kodu, stoper działa tak jak tego potrzebuje. (zmiany, jakie dokonałem opisałem po polsku) jedynie potrzebuje duużych cyfer. załączam cały kod: [syntax=c]#include...
Po podpięciu PCF mogę ustawiać / pobierać czas, niestety nie jest on w inny sposób zmieniany przez ten układ. w skrócie : PFC nie odmierza czasu. Kwarc 32k, kondensator 33piko. Zegar podłączony na płytce stykowej tak jak na schemacie, tylko pod ATmege8. Kod : w mainie w nieskonczonej petli jest pobierany czas i wrzucany na wyswietlacz. rtc.h [syntax=c]...
To mój drugi program ale nie robiłem jeszcze niczego na przerwaniach...każdy pisze po swojemu a nawet mając doświadczenie nawet wam trudno taki program przeanalizować....wszyscy odwołujcie się do google twierdząc że wszystkiego tam jest w bród a to nie jest tak różowo...może dla kolegi to banalne podstawy podając za przykład linki a potem te same procedury...
Zobacz ten kod - jest to zegarek z wyświetlaniem czasu lokalnego , utc oraz daty..korzysta z PCF8583..multiplex na 6 cyfr..proc to atmega32 16mHz. #include <stdint.h> #include <avr/io.h> #include <stdlib.h> #include <avr/interrupt.h> #include <avr/delay.h> //********** funcje obsługi TWI dla rtc #define zegar 0xA2 // A0...
Okej racja,w zasadzie to nie ma znaczenia gdzie są przyciski podpięte, działanie zależy od stanu początkowego w programie. Układ już gotowy, teraz męczę się z tymi timerami: [syntax=cpp] #define F_CPU 16000000uL #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <stdlib.h> #include "HD44780.h" //Wyświetlacz:...
Wielkie dzięki ;) Rezystor całkowicie rozwiązał problem. Moze i rozwiazal jeden z problemow i to nie calkowicie. Popatrz na swoj kod: Licz: Incr Przerw0 If Przerw0 = 3125 Then Incr Setne Czy na pewno beda to setne sekundy? Druga sprawa to jest bledem umieszczenie startu STOPERA w "Do ... loop, uzaleznione od stanu pinu. Od momentu nacisniecia przycisku...
Witam serdecznie zrobiłem zegar na w/w procesorze i wyświetlaczach 7 segmentowych led. Sekundę odmierzam z wykorzystaniem Timera 2 w trybie asynchronicznym z dodatkowym kwarcem 32,768Khz. Multipleksowanie wyświetlaczy realizowane jest za pomocą timera0. Do tej pory wszystko działa świetnie, Chciałbym jednak dodać jeszcze zliczanie setnych sekundy i...
Witam. Mam następujący problem... Chce zrobić sobie na uP attiny2313 (płytka startowa avt3500) stoper i timer w jednym, z dokładnością do dziesiątych części sekundy, na LED. Dołączyłem do wyjść goldpin mojej płytki dodatkowe 2 przyciski bistabilne, pod porty PIND.2 oraz PIND.3, sterują one wyborem stoper/timer oraz gdy je "odklikujemy" zerują stan licznika....
Witam. Mam kłopot tego typu, że potrzebuje zrobić nastawny timer z dokładnością do 0,01s w zakresie od 40s-2min. Procesorek ma w kółko ustawiać na jednym z portów 1 co zaprogramowany czas. Port w czasie liczenia jest zerowany. Chciałem wykorzystać do tego celu PCF8583 w którym wybrałem funkcje timera. Wszystkie rejestry ustawilem jak trzeba i w rejestrze...
Nie zabardzo rozumie ten kod, który wkleileś... w sumie nie to jest chyba ważne ale może też powodować problem. Timer (funkcja) zwraca czas w sek z dokładnościo do setnej sek, który minął od początku doby. Testuj tą daną w pętli by decydować o wykonaniu kodu, pamiętając o tym, że timer wyzeruje się o północy. pozdr.
a wiec tak zakładamy że przy up pracuje kwarc 12MHz. jeśli nie wymagasz dużej dokładnośći to timer ustawiasz w tryb 1 ( 16 bit ) tak aby generował przerwanie np: co 10ms; przy 12MHz cykl wynośi 1us czyli przerwanie będzie co 10000 cykli ( 10000 us = 10ms ). wartość po której następuje przerwanie to zmiana z 65535 na 0000. czyli do rejestrów licznika...
Czy ma ktoś może sprawny program Timera( chodzi mi o odliczanie np od 50min w dół do 0 z uwzględnieniem cześci dziesiątych i setnych sekundy) i ma to być zrobione na wyświetlaczach segmentowych... Jeśli ktoś spotkał sie z czymś takim to proszę o wysłanie pliku.. przydałby się też zwykły stoper.. w miare możliwości. Pozdrawiam! Ah no i byłbym zapomniał...
Zajrzyj sobie do noty katalogowej. Tak de fakto ten układ jest poprany, bo nietypowo koduje informacje o dacie. Masz tu fragment mojego kodu powinien ci pomóc w rozgryzieniu problemu. To definicja i opis rejestrów PCF8583. 'Deklaracja rejestrów dla zegara czasu rzeczywistego PCF8583' Const Rtc_in_adres = 160 'Adres do zapisu danych A0 do GND Const Rtc_out_adres...
Wszelkie komunikacje przewodowe oraz optyczne między startem a metą tw moim wypadku odpadają: las, brak optycznej widoczności między startem a metą, duża odległość. Pomysł z umieszczaniem urządzeń (mikro-kontroler) na rowerach też odpada ponieważ będą tam narażone na wstrząsy, wodę i uszkodzenia mechaniczne. Po za tym nikt nie chce dodatkowej masy....
no to bedziesz miał duzy probel ze zrobieniem tego. trzeba by było napisac program na jakiegoś dowolnego taniego Atmela mógłbym jak bede miał czas to spróbuje to napisać Dodano po 3 Chcesz mieć tam jakiś wyświetl;acz i możliwosć nastaw godzin ?? czy to ma być bez niczego włączas i odlicza np 72h i potem załącza coś i czy dokąłdność musi być co do sekundy...
Program ma działać następująco: 1. Wyświetl stałą wartość początkową - jakieś 4 cyfry bez znaczenia jakie np 1234 2. Zacznij odliczać czas - to ma być realizowane za pomocą timera T0, który ma zgłaszać przerwania 3. Wyświetlaj sekundy na dwóch cyfrach z prawej i minuty na dwóch cyfrach z lewej W punkcie 2 napisano, że T0 powinien odliczać czas, czyli...
Dziś już nie dam rady nic zrobić. Ale te; obliczenia to wyciągnięcie tysięcznych t, dziesiętnych d, setnych s i jednostek j. Następnie na porta wystawiam cyfrę jednostki zmienna j o wartości podane z szeregu data. Tak jak piszesz sprawdze na samym początku timer. Następnie wyświetlanie zmiennej do portu. Wyklucze co jest nie tak. A Sylwester blisko....
Mam problem, mianowicie mam na dsm 8051 zrobic stoper z miedzyczasami czyli odpalam ktoryms klawiszem i leci sobie czas na siedmiosegmentowym natomiast wciskam inny klawisz i pojawia sie miedzyczas na LCD , moge robic ile chce miedzyczasow natomiast jak wcisne jakis jeszcze 3 klawisz to zatrzyma sie i koncowy wynik wynik bedzie na siedmiosegmentowym,...
No powiedzmy ze rozumiem ale po wpisaniu np 0x98 nie odlicza 2 sec tylko za pierwszym razem dolicza do 2 s a pozniej 100s. I o co chodzi. Dodano po 1 Dobra z timerem dalem sobie spokoj bo i tak nie weim jak to dziala :( Zacznijmy sie bawic alarmem Poprostu nie chce dzialac Moje ustawienia: 00h pcf8583SetAlarmEnable(0x0C); 08hpcf8583SetTimer(0x90); 0Chpcf8583SetAlarmHour(0x00);...
Witam, dołączę się do tematu aby nie robić śmietnika. Mam taki oto problem. Zrobiłem początkowo program, który odczytuje mi rejestry godziny, minut, sekund i sekund setnych na wyświetlaczu LCD - sam odczyt, taki timer. Niestety gdy próbowałem zapisać coś do PCF'a np do rejestru minut liczbę 10 tak po tej operacji przestał działać licznik minut... Czyli...
Mam do zrobienia program o następującym działaniu: przerwaniem zewnętrznym (INT0) uruchamiam całą machinę - czas zaczyna być mierzony, kolejnym przerwaniem zewnętrznym (INT1) robię STOP, i w tym momencie wynik powinien być wyświetlony na wyświetlaczu LCD. Niestety jak chce odpalić program już na płytce to się nic kompletnie nie dzieje. Zapewne coś jest...
Witajcie. Poszukuję odpowiedniego przełącznika, który będzie zapodawał napięcie przez kilka setnych sekundy (łączył, a nie rozłączał). Myślałem o zastosowaniu jakiegoś przerobionego izostata niskonapięciowego monostabilnego (znalazłem tylko takie, w których styki były przełączane parami) albo przełącznika chwilowego. Instalacja działa na 12V i chodzi...
Ale z tego co wyczytałem w PDFie wynika ze bit 6 rejestru 0x08 to jest "timer alarm enable" , a mnie chodzi o alarm interrupt enable czyli bit 7. Ale jest pewien postęp: Przerwanie działa przy następującym kodzie: writePcf(0x00, 0x04); writePcf(0x08, 0x90);//dayly alarm //writePcf(0x0d, 0x01); //dla dayly alarm to jest nie istotne...
To od multipleksowania wywolujesz co okreslony czas wiec znasz interwal i mozesz tak samo na jego podstawie zwiekszac wartosc licznika czyli czasu. Właśnie tam mam zrobione w tej chwili. Wyświetlacz (wspólne anody) multipleksuje co 2 ms i przy okazji jego obsługi zwiększam licznik stopera. Gdy sekundnik dojdzie do 500 to już poza przerwaniem robię...
Witam, Dziękuję za podpowiedzi. Więc tak : Komunikacja między modułami jest sprawna (miganie dioda czy wysyłanie ustalonej wartości, działa). Kolego Eagle...nie oczekuję, że ktoś poprawi mi kod i da gotowca, chce się tego nauczyć, by następnym razem nie mieć takich problemów. Pozmieniałęm troszkę (nadal nie działa) , wydaje mi się że jest lepiej, bardziej...
Coś mi nie wychodzi chyba w złym momencie kody wpisuje Twoje podpowiedzi kolego "emarcus". [syntax=basic4gl] 'Stoper $regfile = "M32def.dat" $crystal = 16000190 Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2 Config Lcd = 16 * 2 Config Timer0 = Timer , Prescale = 1 Config Porta.2 = Output...
Witam Latch w 4511 działa tak, że w momencie kiedy na we LE panuje stan L - logicznego zera, to zatrzask jest "przezroczysty" dla danych przepływających z licznika dekadowego (który musi być podpięty do 4511 - rzecz jasna) do dekodera BCD/7-seg. W momencie kiedy stan na wejściu LE zmienia się z L na H, Latch "zatrzaskuje" dane i jeżeli stan H pozostanie...
Zbudowałem sobie zegarek z tiny26 + pcf8583 + wyświetlacz nokia3310. Trochę mało pamięci na znaki i kod programu ale w wersji minimalnej działa poprawnie. Dla ciekawostki dodam, że wyświetlacz działa przy zasilaniu 5V i jeszcze się nie uszkodził (mimo zaleceń na 3.3V). Niestety jak na zegarek naręczny byłby drogi w eksploatacji. Pożera mi 1 baterię...
a co gdzie wpisać bo nie za bardzo wiem Dodano po 12 przepraszam, chyba źle się wyraziłem. Chodzi mi o to by stoper wyglądał tak: 00:00:000 czyli sekundy, dziesiąte sekundy, setne sekundy. i nie wiem jak to ustawić....
Witam Śmiem zapytać co to za zapis: 1wwrite &HCC , 1 , Pind , 2 ? No raczej wszystkie linie związane z odczytem i zapisem do DS'a są krótko mówiąc zje****. Pozdro Moze i tak, nie twierdze ze jestem orlem, daleki jestem nawet od powiedzenia ze 'umiem' ;) Podlaczone mam 2 czujniki (na d.2 i d.3) i w ten sposob odwoluje sie do kazdego z nich. narazie...
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...
Witam Czy ten program ma prawo działać na ATtiny2313 z wewnętrznym oscylatorem RC o wartości 8MHz jako sterownik silnika bipolarnego, gdyż po podłączeniu do l293d sterownik się strasznie grzeje a silnik delikatnie przekręci się o jeden krok a następnie przerwa i jeden krok do tyłu. [syntax=c]/* #include <avr/io.h> #include <avr/interrupt.h>...
Witam serdecznie, jestem początkującym jeśli chodzi o programowanie w c na avr. Celem mojego zadania jest zaprojektowanie termostatu z użyciem czujnika temperatury dwóch diod sygnalizujacych, przycisku do programowania termostatu oraz przekaźnika jako elementu wykonawczego. Poniższy kod napisałem na atmega8 jednak można byłoby zastosować uboższego avr...
Witam. Pisząc program natknąłem się na pewien problem, który uniemożliwia mi pójście dalej. Otóż potrzebuję wykonać określone operacje w równych odstępach czasu. Docelowo będzie to coś koło 2-5 minut, ale w czasie testów pracuję z mniejszymi odstępami. Ustawiłem Timer1 w tryb CTC i ustawiłem rejestr OCR1A na 15625, co przy taktowaniu 16MHz daje przerwanie...
Raczej najpierw musisz sie nauczyć C No właśnie próbuję. Przez ostatnie kilka dni przewertowałem więcej PDF od kontrolerów, niż przez ostatnie 3 lata :D Na razie największy problem dla mnie to operacje bitowe - wiadomo w Bascom łatwiej. Kupiłem nawet Attiny4313, coby nie brakło pamięci. Problem był jednak w momencie polecenia włączenia przerwań, były...
Witam, tworzę menu dla mojego termometru z wykorzystaniem 3 przycisków. Sęk w tym, że nie chcę to za bardzo działać i nie wiem za bardzo co powoduję, że nie mogę kontynuować programu. Sprawa wygląda tak, że mamy teoretycznie jak na razie zdefiniowane 2 ekrany, które wyświetlają temperaturę pokojową oraz zewnętrzną. Wykorzystałem do tego zmienne uint8_t...
Witajcie napisałem program który co minute wysyłasygnał to na jeden port po następnej minucie na drugi port to steruje zegarem problem w TYM że zegar ten spóżnia nie wiele ale jednak w czym problem?? może zły kod??? poradzcie $regfile = "2313def.dat" $crystal = 8000000 Config Pinb.2 = Output Config Pinb.3 = Output Config Timer1 = Timer , Prescale =...
Witam, napisałem taki o to program, którego zadaniem jest wyświetlenie wartości zmiennej w postaci dziesiętnej. Wszystko wydaje się być w 100% racjonalna, ale niestety nie działa poprawnie. Kod programu poniżej: #include <reg51.h> #include <absacc.h> #define bit_get(p,m) ((p) & (m)) #define bit_set(p,m)...
taktowanie procesora: 16MHz atmega32a main.c: [syntax=c] int main(void) {/* sprawdzamy ile czujników DS18xxx widocznych jest na magistrali */ czujniki_cnt = search_sensors(); /* wysyłamy rozkaz wykonania pomiaru temperatury * do wszystkich czujników na magistrali 1Wire * zakładając, że zasilane są w trybie NORMAL, * gdyby był to tryb Parasite, należałoby...
Witam, Konstruuje sobie chronograf na Atmega8. Inspirowałem się tym- http://www.e-tawerna.pl/viewtopic.php?t=... Schemat: http://obrazki.elektroda.pl/8384525900_1... Jednak że z programowaniem mam na pieńku to skleciłem takie coś... pomiar czasu przepisałem z książki i lekko zmodyfikowałem....
(at)dondu Twoje artykuły czytałem dokładnie ;-) Z kodu poniżej wycięte ustawianie portów (bonie widziałem żadnej różnicy w zużyciu prądu). Procek ustawione fusami na 8MHz wewnętrzny z podziałem przez 8 [syntax=vbnet] $crystal = 1000000 ' ustawiamy prędkość zegara $baud = 9600 ' ustawiamy prędkość transmisji $hwstack = 220 ' ustawiamy wielkość stosu...
Już za kilka dni muszę oddać moją pracę dyplomową. Moim problemem jest zbyt duży rozmiar kodu i jeśli nie zoptymalizuje programu to nie umieszczę w nim wszystkich założonych funkcji. Czy ktoś ma pomysł jak zaoszczędzić trochę pamięci patrząc na mój kod? (na program skłąda się jeszcze biblioteka do obsługi wyświetlacza z Nokii) #define _MAIN_MOD_ 1 #define...
Wiem ze w PHP operatory sa takie same jak w c, dlatego ucze sie C na uC, a nie np BASCOM'a ;] (choc C lepsze ;]). Dzięki za pomoc, teraz jest ok. Dodano po 14 A jednak nie, wystąpiła jeszcze bardziej komiczna sytuacja. Scislej: Gdy nacisne przycisk, do pamieci zapisywany jest czas wciscniecia, gdy w krótkich odstepach czasu nacisne kilka razy, mam po...
setne sekundy timer sekundy stoper setne
temperatura zadana zaworu defro magnetofon najlepszy jakość wykonywanie przerwań
diagbox peugeot problemy diagbox
Schemat kabli tylnej klapy Mercedes C W204 2012 Zastąpienie portu USB telewizora zasilaczem USB