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...
$regfile "m8515.dat" $crystal = 8000000 Enable Timer1 Config Timer1 = Timer , Prescale = 256 On Timer1 Sekunda Timer1 = 34286 dim sek as byte do loop Sekunda: Timer1 = 34286 Incr Sek Return Powinna byc rowna sekunda (wyliczone przez kalkulator avr) Ps. Timer startuje w momencie jego konfiguracji wiec jesli nie chcesz go uzywac odrazu,...
czas co jaki zostanie zdeklementowany rejestr R0 banku 1 jest określony przez szybkość wykorzystanego kwarcu i ilości cykli wykonywanych przez timer, możesz na przykład uruchomić timer mają w nim zapisaną już jakąś wartość, symulatory nie oddają rzeczywistego czasu pracy mikrokontrolera, musisz dopasować wartość rozpoczęcia pracy timera eksperymentalnie
Wojtek - wchodzisz tutaj: [url=http://www.frank-zhao.com/cache/avr... z kalkulatorem 16MHZ z preskalerem 1024 oznacza że: - 1 sekunda nastąpi po 15625 cyknięciach timera - przerwanie następuje przy przepełnieniu jeśli wybierzesz OVERFLOW, ale może tez nastąpić przy COMPARE, od tego zależy jaką wartość wpiszesz do timera (czy odejmiesz...
Ż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...
Absolutnie żadne Start Timer0 nie jest tu potrzebne. Wystarczy, że tak będzie skonfigurowane przerwanie: [syntax=basic4gl]Config Timer0 = Timer , Prescale = 256 On Timer0 Sekunda Const Przerwanie = 131 Counter0=Przerwanie Enable Timer0 Enable Interrupts . . . end Sekunda: Counter0=Counter0+131 . . . Return [/syntax] ...i unikaj jak ognia "drukowania"...
zacznijmy od tego, ze kod umieszczamy w klamrach Dodano po 10 to jest kod na jedna sekunde $regfile = "m8def.dat" $crystal = 8000000 Config Pind.7 = Output Portd.7 = 0 Przekaznik Alias Portd.7 Config Timer1 = Timer , Prescale = 256 On Timer1 Sekunda Enable Interrupts Enable Timer1 Load Timer1 = 31250 Do Loop End Sekunda: Load Timer1 =...
Ja wolę przerwania: Dim Sekunda as byte Config Timer1 = Timer , Prescale = 256 On Timer1 Odmierz_1s Enable Interrupts Enable Timer1 do loop end Odmierz_1s: Counter1 = Counter1 + 34286 Incr Sekunda Return Podałem ci "szkielet" programu do odmierzania 1 sekundy za pomocą timera1. Pamiętaj że procek musi go posiadać i musi być taktowany przez oscylator...
Wracajac do tematu czy moglbym prosic przynajmniej o pseudo kod obslugi przykladowo drgania w przyciskach , wysterowania przekaznika np przez 2s oraz komunikacji 1wire jednym timerem (atmega8 ma az 2 timery wiec pewnie szybko skoncza sie jego mozliwosci chcac napisac kod bez zatrzymywania) Cały dowcip polega na tym że z tego 8 bitowego timera możesz...
Witam Musisz skonfigurować Timer i za jego pomocą odliczyć 4 minuty. $Crystal = 11059200 Config Timer1 = Timer, Prescale = 1024 Load Timer1 , 10800 On Timer1 Sekunda Config Pind.1 = Output : Wy Alias Portd.1 Config Pind.2 = Input : We Alias Portd.2 Dim Licznik_1 As Byte Dim Wsk As Bit Enable Timer1 Enable Interrupts Licznik_1=0 Wsk = 0 Do If...
Pozmieniałem troche program ale nie działa prawidłowo prędkość strasznie skacze od 0 do 240 km/h -bo nie zerujesz co 1 sec. licznika impulsów (Timer0), ponadto ,masz zbyt duży błąd zaniżając zakrses zmienmnej "Licz" - as byte Porównaj: $regfile = "2313def.dat" $crystal = 8000000 Config Lcdbus = 4 Config Lcd = 16 * 2 Config Lcdpin = Pin ,...
Hmm Nie jest to takie proste jak sobie wyobrażasz. Najprostszy zegar jaki ja często stosuję: Oczywiście preskaler i początkowa wartość timera dostosowana jest do 8Mhz Jeśli chcesz zastosować zegar z innym taktowaniem musisz sobie obliczyć początkową wartość i preskaler. $regfile = "m8def.dat" $crystal = 8000000 Dim Sekunda As Byte Dim Minuta...
To jest proste jak świński ogon :D ahahahaha, ale napisz kawałek kodu. Czy masz tam jakiś LCD czy nie, czy masz tam jakiś Timer ustawiony do odmierzania sekundy czy Wait`ujesz :D Czy w dokumentacji czujnika pisze, że nadaje tez na końcu niewidoczne w terminalu znaki 13 lub 10? EDIT: aaa masz tu taki prosty. Napisałem przy śniadaniu więc błąd mógł się...
Przetestuj ten. Tak go poopisywałem, że aż mi się nie podoba :D [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 40 $swstack = 16 $framesize = 32 '# wyświetlacz Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Cls '# timer ' 8000000Hz(8MHz)/256(Prescaler)=...
Mam problem jestem początkujący napisałem program który ma za zadanie regulować włączanie wiatraka i czas z jakim ma dmuchać , jednocześnie mierzy temperaturę i nie działa tak jak powinno : Temperatura pokazuję co jakiś czas błędny pomiar np 124 , 32 , 98 procek się resetuje chińskie znaki raz na jakiś czas w programie można było ręcznie zmieniać czas...
Wynik jest w pełni zadowalający,ale ........ co 47 wychylenie wskazówki (czyli co 47 sekunda w power safe) procesor się zawiesza i pobór prądu rośnie do 5mA, lub cyklicznie co 47 sekunda rośnie na chwilę do 5mA i znów 47 sekund i znów 5mA. Wszystko powyłączałem, żadne inne przerwanie nie jest aktywne które mogło by go wybudzać, czy timer czy INT. Nie...
Zastosowałem się do instrukcji i dalej nic mi nie wychodzi.Przepraszam ,że zawracam głowe ale ja dopiero się uczę i to moje pierwsze pisanie. Dodano po 7 Teraz wygląda to tak: $regfile = "2313def.dat" $crystal = 800000 Config Pind.0 = Output Config Pind.1 = Output Config Timer0 = Timer , Prescale = 256 On Timer0 Odmierz_1s Dim Licz_8ms As...
Pozwolę sobie umieścić post pod postem żeby wiadomość dotarła do zainteresowanego. Jeszcze lepszym wyjściem dla takiego zegara będzie zastosowanie dedykowanego rezonatorka 32768Hz (32,768KHz) Wartość 32768 to w zapisie binarnym dokładnie piętnaście bitów. Jeśli więc Timer będzie zliczał generowane impulsy to po 32768 uzna że mineła sekunda :D Bascom...
Tak, jak już pisałem, nie tędy droga. Trzeba zrozumieć, ze Menu czyli interfejs programu z człowiekiem powinno być tylko jego nakładką graficzną. Nie może być tak, że kiedy jesteś w Menu to program zaniedbuje cały system, na przykład nie pilnuje zadanych temperatur. Pomyśl co by było gdyby termostat sterował grzałką w akwarium a Ty sobie radośnie wszedłeś...
A czemu "thsp=1" czyli jedna sekunda jak specyfikacja mówi minimum 3 sekundy?? Sets internal No-touch-then-sleep timer to specified value in seconds min 3, max 65535, default 0 (max: 18 hours 12 minutes 15 seconds) Nextion will auto-enter sleep mode if and when this timer expires. Note: Nextion device needs to exit sleep to issue thsp=0 to disable sleep...
Nigdy nie korzystałem i nie śledzę rozwoju AI, więc mam pytanie. Czy i ewentualnie jak dobrze, modele językowe radzą sobie z pisaniem programów w asemblerze, np. mikrokontrolerów 8-bitowych? Coś tam generują, ale nie sprawdzałem w rzeczywistym układzie. DeepSeek wygenerował coś takiego: Poniżej znajduje się przykładowy program w asemblerze dla mikrokontrolera...
Jak najbardziej jest potrzebny osobny timer ponieważ czujniki ruchu będą dwa na górze i na dole schodów. A jak długie schodzę to i nawet trzy. Jak każdego będziesz mijał i każdy dołoży swoją część to tego nigdy nie wyregulujesz tak jak trzeba. A tak czujnik daje impuls i zlicza te osobne normalny moduł. Tak jest lepiej szybciej prościej. I czas będzie...
Niestety. Przekaźnik steruje urządzeniem za timerem. Zwarcie styków przekaźnika na krótki czas uruchamia to urządzenie. Krótki czas - to może być sekunda lub dwie, albo pół sekundy, ale może też być ułamek sekundy. I właśnie o ten ułamek sekundy chodzi. Zanim timer zmieni stan i cewka przekaźnika rozłączy styki - impuls zostanie podany przez styki COM...
Liczyłem to już i tak jest :D ale tknąłeś mnie na coś, co sprawi, że stałe rozwiązanie będzie dobre. W programie sterownika wstawię timer który będzie odliczał czas do pobrania danych z czujników. Czas ten będę wysyłał (jak się da) do czujników w funkcji zwrotnej wraz z czasem dodatkowy np 100 ms. Każdy kolejny czujnik będzie miał czas większy o 100...
1Hz to raz na sekundę. 8MHz to osiem milionów razy na sekundę. Sekunda jest tu kluczowa. W ciągu sekundy procesor taktowany 8MHz przetworzy około 8mln instrukcji (pomijam te które wymagają dwóch taktow) no a jak podłączysz do procesora taktowanie 16MHz to odwali dwa razy tyle roboty w ciągu sekundy . Zerknąłem na twoje kody i mam kilka rad. W Bascom...
Przeanalizuj sobie to. Dorób ustawianie zegara i gotowe. $regfile = "m8def.dat" $crystal = 4194304 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.6 , Db5 = Portd.5 , Db6 = Portb.7 , Db7 = Portb.6 , E = Portd.7 , Rs = Portb.0 Config Timer1 = Timer , Prescale = 64 'konfiguracja timer1 Dim Sekunda As Byte Dim Minuta As Byte Dim Godzina...
Ustaw okres PWM na timerze 1 tak, żeby był podwielokrotnością sekundy, czyli n * okres = 1 sekunda W przerwaniu timera odliczaj od n do 0, a jak odliczysz - wywołaj procedurę, który ma być uruchamiana raz na sekundę i przeładuj licznik na n. Aha, no właśnie ktoś coś podobnego napisał powyżej, tylko ja proponuję zostawić timer 1, który pędzi PWM.
tak na szybko ;) Config Timer1 = Timer , Prescale = 64 Enable Interrupts Enable Timer1 On Timer1 Zegar Zegar: Incr Sekunda Return
Się tych transoptorów czepiacie... W warsztacie każdego elektronika - hobbysty jest tych elementów zazwyczaj pół garści (odzysk z zasilaczy impulsowych i modemów). Kilka lat temu zrobiłem sobie timer do fotografowania burzy. Timer 555, 45 sekund otwarcie migawki, sekunda zamkniętej migawki i tak w kółko. Dodatkowy przycisk do kasowania timera i zamykania...
Witam, Zbudowałem swojego czasu timer odliczający sekundy na Atmega8 ale zauważyłem, że jak zatrzymuje go przyciskiem kilk razy i włączam, to sekunda jest niepełna. Zapewne jest to spowodowane zapisem jego wartości w jakimś rejestrze i chciałbym móc go kasować do końca... mój kod jest dostępny tutaj: http://mikrokontrolery.blogspot.com/2011...
Udało mi się zapisać pierwszą stronę pamięci, potem modyfikowałem program i chciałem zapisać kilka stron - za każdym razem zapisywała się tylko 1 strona poprawnie aż w końcu zapisuję tylko pierwszą stronę i to błędnymi danymi. Długa noc przede mną... wrzucam w zasadzie cały testowy kod, przepraszam za bałagan bo jest w nim pełno zakomentowanych kawałków...
Proszę. Pisałeś kiedyś, że przy okazji chciałbyś się czegoś nauczyć, więc masz tu przykład który napisałem przy kawie. Trzy różne czujniki- DS18B20, LM35 i Termistor NTC 10k - podłączone jednocześnie do jednego mikrokontrolera. Dla czujników NTC wyznacza się ich "Betę" czego nie robiłem dlatego wskazywana przez niego temperatura różni się nieco od tych...
Mam zmienną "czas" która jest w sekundach, taki podział jest poprawny? godzina = czas/3600; minuta = (czas %3600)/60; sekunda = czas%60; Wiem że godziny przekroczą 24 i to jest zamierzone.. Z początku miałem to inaczej timer wyliczał godz/min/sek if ( Czas_Tim>= 50){ // co 20ms Czas_Tim=0; Czas_sek++; if (Czas_sek >= 60){...
Dwa tranzystory dajesz na wyjściu i masz odwrotnie świecenie.
Witam W jaki sposób mogę skonfigurowac atmegę 8 aby odbiór rc5 zrealizować na timerze1.Ta timerze 0 mam odliczanie sekund oczywiście wprzerwaniu.Mam skonfigurowane tak: Config Int1 = Low Level , [timer = 1] Config Rc5 = Pind.3 [timer = 1] Enable Int1 Enable Interrupts On Int1 Rc5 Config Timer0 = Timer , Prescale = 1024 Enable Interrupts...
Ja uczyłem się na poniższym kodzie: Czy, jako początkujący wiedziałeś co to jest TCCR1A, TCCR1B, OCR1AH, OCR1AL i inne niezrozumiałe dla laika rzeczy ? Są to rejestry atmegi, dostępne w instrukcji PDF do niej. Więc po co karmisz nowicjusza takim przykładem ? Jestem pewien, że autor wątku nie ma bladego pojęcia o rejestrach atmegi. Mogłeś juz podać...
while(1) { GPIOA->ODR ^= GPIO_ODR_OD5; delay_us(1000000); // ! sekunda } } void delay_us(int us) { TIM2->CR1 |= TIM_CR1_CEN; myTicks=0; while(myTicks<us); TIM2->CR1 &= ~TIM_CR1_CEN; } A nie jest to czasem związane z tym, że jako argument funkcji delay masz int, a zapodajesz wartość 1000000 - czyli przekraczającą zakres?
teraz musze jescze przerobić układ aby odliczał mi sekundę Config Timer0 = Timer , Prescale = 64 On Timer0 Sekunda Sekunda: Load Timer0 = 250 Incr Jednostki_czasu If Jednostki_czasu = 250 Then 'mam sekunde Jednostki_czasu = 0 End If tak chyba będzie dobrze?
Napisałem sobie taki prosty programik, dodam, że to jeden z moich pierwszych z użyciem timera i niby wszystko ok to jednak zegarek przestaje wyświetlać po ok 4 minutach poprawnej pracy. $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 20 * 2 Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portd.5 , Db7 = Portd.6 , E = Portd.7...
https://obrazki.elektroda.pl/8213915500_... Czasomierz dla klejarki pistoletowej Bosch PKP 18 E. https://obrazki.elektroda.pl/3128317200_... Po kolejnej awarii pistoletu do klejenia na gorąco, kupiłem klejarkę firmy Bosch. Klejarka ta, wymaga siedmiominutowego wstępnego rozgrzania, aby umożliwiała właściwe klejenie....
teraz jak widać 2 sekundy - manipuluję wartością przepełnień zmiennej Licznik_sd - pomiędzy 58000 a 60000 Załadowanie wartości 6 do Timer2 powinno się odbyć tylko na początku ? Config Timer2 = Timer , Prescale = 64 ' 1 sekunda = 500 Timer2 = 6 On Timer2 Czas '250 x 8us = 2 ms , 256 - 250 = 6 Enable Interrupts Enable Timer2 Z Atmega32 nie miałem takich...
Mam do napisania programik w postaci stoperka liczącego czas z dokładnością do jednej milisekundy. Lecz napotykam pewne problemy, których nie rozumiem i byłbym wdzięczny gdyby ktoś potrafił mi je wytłumaczyć. 1. Standardowo timer chodzi w cyklu 100 ms. Na początek chciałem zrobić stoper odmierzający czas co sekundę. I tu zonk. Kod timera wygląda tak:...
Swego czasu tak z 10 lat temu musiałem wymyślić coś na zawieszane kamery obrotowej LG Dystrybutor twierdził, że to nie jest wina kamery. Po ponad roku okazało się jednak, że to jej wina. Do tego czasu kamera była reklamowana i zwracana kilka razy. Zawieszała się tak około po godzinie pracy i nie działało sterowanie PTZ poprzez RS485. Więc potrzeba była...
Witam, ostatnio zabrałęm się za projekt prostego zegara. Układ wyświetla godzinę na 4 cyfrach wyświetlacza LED wspólna anoda. Oto wyniki mojej pracy: schemat: http://obrazki.elektroda.pl/9370666700_1... Do mikrokontrolera Atmega8A podłączony jest kwarc 8MHz. A to program [syntax=c]/* * zegar.c *F_CPU 8000000UL zewnetrzny kwarc częstotliwość...
$regfile = "m16def.dat" $crystal = 16000000 Config Portd = Output Portd = &B01111111 Config Timer1 = Timer , Prescale = 1024 On Timer1 Sekunda Enable Interrupts Enable Timer1 Load Timer1 = 15625 Do Loop End Sekunda: Load Timer1 = 15625 Rotate Portd , Left Return i drugi $regfile = "m16def.dat" $crystal = 16000000 Config Portd...
Kod od Kolegi matekogon nie działa. Cały czas świeci led. Ano dlatego że podobno się nie da zrobić dłuższego czasu na timer0 niż 1 sekunda. A mi nie potrzebna jest jedna sekunda tylko dłuższy czas. Zrobiłem na wzór tego kodu, który mi podałeś i też nie działa: [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 1000000 $hwstack=32 $swstack=32 $framesize=40...
Grysek Wielkie dzięki za "rdzeń" programu. Dopisałem resztę teraz wygląda to tak: $regfile = "ATtiny2313.dat" $crystal = 16000000 'Kwarc w Hz Config Timer1 = Timer , Prescale = 1024 'Kofiguracja Timera Stop Timer1 'Zatrzymanie Timera Load Timer1 , 49911 'Załadowanie Timera On Timer1 Sekunda 'Instrukcja po przepelnieniu Config Pinb.0 = Input...
Witam. Używam przerwania INT1i TIMERA1 do odmierzania czau trwania stanu wysokiego na wejściu INT1 przez zliczanie odcinków czasu 400us podczas trwania stanu wysokiego na wejściu INT1. '****timer1******** Config Timer1 = Timer , Prescale = 64 On Timer1 Pomiar_czasu Load Timer1 , 50 Enable Timer1 Stop Timer1 '*****wtrysk***** On Int1 Wtrysk Config Int1...
bardzo dziękuje za pomoc - ten bezsensowny warunek byl kiedys sensowny ale skrocilem program. Musze pocztytac o tych Timerach i Counterach bo nie kumam tego np. dlaczego po zmianie na Counter teraz miga co 1 s. Jeszcze raz dzieki. Napisalem prosty zegarek $regfile = "m8def.dat" $crystal = 16000000 Config Portb.1 = Output Config Timer1 = Timer...
A ja proponuję może najpierw się zastanowić nad tym do czego opóźnienia i wtedy dobrać sposób czy na timerze czy bez timera. Tak mi się wydaje, że próby zaprzęgania Timerów do super "idealnego" odmierzania tak gigantycznego czasu jak 1 sekunda to jak strzelanie z armaty do komara (choć może się mylę - ale ciekaw jestem do czego tak na prawdę może być...
atmega sekunda timer atmega8 timer sekunda sekunda wyłancza
reset domofonu podłączenie aparatu projektora poziomy pasek czarny
Kalibracja cyfrowego woltomierza bez przycisku Kubota 1600 - brak napięcia w stacyjce: diagnostyka i rozwiązania