A jak wygląda wyświetlacz 3-segmentowy? Nigdy jeszcze takiego nie widziałem... Program napisz od nowa - ten nie ma prawa działać. Zacznij od przerwania timera. Odliczania czasu NIE DA się zrobić bez timera.
Przedstawię Ci kolego przykład zastosowania Pulsein żebyś miał jaśniej. Myślę że będzie "rzeczowiej". To przykład dla dekodowania transmisji pilotów podczerwieni. Sygnał podłaczony jest do zewnetrznego przerwania INTx i w momencie zmiany na pinie program skacze do tej procedury. Mierzy impuls i poddaje rozwadze jego długość. [syntax=basic4gl]Int_1isr:...
Witam ,napisałem program który ma odmierzyć czas lotu helikoptera (do wyczerpania bateryjki) ,niestety po 2 tygodniach utknąłem na czymś takim: $regfile = "attiny2313.dat" 'wybór procesora attiny2313 $crystal = 8000000 Config Pinb.0 = Output 'dioda sygnalizująca odmierzenie czasu Config Pinb.1 = Output 'buzzer mający piknąć 3 razy po odmierzeniu...
http://obrazki.elektroda.pl/5397068700_1... Witam! W kolejnej odsłonie modułów do samochodu przedstawiam układ realizujący funkcję, tzw. Coming Home oraz Leaving Home znane przede wszystkich chyba z aut grupy VW. Funkcje te to zwyczajnie oświetlanie drogi do domu, gdy opuszczamy auto oraz z domu, gdy chcemy do niego wsiąść. Układ steruje...
Po wykryciu przejścia przez zero załączasz triak a po upływie pewnego czasu go wyłączasz. Tak to nigdy nie zadziała stabilnie. Steruj w następujący sposób: - wykryj przejście przez zero - rozpocznij odliczanie opóźnienia - po upływie tego czasu wystaw stan wysoki (wystarczy krótki impuls) - przy kolejnym przejściu przez zero triak wyłączy się samoczynnie...
https://obrazki.elektroda.pl/4868547700_... Dzisiaj zrealizuję projekt na malutkim, ośmionóżkowym mikrokontrolerze PIC w obudowie DIP8 oferującym skromne 3.5kB pamięci Flash. Co więcej, do komunikacjami z peryferiami użyję tylko dwóch pinów - całość opierać się będzie o I2C. W oparciu o nie uruchomię kontroler wyświetlacza/klawiatury oraz...
http://obrazki.elektroda.pl/5053325200_1... http://obrazki.elektroda.pl/1067417000_1... http://obrazki.elektroda.pl/2247924000_1... Witajcie! Chcielibyśmy przedstawić wam projekt zegara na lampach Nixie. Tego typu projektów jest całkiem sporo w Internecie, jednak tylko kilka, które instruują jak dokładnie...
https://obrazki.elektroda.pl/1761046600_... Pokażę tu jak uruchomić z Arduino czterocyfrowy wyświetlacz 7-segmentowy sterowany poprzez rejestr przesuwny 74HCT164 i cztery tranzystory BC546. Płytka z wyświetlaczem znów będzie odzyskana z elektrośmieci. Będzie to już kolejny temat, w którym uruchamiam wyświetlacz, gdyż omawiałem już...
https://obrazki.elektroda.pl/6848039300_... Ogranicznik czasu pracy to dość banalne urządzenie włączane pomiędzy mechanicznym włącznikiem ciśnieniowym a pompą, mające ochronić ją przed przegrzaniem (skutkiem suchobiegu). Zasada działania: 1. Po włączeniu zasilania przekaźnik jest włączony i zaczyna się odliczanie 100 sekund (w normalnej...
https://obrazki.elektroda.pl/1570592100_... Witajcie, zapraszam na relację z konstrukcji zegara na PIC18F2550 napisaną w formie tutoriala, wszystko krok po kroku. Pokażę tu jak i z czego tworzyłem prosty projekt DIY na prośbę jednego z czytelników. Wykorzystamy tu wyświetlacze 7-segmentowe, rejestr przesuwny, obsłużymy przyciski a...
https://obrazki.elektroda.pl/2568884200_... Witajcie moi drodzy Zapraszam na kolejną część mojego tutoriala PIC18F2550 i kompilatora SDCC . W tej części zademonstruję jak używać wyświetlacza 7-segmentowego z PIC18F2550 . Kod obsługi wyświetlacza będzie oczywiście napisany w oparciu o przerwania i timery . Cały proces powstawania układu...
http://obrazki.elektroda.pl/3796073600_1... I Opis ogólny urządzenia: Chciałbym przedstawić mój projekt bazujący na mikrokontrolerze STM32 dokładnie na modelu STM32F11RET6 http://www.st.com/content/st_com/en/prod... Jest to sterownik dla urządzenia...
https://obrazki.elektroda.pl/8691272400_... Witam, poniższy mini-projekt powstał z inspiracji Część elektroniczna Urządzenie bazuje na dwóch PCB (4x wyświetlacz LED + płyta główna) połączonych ze sobą taśmą flex z jakiejś drukarki. Wyświetlacze to wylutowane z czegoś 7-segmentowe pojedyńcze kostki ze wspólną anodą i czerwonym filtrem...
http://obrazki.elektroda.pl/5385398300_1... Zaprezentować dziś chcę projekt lampki RGB który wykonałem na pracę zaliczeniową z systemów wbudowanych. Moim zdaniem osiągnięty efekt jest zadowalający więc może ktoś będzie zainteresowany wykonaniem urządzenia według mojego projektu. Jako, że jest to pierwszy zrealizowany przeze mnie projekt...
Wpadł mi w ręce uszkodzony tuner TV-Sat Echostar DSB-717 i postanowiłem jakoś go wykorzystać. A właściwie nie cały, tylko płytkę z wyświetlaczami i mikrokontrolerem ATTiny2313. Układ mierzy temperaturę w 6 punktach z wykorzystaniem czujników Dallas DS18B20 przy rozdzielaczu co na podłogówkę i grzejniki. Mierzę temperatury: - zasilania i powrotu z podłogówki...
Dzień dobry, chciałbym opisać zegar szachowy mej konstrukcji. http://obrazki.elektroda.pl/2838677600_1... http://obrazki.elektroda.pl/4442183300_1... http://obrazki.elektroda.pl/1402313500_1... Pomysł zbudowania takiego zegara zrodził się w mej głowie, kiedy w okresie zainteresowania mikrokontrolerami...
milis nie jest sprzętowe, bo w przerwaniu jest inkrementowana zmienna, którą zwraca funkcja Czyli Arduino rezerwuje timer na te cele. Skoro tak, to przerwania nie wpłyną na dokładność tego milis, chyba, ze trwają ponad 1ms A z ciekawości, jak realizowany jest micros? Przerwania z czestotliwością 1MHz nie wchodza w grę, pewnie timer do generowania milis...
No cóż, na dzień dzisiejszy uruchomiłem odliczanie czasu Timerem 8bit przez prescaler, wyszło 30Hz. Całą procedurę przerwania fazowego i regulacji prędkości dmuchawy wrzuciłem do jednej funkcji i efekt jest jak dal mnie bardzo zadowalający. Dmuchawka pracuje płynnie i nawigacja po menu też. Czas odliczany prawidłowo mimo opóźnienia na każdym przerwaniu...
Witam. Zapis (składnia) Load Timer1 jest zły. Sprawdź w pomocy Bascoma.
Nie wiem o co chodzi. Poprawiłem kod jak niżej. ale nadal wartości mam losowe (od 11000 do 300). Przy jednakowej prędkości obr. tarczy. [syntax=c]#include <avr/io.h> #include <avr/interrupt.h> #include "config.h" #include "LCD.h" #include <util/delay.h> #include<stdio.h> //float czas=0.00000; volatile unsigned char odczyt=0;...
Ale nie blokuje przerwań. Przycisk przenieś na PD2 lob PD3, ustaw zezwolenie obsługi przerwań i przerwania zewnętrznego, ustaw obsługę tego przerwania np. on INT0 ustaw_flage ustaw_flage: flaga=1 return i wpisz zamiast: "If Pinb.0 = 0 Then" "If Pinb.0 = 0 or flaga=1 Then" P.S. Ale obsługi Timerów powinieneś się tez nauczyć.
1. Zakładasz że pomiar opóźnienia jest dokładny. Jak to metoda na zegarek to +-50% można lekko przyjąć. 2. Kolega poda kod przerwania inapisze czy nie wyłącz przerwań na dlugie okresy czasu
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...
Robię pewien projekt a dokładnie stacje lutownicza na regulacji fazowej i enkoderze i regulator PID. Regulacje zrobiłem enkoder działa regulator PID też. Chciałem dodać też pomiar prądu, ale wpadłem też na pomysł zeby zrobić odliczanie czasu działania urządzenia. Dodałem ten kod programu, przerwanie co 1ms z atrybutem NO_BLOCK. W sumie teraz wykorzystuje...
IRQ na zbocze może machać kierunkiem licznika - odpada jedna podpętla IRQ z licznika może uruchomić (lub resetować) odliczanie gdy osiągnie się zadaną wartość - odpada kolejna podpętla IRQ z kolejnego licznika może odliczać czas 1 lub 0 - kolejna podpętla Osiągnięcie wartości min lub max z IRQ w/w licznika spowoduje wywołanie przerwania "1" lub "0"...
Nie mogę sobie poradzić z przerwaniami, nie widzę w którym miejscu zrobiłem błąd. Kompilator czepia się linii ISR(INT0_vect) i ISR(INT1_vect) [syntax=c] * main.c * * * generator impulsów bramkowych * * PB2, PB3, PB4 przyspieszenie impulsu * *PD6 wejście załączjące zgrzewanie * *PD0 steruje tyrystorami * *INT0 i INT1 impulsy 0 sieci * * Created on: 07-09-2012...
W zadnym wypadku :) Wylacz tylko wewnetrzne pull-upy tak aby Ci portu nie podciagalo do plusa a wykrycie przerwania zmien na zmiane stanu wejscia. PS. Czy delay juz dobrze dziala?
Najlepiej zrobić to w obsłudze przerwania od timera. Tak jak pisze kolega Alagner - licznik ustawić na np. 100Hz, a w obsłudze przerwania muszą być liczniki programowe realizujące odliczanie czasu - pierwszy liczy do 100, co daje na jego wyjściu 1s, a następny może już odliczać sekundy, następny minuty, godziny, itd... Jednocześnie w tym przerwaniu...
Posprzątałem trochę w programie i próbowałem uruchomić tą wersje z mierzeniem czasu miedzy przerwaniami jednak wyświetlało dziwne wartości i nie mógł się zdecydować czy prędkość wynosi 100 czy 900 obr/min taki mniej więcej rozrzut miał więc wróciłem do wersji zliczania impulsów i aktualnie wygląda to tak. [syntax=c]#include <avr/io.h> #include...
Witam, Utknąłęm w martwym puncie z kodem odbiornika rfm12b. Nie wiem dlaczego ini1 blokuje timer0. Wygłąda to tak że jak wyłączę int1 to reszta działa poprawnie poza odbiorem danych oczywiście a jak włączę to sidają przerwania z timera0. Czy ktoś pomoże? http://obrazki.elektroda.pl/7253192900_1... Na LCD w linii czas jest liczba 44 to...
Witam, piszę całkiem spory (w moim mniemaniu) program do sterowania silnikiem i paroma jeszcze innymi rzeczami (aktualnie na ATmega32L i 8MHz wewnętrznego oscylatora) i mam niezrozumiały dla mnie problem z obsługą przerwania od timera, kod obsługi przerwania wygląda mniej więcej tak: ... .org 0x0012 rjmp t1Ovf ... t1Ovf: push r16 push r17 in R16,...
Hejka!!!Pobieram co ustalony czas wartosc z czujnika korzystajac z licznika/timera 0 w Atmedze8 na przerwaniach.Kiedy licznik zliczy mi dokladnie odmierzony czas i wtedy wlacza sie przerwanie od licznika to czy moge w procedurze obslugi przerwania od licznika napisac pare linijek zeby odczytywal mi adc napiecie ale przez polecenie sleep czyli ze jak...
nie jestem pewien czy warunek if(miesiac >2 ...) jest właściwy...nie powinno być if (miesiąc=2 ....)? Narazie zrobiłem sobie zwiększanie zmiennych (począwszy od sekund do lat) od zadanej daty i godziny do aktualnej daty i godziny... [syntax=basic4gl]TU BYŁ MÓJ NIEISTOTNY JUŻ I NIEDZIAŁAJĄCY KOD[/syntax] Dodam, że po obliczeniu jaki czas minął, stoper...
al777 zgadzam rozumiem wszystko i sie zgadzam. Wszystko sie wydaje zrozumiałe ale w asm. 1: /***************************************... 2: Timer0 powoduje mruganie diody LED dokładnie co 1sek. 3: Program powoduje mruganie diody LED w ten sposób, Ŝe dioda LED świeci 4: przez 1 sek i jest zgaszona przez 1 sekundę....
Jeśli zmienna ta będzie jednobajtowa, to problemów z atomowością generalnie nie będzie, pod warunkiem że nie używasz RMW (_co20ms++) poza przerwaniem. W przypadku zmiennej dwubajtowej, wszystko zależy od rdzenia: jeśli jest on w stanie odczytać dwa bajty za pomocą jednej instrukcji (np.arm: ldrh), to problemu też nie będzie. W przypadku procesorów 8-bitowych...
Filozofujesz o czymś co dalej ma mały sens, a przy okazji mylisz się (zresztą tak samo jak Piotrus_999). Funkcja będzie niedokładna tylko i wyłącznie wtedy, jeśli przed końcem odliczania nastąpi przerwanie (jedno), które będzie trwało dłużej niż czas który pozostał do końca tego delaya. Po prostu delay nie ma możliwości się skończyć, bo... rdzeń jest...
Nie rozumiem konstrukcji tego programu, ale żeby coś takiego mogło sensownie działać, to nie można stosować czekania, jeśli nie ma obsługi przerwań od wciśnięcia przycisku, a i wtedy pewnie potrzebna będzie możliwość zmiany czasu czekania w procedurze obsługi przerwania - np. wciśnięto przycisk, włączyło się zasilanie modułu, uruchomiło czekanie przez...
W prawdziwym systemie na ogół potrzebujemy coś robić (np. sprawdzać stan guzików, czujników, wyliczać sterowania dla urządzeń) z częstotliwością dużo większą niż częstotliwość migania diod sygnalizacyjnych. W takiej sytuacji mnożenie przerwań od timerów może powodować zwiększenie czasu reakcji lub rozrzutu czasu reakcji na przerwania, co często jest...
I kolejny krok do przodu :) Kondensator 100nF na pinie kwarcu zapewne wpływa bardzo na częstotliwość pracy timera2, ale tego jesteś świadomy. Należy więc najpierw rozwiązań problem niestartowania Timer2, by pozbyć się kondensatora i palucha :) Tutaj funkcja projektu który niebawem opublikuję: [syntax=c]void dd_timer2_rtc_ini(void){ //Funkcja inicjująca...
Witam Napisałem program i mam z nim problem. Po skompilowaniu zajmuje mi prawie całą pamięć 1724bytes (84,2%). Przyczyną jest zmienna opuzgrzew w _delay_us( ). Gdy zamiast tej zmiennej wstawię wartość stałą, program zajmuje mi tylko 400bytes (19,5 %). Czy ktoś ma pomysł jak zmniejszyć objętość programu? Zależy mi na tym ponieważ chciałbym dołożyć jeszcze...
Poczyniłem programik w C do zliczania impulsów z zewn. wejścia T1. Program zlicza impulsy do T1 w czasie ustalanym przez T0. Sterowanie jest tak ustawione że pierwsze odliczanie wpisywane jest do F1, drugie do F2, trzecie do F3 i tak w kółko. Na czas wyświetlania na LCD wyłączyłem przerwania. Wszystko działa ale nie do końca prawidłowo. Problem polega...
Potrzebuję zliczać godziny i nie musi być do dokładnie. Jeśli zamiast godziny, będę miał godzinę i minutę, albo 59 minut, to nic się nie stanie. Mam już uruchomiony jeden timer do multipleksowania: ISR(TIMER2_COMP_vect) Jak dodać drugi, żeby się to nie gryzło? Po wyzwoleniu przerwania zewnętrznego przez switch, zamiast temperatury wyświetlić się ma...
Po pierwsze to jaki to jest procesor? Bo standardowy '52 nie ma 6 cykli na rozkaz, a na początku napisałeś 8051. Po drugie to to o co Ci chodzi z tym zatrzaskiwaniem? Po trzecie to po co chcesz coś odczytywać z licznika? Odczytywanie z licznika to zupełnie inna para kaloszy i tu masz dwie możliwości: 1.Wyłączasz zliczanie na czas odczytu, 2.dokladnie...
100 lat temu wykonałem taki oto pilot do aparatów fotograficznych. Serduszko układów nadajnika i odbiornika to mały AVR AT90S2313 - dziś już nie produkowany. Zastępuje go Attiny2313. Ze względu na małą pojemność pamięci programu cała "grafika" :) nadajnika jest zapisana w AT24c64. Nadajnik to prosty transmitter z max. mocą 10mW. Odbiornik to oparty...
A zastanowiłeś się choć przez 1 us :-P ile czasu potrzebuje uC, na wykonanie procedury przerwania :?: [syntax=basic4gl]Tim2_int: Counter2 = Counter2 + 248 'co 1us Incr L2 If L2 = 1000 Then '0,001s Incr L1 L2 = 0 End If If L1 = 1000 Then '1s Toggle Portd.1 L1 = 0 End If Return [/syntax]
Witam. Tak ustawiam Timer2 [syntax=c] void initTimer2(void) { /* Funkcja inicjująca timer2 w tryb asynchroniczny wykorzystujący kwarc 32,768kHz timer2 odpowiada za odliczanie czasu generuje przerwania co 8 sekund ==== Rejestr ASSR w Timer_Counter_2 ====== */ TIMSK2 = 0;//Disable timer2 interrupts ASSR &= ~(1 << EXCLK); ASSR |= (1<<AS2);//Enable...
Zastosowanie zewnętrznego RTC uprościło by pewne sprawy: - Zegar ustawiałoby się tylko raz. - Prostsze podtrzymanie bateryjne - dwie diody, rezystor, bateryjka i po sprawie. - Przy zastosowaniu opcji alarmu z PCF-a wszystko działoby się automatycznie. Żadnego chodzenia do zegara punkt 8:00 by go "zresetować" - Nie trzeba pisać nieco skomplikowanej procedury...
Witam jestem początkujący w temacie bascom potrzebuję rozwiązać problem związany z błędnym odliczaniem zaprogramowanego czasu. Program przerobiony z działającego zegara ( samo odliczanie działa dobrze), tylko chcę żeby w 20 -stej sekundzie wyjście PIND.2 zostało załączone i w 45-tej sekundzie wyłączone. Teraz działa przypadkowo w 20 sekundzie zostaje...
Po pierwsze, timer liczy od 0 do 255, ale to oznacza 256 impulsów pomiędzy przepełnieniami, czyli powinno być 256, a nie 255 * 128us. Po drugie zaokrągliłeś wynik z 32.64 do 32 przed dzieleniem, co w efekcie dało niedokładny wynik ilości przepełnień. W rzeczywistości częstotliwość przerwań można obliczyć dużo prościej: ( 8000000 / 1024 ) / 256 = ok. 30,5176.....
Wiem, że mikrokontroler (w moim przypadku Atmega328) nie może wykonywać dwóch fragmentów jednocześnie, ale można spowodować złudzenie wielozadaniowości. Ja chciałem zastosować odliczanie czasu od momentu uruchomienia mikrokontrolera. I chodzi o to, że gdy program napotka na przerwanie i załączy na 10 sek diodę, to będę mógł, w między czasie "mieć złudzenie,...
przerwania odliczanie sekundy odliczanie czasu integra odliczanie czasu stoper
układ ładowarka wkrętarki atmega prawidłowe firmware chiński radio
Brother DCP-J125, DCP-J132W – reset pochłaniacza atramentu, kod 80, błąd 46, instrukcja serwisowa Sterowanie centralnym zamkiem w Nissan Micra K12 - lokalizacja i diagnostyka