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...
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"...
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 Proponuję zrobić to troszkę inaczej. Przerwanie zaprogramuj tak aby ustawiało jakiś bit co jedną sekundę. Program główny ma mieć taką konstrukcje. czy sekunda: jeżeli tak to mrugnąć 5x diodą wyzerować czy sekunda jeżeli nie skok na czy sekunda czy sekunda 2: jeżeli tak to buzer 4x wyzerować czy sekunda jeżeli nie to skok do czy sekunda...
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...
Zostaw tak jak jest. Być może, że timerek zgłosi kolejne przerwanie zanim uC sprawdzi warunek If Zlicz_przep = 125 Then Zlicz_przep = 0 Incr Sekunda End If w pętli głównej Jak się upierasz to spróbuj tak: If Zlicz_przep >= 125 Then Zlicz_przep = Zlicz_przep - 125 Incr Sekunda End If
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...
http://obrazki.elektroda.pl/2126980700_1... System monitorowania środowiska, oparty o interfejs LoRa IoT składa się z stacji bazowej zbudowanej z wykorzystaniem modułu Arduino Mega z bramką LoRa oraz zdalnych stacji opartych na Arduino Feather, które łączą się z stacją bazową poprzez radiowy interfejs LoRa. System pozwala na monitorowanie...
http://obrazki.elektroda.pl/7011174400_1... Cześć ! Dziś chciałbym zaprezentować swój najnowszy projekt, którym jest świąteczna choinka LED. Jako, że według świątecznego zwyczaju swoich bliskich obdarowujemy prezentami ów ozdoba została wykonana dla moje dziewczyny, która bardzo lubi klimat świąt i wszystkie ozdoby z nimi związane....
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...
http://obrazki.elektroda.pl/3025550100_1... Mając do dyspozycji jedną matrycę 8x8 czerwonych diod LED o boku 60,2mm oraz mikrokontroler ATtiny861 pozostałe po innych projektach postanowiłem zbudować to, co każdy elektronik chociaż raz w życiu zbudować musi: zegar ;). Ze względu na charakter wyświetlacza miał to być zegar binarny, ale...
Jeśli jeszcze w przerwaniu zwiększasz jakiś licznik 32 bitowy, to całe przerwanie musi trwać pewnie ze dwie lub trzy mikrosekundy. Jeśli w tym czasie przyjdzie kolejne przerwanie to będzie czekało na zakończenie poprzedniego i tak dalej. W rezultacie Twój milion zostanie zliczony po czasie znacznie dłuższym niż sekunda i tak się właśnie u Ciebie dzieje....
Generujesz sobie na timerze przerwanie co sekundę i w obsłudze przerwania zwiększasz zmienną sekunda o i i sprawdzasz czy nie osiągnięto 60. Jeśli tak to zerujesz i wysyłasz do wyświetlacza.
Ten odczyt musi być dokładnie co kilka sekund? Nie wystarczy do tego millis()?
I ja witam po przerwie. Możesz podłączyć wyjście przerwania z PCF bezpośrednio do wejścia M16 Pin B2. Jeśli to Zrobisz to następnie: 1. Konfuguracja i uaktywnienie przerwań, oraz przerwania zewnętrznego 2. [syntax=basic4gl]Config Int2 = Falling On Int2 Sekunda Enable Interrupts Enable Int2[/syntax] 2. Deklaracja zmiennej Sekunda i zmiennej Minuta [syntax=basic4gl]Dim...
Z tym adc to ciekawy pomysł,można go wykorzystać w innych projektach.Ale płytki już wykonane. Przecież timer zawsze startuje od zera ,potem ma dobić do 255 przerwać program. Potem co przerwanie incrementuje zmienna sekundę 30 razy by ta sekundę odmierzyć. Zmienna sekunda deklaruje na początku programu-normalnie.
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....
Postaraj się zmienić styl pisania kodu Postaram się! ;) Tych rejestrów naprawdę nie trzeba zerować, spójrz do noty, to ich domyślne ustawienia. Oczywiście wiem o tym. Co prawda inicjujesz to przed pętlą, ale zanim wystąpi przerwanie mija co najmniej sekunda, więc jeśli coś w czasie tej sekundy bruździ to przerwanie nie wystąpi, a tobie się będzie wydawać,...
źle myślisz. Przerwanie masz 7372800 / 256 / 200 razy na sekundę, a w każdym wywołaniu obsługi przerwania odliczasz sobie dodając 1, aż odliczysz do 144, co oznacza, że upłynęła sekunda (mniej więcej, bo nie wiem dokładnie, co w Bascomie robi tajemnicze "Load Timer0 = 200").
Ok, poniżej przykład odliczania jednej sekundy, w zmiennej 'ilesekund' co jedno przerwanie zegara będzie dodawana jedna sekunda. Oto kod: Dim ilesekund As Byte ilesekund = 0 Config Timer2 = Timer , Async = 1 , Prescale = 128 On Timer2 Sekunda Enable Interrupts Enable Timer2 Do 'tutaj możesz dać warunek, np. if ilesekund=60 (1 minuta) to coś...
Dobra, skończyłem jak na razie "pracę" nad programem. Więcej było gapienia się w niezrozumiałe funkcje i polecenia ale już prawie program czaje w całości :) Oznaczyłem go jako V.2.2 ^^ Zmiany: *Możliwość ustawienia skrajnych temperatur uruchamiających alarm *kasowanie alarmu poprzez wejście do menu i zapisanie zmiennych *zmiana stopnia regulacji zmiennych...
U mnie akurat dość szybko "zaskoczyło". Tylko mam w odbiorniku problem z blokowaniem przerwań/timerów . W nadajniku nie ma takiego problemu. timer działa, bo odlicza czas pomiędzy "wysłaniami" oraz czas wywołania czujników DS i DHT11. Zakładałem, że odbiornik działa tak: - nasłuchuje danych - pojawienie się danych wywołuje przerwanie INT2 ( stan niski...
Witam, A zegar atmegi? Czas potrzebny na wykonanie 32768 przerwań to 1 sekunda co daje czas na jedno przerwanie 30.5 mikrosekundy. Sprawdź w dokumentacji ile at8 zużywa taktów zegarowych na wykonanie jednego przerwania. Należy pamiętać że przy pisaniu w C nie masz kontroli na tym co robi kompilator. Zapisanie rejestrów na stosie przy wejściu w przerwanie...
Witam, 1. Mam nie lada zagwozdkę z obsługą zegara PCF8563p przez Atmege32 + wyświetlacz LCD. Sam zegar działa dobrze. Poprawnie wpisuje datę i godzinę. Problem pojawia się z odczytem. W PCF ustawiam wyjście na 1Hz, które jest połączone z Atmegą jako przerwanie INT0. Co kilka razy, przy resecie uC, gdy program startuje od nowa, to czas zaczyna się niepoprawnie...
Dołączę się do tematu! Nigdy jeszcze nie korzystałem z RTC, a właśnie muszę to zrobić, postanowiłem wykorzystać AT90LS8535... mój problem jest taki, że muszę zrobić układ, który użytkownik będzie mógł zaprogramować tzn. w jakich godzinach i w jakich dniach tygodnia (w cyklu tygodniowym: pon, wt. itd.) uP ma uruchamiać podłączone urządzenia... Pytania:...
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.
Witam Chciałem do kuchni wstawić czujnik PIR, ale z dodatkową zaletą, czyli stopniowym zwiększaniem i zmniejszaniem PWM, dodatkowo jeśli podczas zmniejszania PWM nadejdzie przerwanie INT1 od czujnika PIR, to program ma przestać zmniejszać, tylko zacząć zwiększać i to nie od zera, ale od wartości na której "zastało" go przerwanie INT1 od PIR. W sumie...
Witam, napisałem obsługę zewnętrznego przerwania, które się wykonuje bezproblemowo, jednak po obsłużeniu przerwania program nie wraca od razu w miejsce z którego przerwanie zostało wywołane. Oto kod: [syntax=asm].INCLUDE "m16def.inc" .DEF acc = r16 // akumulator .EQU SYS_FREQ = 1 .CSEG .MACRO delay1sek // delay 1 sekunda na 1MHz ldi r17, 0x09 9 delay3:ldi...
andrzejlisek --> a to ciekawe ;) - spostrzegawczy jesteś - nawet ja tego nie zauważyłem. Jutro jeszcze sprawdzę bo nie mam go teraz przy sobie, ale z tego co widzę, to te sekundy tak przeskakują tylko na filmiku - z powodu wielu cięć klatek i fragmentów przy składaniu i kompilowaniu całości. A potem jeszcze jakieś przetważanie na youtube ;) .... całość...
Żeby nie wykładać Ci wszystkiego na tacy powiem tak: zerknij do noty katalogowej swojego uP i przeczytaj opis Timera0 ustaw preskaler na wartość 1024 (jeśli korzystasz z kwarcu np 12MHz) TCCR0 |= (1<<CS02)|(1<<CS00); ustaw tryb CTC: TCCR0 |= (1<<WGM01); ustaw wartość przepełnienia tak, aby występowało co 10ms OCR0 = 117; // dla 12MHz...
Jeśli chodzi o kwarc to na pewno od niego zależy dokładność odmierzanego czasu i jeszcze chyba od dołączonych do niego kondensatorów. Ja mam to zorganizowane tak, że procesor działa na wewnętrznym oscylatorze 1MHz, a sekunda jest odmierzana za pomocą timera2 w trybie asynchronicznym i dołączonego kwarcu 32.768kHz timer jest tak skonfigurowany, że generuje...
W jednym swoim projekcie mam taką obsługę przerwań : [syntax=Basic4GL] Config Timer0 = Timer , Prescale = 256 On Timer0 Przerwanie Enable Interrupts Enable Timer0 Load Timer0 , 250 Do 'petla glowna Loop End Przerwanie: Load Timer0 , 250 Incr Czas8ms If Czas8ms = 125 Then Czas8ms = 0 Incr Sekunda End If If Przycisk = 0 Then Flaga = 1 End If Return [/syntax]...
Ok. zrozumiałem:) Po prostu wcześniej źle pojmowałem pojęcie konwersji (1write &H44) :) Czyli podsumowując ten cały kod powinno chyba być tak: '''''''''''''''''''''''''''''opis wejść''''''''''''''''''''''''''''' 'temperatura -> Portc.0 'przerw od zegara -> Porte.7 (INT7) 'LCD D4 -> Portc.1 'LCD D5 -> Portc.2 'LCD D6 -> Portc.3...
Przy projektowaniu używam kalkulatora chociaż to akurat można policzyć na palcach. Jeśli dobrze pamietam to impuls powinien się zawierać między 1ms a 2ms a servo stoi na środku przy 1,5ms. Niemniej daje to 1ms którą chciałbś podzielić tak by móc sterować servem. Załóżmy że chcesz to podzielić tylko na 100 części. Jedna milisekunda ma 1000us Podzielona...
Witam, Mam nadzieję, że piszesz programy z wcięciami a tutaj tylko przypadkowo wkleił ci się kod bez wcięć - bo masakrycznie się to czyta - nie tylko komuś ale i samemu można się pogubić na maxa, ale do rzeczy .... widzę, że odczyt robisz sobie w jakiejś tam procedurze i ok - skaczesz do tej procedury gdy twoja zmienna Byt = 0 . I jak się patrzy na...
Prywit! Mam problem z obsługą przerwania zewnętrznego. Do pinu INT0 podłączyłem włącznik zwierający do masy. Jak widać w programie podciągnąłem końcówkę do plusa. Do pinów C.1; C.2; C.3 podłączyłem diody LED do zobrazowania problemu. Napisałem taki oto krótki program i jestem zdziwiony działaniem. Po uruchomieniu programu dioda podłączona do pinu C.1...
Mam szybkie pytanko: Jak ustawić przerwanie od Timera 2 (procek DS89C450) np co 1 ms. Początek programu jest następujący: #include <REG420.H> #include <stdio.h> #include <stdlib.h> #include <intrins.H> #include <absacc.H> #include "MAX1270.h" #define WDIR 0x4FFFF #define IE3 0x20 #define IE5 0x80 #define XtalFreq...
Dziękuję za pomoc. Do kolego Michalko12... Doczytałem jeszcze dokładnie te rejstry i rozumime, dziekuję. Właśnie chodzimo mnie o taki tryb pracy T0. Chodziło mnie oto, by po doliczeniu 1s i porownaniu z rejestrem OCR0A wygenerował przerwanie. Do reejstru trzeba wpisać odpowiednia wartośc. Wyliczyłeś, że jest to 146. Mniemma, że musze wpisać tam fizycznie...
Pomiedzy przerwaniem INT0 a T0 jest minimum 1 sekunda roznicy, wiec procek spokojnie zdazy zrobic swoje. Faktyycznie zeby wyeliminowac drgania to trzeba by przerzucic sie z T0 na zwykle wyjscie a z t0 zrobic timer do sprawdzania tego wyjscia i tak wlasnie zrobie...
Poprawiłem nieco kod i wygląda tak :[syntax=vbnet] $regfile = "m16adef.dat" $crystal = 80000000 $hwstack = 40 $swstack = 16 $framesize = 32 Config Porta = Input 'port A jako wejścia Config Portb = Output 'port B jako wyjścia ' Config Portd = Input 'Port D Jako Wejścia Config Portc = Output 'port C jako wejścia Config Sda = Portc.1 'konfiguracja pinu...
Witam, Mam następujący problem, buduje sterownik do akwarium i potrzbny jest mi do tego czas. Na początku stworzyłem procedurę przerwania na kwarcu wew taktowanym na 1mhz i t2, oczywście okazało się, że czas jest baaardzo nieprecyzyjny, pomyslałem że przy 16 bitowym t1 będzie to mozna dokładniej ustawić i przepisałem procedurę - efekt taki sam. Więc...
Nojmi - gdybys mogl opisac mi krok po kroku co robi Twoj program... PLEASE!!! Wpisuje obsluge diody ale cos dziwnie mi to dziala... To znaczy jak nacisne 5 razy przycisk powinien zapalic diode na 5 sekund i potem ja zgasic... A on jak naciskam kolejne razy tak jakby liczyl od poczatku... Acha! I dlaczego dla przerwania 1 sekunda i przy kwearcu 12M jest...
Witam Mam zegarek/budzik z wyświetlaczem LED ( dwukolorowy ). Zegarek generalnie działa. Ale mam problem z sterowaniem jasnością. Wiadomo, że robi się to tak, że jasność zależy od częstotliwości odświeżania. Tutaj o jasności wyświetlania ma decydować zmienna jasnosc. . jasnosc : [syntax=vbnet] '************ Timer0 1000 = 1 sekunda, 10000 = 10 sekund,...
Witam Mam kolejny problem, nie chodzi mi timer, siódmy, pozostałe 6 działa i nie mogę znaleść przyczyny, symulator nic nie pokazuje, rejestry nieustawione mają jakieś przypadkowe wartości, zrobiłem osobny programi na sam timer i nic, timer ma mi uruchomić przerwanie co 50mS tutaj teraz akurat tak nie będzie bo zegar jest 2M wew dlatego zmieniłem dzielnik...
Przy okazji - odmierzanie czasu w ten sposób zawsze będzie obarczone błedami i to całkiem sporymi. Zwróć uwagę, że w gónym programie do odmierzania czasu jest użyte przerwanie tajmera, a nei licznei pętli. a użtkownik VSS pisze: Przez tydzień spóźniał sie o około 1 sekundę w stosunku do DCFa Więc o co chodzi?? Jak dla mnie 1 sekunda tygodniowo by w...
Usiłuję napisać program takiego miernika i podczas analizy konfiguracji timer-ów w różnych tego typu projektach a szczególnie w jednym (ale o tym później) pogubiłem się trochę i pojawiły się wątpliwości. Do testów używam platformy arduino nano (atmega328p, 16MHz, 5V) i na chwilę obecną napisałem coś takiego: [syntax=c]#include <Wire.h> #include...
Kursor jest zawsze na 1,1 i tylko piszesz LCD... Ale... W programie kiedy kręcisz enkoderem i coś ma sie zmienić to na końcu piszesz Call Odswiez_lcd a sub sam okresla co bedzie wyswietlał Użyłem zmennej refresh, jeśli 1 to ma wyświetlić, a to "home" mam ustawić tak jakby przed warunkami case, tak? Zrobiłem właśnie tak i teraz jest świetnie! Nic nie...
Witam, chciałbym przerobić projekt z tego linku http://www.elektroda.pl/rtvforum/topic90... Mianowicie zostawić odliczanie czasu i wyświetlanie go a dodać do niego funkcję w której o wpisanej "na stałe" godzinie w funkcji załączy przekaźnik. Przekaźnik jest 4 modułowy więc potrzebuje 4 wolnych pinów. Kod, który zmodyfikowałem wygląda następująco...
Witam Mam płytkę z Atmega8 połączoną z czujnikiem PIR ( wejście INT1 przez transoptor ), do tego pomiar ADC ( od wartości adc zależy czas po jakim PWM będzie zmniejszone, opcjonalnie chcę też pod INT0 podpiąć przycisk, coby włączyć światło, gdybym nie znalazł się w zasięgu czujnika. Dodatkowym "bajerem" jest to, że światło ( listwa LED ) powoli się...
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...
sekunda przerwanie pcf8583 przerwanie sekunda znikać sekunda
zdjęcie blokady nokia korektor audio wzmacniacz napięcie baterii telefonie
17mb82s ves390undc wsady licznika
Schemat płyty głównej TV Manta – jak znaleźć po numerze PCB, modele TP.MS3663S, CV9202H Instrukcja obsługi skutera Barton Falcon 125