Zrób to tak: [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 4000000 Config Timer0 = Timer , Prescale = 256 'onfiguracja timera, przescaler 256 On Timer0 Odmierz_1s 'włączamy timer0 Dim Licz_8ms As Byte 'definiujemy zmienną pomocniczą Dim Sekundy As Byte Enable Interrupts 'włączamy zezwolenie na przerwanie Enable Timer0 Load Timer0 = 125 'ładujemy...
Gdy procesor jest w trakcie wykonywania procedury przerwania, następne przerwanie nie będzie przyjęte , gdyż procesor (nie kompilator!) zeruję flagę globalnego zezwolenia na przerwania. Tak samo flaga bieżącego przerwania (tego, którego procedura obsługi jest wykonywana) zostaje automatycznie wyzerowana. Po zakończeniu przerwania flaga globalnego zezwolenia...
Tylko mam pytanie bo nie jestem pewien, przy kwarcu 32.768kHz przepełnienie licznika odbywać się będzie równo co 1s ?? Co zrobić żeby przerwanie z przepełnienia było co 0.25s ?? Ustawić odpowiedni prescaler.Ponieważ timer jest 8'bitowy to przerwanie z prescalerem równym 1 będzie wywoływane 128 razy na sekundę. w M8 na T2 masz dostępne prescalery 1,8,32,64,128,256,1024....
Witam Mam oto taki problem jak ww w temacie. Napisałem program na odmierzanie czasu przerwanie co 1 sekundę i ogólnie po wgraniu programu wszystko działa czas leci i jest wszystko OK. Lecz po chwili a Nie ma potrzeby az tak komplikowac tak wyjatkowo proste zadanje jak odmierzene czasu 1 sek. Po pierwsze: system ci sie blokuje juz po kilku sekundach...
Stos OK. Mówię Ci. Skasuj flagę przed "Enable INT1". Generalnie kolejność mam w kodzie taką: Config Int0 = Falling 'opadajace zbocze wywoluje przerwanie Config Int1 = Falling 'opadajace zbocze wywoluje przerwanie Config Timer0 = Timer , Prescale = 8 'konfiguracja Timer0 jako timera z preskalerem przez 8 'Przerwanie od przepelnienia Timer0 jest generowane...
Stworzyłem kod który powinien wyświetlać czas trwania stanu niskiego na lcd. Na wyświetlaczu pojawia się 0.0 ms oraz na przemian 1 lub 2 takt(czyli ile zliczył timer). Proszę o naprowadzenie na właściwy kierunek osiągnięcia zamierzonego celu. kod: [syntax=basic4gl]$regfile = "M8def.dat" $crystal = 4000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4...
Witam, W programie przedstawionym poniżej nie zostaje wywołana obsługa przerwania. Próbowałem na innych timerach tez bez skutku. AvrStudio 6, Atmega8a, optymalizacja O2. [syntax=c] #include <avr/io.h> #include <avr/interrupt.h> #include "utils.h" #include "display.h" int main(void) { LEDInit( ); Display(0); //Init Timer 0 TCNT0 = 6; TCCR0...
Witam, znalazłem kilka podobnych rozwiązanych tematów, ale nie do końca do konkretnego przypadku. Ma być takie coś: Wyświetla odpowiednie informacje na LCD - to działa Teraz ma poczekać 120 sekund i przejść do "Automatycznie3" - też działa Ma być jednak dodatkowo, że jak w przeciągu tych 120 sekund Cofn=0 (przypisany odpowiednio pin) to ma przejść do...
Witam, Atmega 8, Timer1. Prosty generator: przerwanie od timera1 ze skróconym cyklem, pętla główna pusta, w przerwaniu zmieniam stan portu. Niby proste... Oto kod: http://obrazki.elektroda.pl/8467182600_1... Są to regularne skrócenia cyklu z 1.085ms na 0.6355ms. Proszę o wyjaśnienie co to jest i jak sie tego pozbyć?
Mam sobie programik w ktorym co 400us wywolywane jest przerwanie. Obsluga przewania jest króciutka. W ukłądzie dołączony jest też LCD i 4 diody do portu. Co może być przyczyną że na portach LCD i diod pojawiają się dziwne stany w różnych momentach obsługi przerwania? Do tej pory nie używałem tego kontrolera i nie wiem o co może tu chodzić. Całkowicie...
Kilka pytań - bo kto pyta nie błądzi :-) Niby wszystko ładnie liczyło w przerwaniach - ale tylko do momentu kiedy zacząłem wywoływać Sub lub funkcję - wtedy zaczyna się resetować i zaczyna program od początku co sekundę ?? O co chodzi Teraz przestało mi nawet liczyć w przerwaniach. Wchodzi tylko raz i potem lcd się czyści. Zamieszczam kod, w którym...
Pewnie mi się dostanie ale nie mogę sobie dać rady z komendą w Bascomie, która po pojawieniu się sygnału z czujnika na wejściu procesora, spowoduje włączenie przekaźnika przez kolejne 5 sekund, a następnie go wyłączy. Zakładam, że to musi byc opcja Timer1 ale stworzenie działającej komendy mnie przerasta. Poniżej namiastka programu, który włącza przekaźnik...
Cześć. Napotkałem ostatnio na pewien problem, mianowicie w momencie gdy wywołuję przerwanie w swoim układzie, to po jego obsłudze główny blok programu nie jest kontynuowany, tylko wszystko zaczyna się od początku (albo resetuje procek). W załączniku schemat urządzenia. Załącznik usunąłem. http://obrazki.elektroda.net/63_12624652... Przerwanie...
Cześć napisałem program który działa ok ale tylko pozornie bo w symulacji. zawiesza mi sie na tej linijce jak go umieszcze w procku. .. .. Config Timer0 = Timer , Prescale = 64 Config Adc = Free , Prescaler = Auto , Reference = Avcc Start Adc Dim Sek As Byte Dim Minuta As Byte Dim Godzina As Byte Dim Krok As Byte Dim A As Integer Dim B As Byte Dim C...
Mam atmega8 na zestawie ZL2AVR z rezonatorem 8MHz i motyw jest taki ze po wgraniu programu symulujacego zegar odmierzal mi czas nie co sekunde a co ok 10s. Program jest przykladowy ze strony BTC i podlaczony zewnetrzy rezonator wlasnie 8Mhz. Natomiast wyswietlanie na LCD odbywa sie w taki sposob ze zapalaja sie kolejno znaki od lewej tak jakby to mial...
Jestem początkujący. Dopiero uczę się programowania. Miał być to mój pierwszy samodzielny program. Podczas kompilacji występują 3 błędy: error : 7 error: 350 error: 127 wszystkie w line:0 Używam Bascom AVR w wersji 1.11.9.8 demo Poniżej zamieszczam moje wypociny. Niestety w pliku pomocy jest tylko opisany Error:7 http://obrazki.elektroda.net/42_12667718...
Witam Mam impulsy (ok.100 impulsów) trwające 0,4us i powtarzające się co 5us (PinB.0) impulsy "0" z wysokiego stanu do masy. W czasie trwania tego impulsu na PinD pojawia się 8 bitów, które chcę zapisać do tablicy a potem chce je przeglądać. Mam jakieś przerwania bo X się zwiększa i dane w tablicy też ale to nie te dane. Czy to jest wykonalne na Atmega168...
Mam problem z komunikacją 1wire i jej kolizją z przerwaniami zewnętrznymi. Próbowałem wyłączać przerwania zewnętrzne na czas obsługi 1wire efekt jest taki, że temperaturę odczytuje bezbłędnie, niestety rozjeżdża mi się przerwanie zewnętrzne. Gdy, nie wyłączam przerwań zewnętrznych na czas obsługi 1wire program po czasie się wysypuje. Przerwania zewnętrzne...
Witam. Mam pewien problem z programem. Generalnie układ posiada 3 przyciski. Kontaktron - generuje przerwania (nie sugerować się nazwą, testuję to na zwykłym switchu) P_zeruj - Przycisk od zerowania wyniku P_mierz - Jeśli jest w stanie 1 to przerwania są włączone jeśli nie to wyłączone. I tu pojawia się problem. Jeśli P_mierz ustawię w stan 0, to przy...
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 , przy kwarcu #define F_CPU 4000000UL timerze0 i preskalerze 1 mam przepelnienie po 256 krokach po czasie 0,000064 s. zliczajac 15625 przerwan powinienem miec sekunde. jednak wystepuja u mnie 5 sekund opoznien z kazda kolejna minuta. zliczajac w ten sposob popelniam blad ?
Witam. Chciałem w celach edukacyjnych zrobić częstotliwościomierz. Ponieważ nie mam za bardzo skąd wziąć zewnętrznych impulsów postanowiłem, że jeden pin procka będzie je generował, a przerwanie int0 będzie liczyć ile tych impulsów było. Do odmierzenia czasu posłużył timer1, który ma odliczyć sekundę (więc wynik od razu w Hz). Po upływie sekundy ma...
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...
Wyobraź sobie, że przerwanie występuje co 500ms a do procka podłączona jest dioda. Co pół sekundy dioda zapala się i gaśnie. Okres przebiegu to będzie czas świecenia i wygaszenia diody czyli jedna sekunda. Jeśli przerwanie było by generowane co sekundę okres wynosił by wtedy dwie sekundy.
Czy wszystko będzie ok. trudno wyczuć. Zależy jaki zastosowałeś układ wykrywania przejścia przez zero. Jeżeli stan niski utrzymuje się przez większą część przebiegu i tylko w okolicach zera jest wysoki to dopóki jest stan niski to jest zgłaszane przerwanie. Jeżeli dodać do tego że przerwanie int0 ma najwyższy priorytet poza reset to przerwanie od timera...
Stosy to dla mnie czarna magia, wiem tylko, że każdy przeskok wymaga zapisania adresu zwrotnego, ale nic poza tym :oops: No przy takim podprogramie to 1 megabajtowy stos to za mało :D, to się chyba nazywa rekurencja: [syntax=basic4gl]Petlapomiarowa: If Impulsy < 15 Then 'Jesli nie ruszono, wyswietlaj dalej napiecie Gosub Pomiaradc If Konwersja >...
Do drasmen: jeżeli chcesz aby układ zadziałał musisz przestawić fuse bity na wew. generator np. 8MHz a do pinów gdzie podłączasz kwarc musisz wpiąć kwarc zegarkowy 32.768kHz. Program dla autora tematu: 'Program wykorzystujący przerwanie od timera0(8 bitowego) generowane co 8ms 'jeżeli przerwanie zostanie wywołane 125 razy, otrzymamy 1 sekundę...
[syntax=basic4gl]Config Timer0 = Timer , Prescale = 1024 Enable Timer0 : On Timer0 Przerwanie0 Dim Tmp As Word Tmp = 0 Dim Ptimer1 As Word Ptimer1 = 0 Do If Klawisz = 0 Then If Ptimer1 = 0 Then Ptimer1 = 100 End If If Ptimer1 < 95 And Klawisz = 0 Then Tmp = 1 End If End If If Tmp = 1 And Ptimer1 < 85 And Ptimer1 > 70 Then If Klawisz = 1 Then...
Gdy już usuniesz wewnętrzną pętlę do..loop to zwróć uwagę, że stan przycisku będzie sprawdzany raz na 60s. Możesz zrobić sprawdzanie np. tak (co 1 sek.): dim x as byte ... do 'sprawdź przyciski if x=60 then x=0 toggle ... end if wait1 incr x loop end Albo wykorzystać timer lub przerwanie.
OPIS FUNKCJI LOAD Action Load specified TIMER with a reload value. . . . It will do the calculation. (256-value) So LOAD TIMER0, 10 will load the TIMER0 with a value of 246 so that it will overflow after 10 ticks. TIMER1 is a 16 bit counter so it will be loaded with the value of 65536-value. Czyli u ciebie ładuje 65536 - 65436 = 100 Przepełnienie właśnie...
Zablokuj przerwania na czas odczytu temperatury, powinno pomoc. Druga opcja to wykorzystać przerwanie zegara i od razu po odczycie czasu wykonać odczyt temperatury i potem wysłać rozkaz konwersji temperatury do DS. Jak podczas nadawania po 1Wire program wykona jakieś przerwanie to będą problemy z DS (przynajmniej ja takie miałem)
Witam. Proponuje zacząć projekt od zapoznania się z Timerami i z przerwaniami od nich. Następny krok to wyświetlacze LED sterowane multipleksowo. [url=http://diycenter.acid19.linuxpl.com... szczypta teorii na temat wyświetlaczy. Potem proponuję uruchomić wyświetlacze i wyświetlić na nich jakiekolwiek cyfry. Poniżej (tak...
Tylko dlaczego /128 ? Bo 32768kHz/128=256, co powoduje że impuls będzie generowany 256 razy na sekundę, a co tyle przepełnia się ośmiobitowy timer, więc przerwanie zostanie uruchomione co równą sekundę :) Co do przebiegów - też pewnie wina programu, timer nie został prawidłowo skonfigurowany i nie uruchamia kwarcu Dodano po 3 Jeszcze po "Enable Interrupts"...
Witam. Powinieneś zastosować przerwanie np. Timer1 do zliczania czasu. Sprawdzanie temperatury powinno dobywać się co sekundę lub dłużej. Załaczanie/odłaczanie pompki i innych elementów musi odbywać się w przerwaniu i powinno być sprawdzane wraz ze zmianą temperatury. Co do wyświetlania można zrobić to w przerwaniu lub nie.
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...
Na elektrodzie było kilka(naście?) zegarków na ATmega8 w dziale DIY, z czego kilka widziałem oprogramowanych w BASCOM-ie. Zajrzyj na tamte tematy, na pewno ci się rozjaśni. Zegarki lepiej taktować rezonatorami zegarkowymi, bo takowe są do tego najlepiej przystosowane jakby nie było. Chociażby z racji częstotliwości 32768 Hz, które jest 15-tą potęgą...
Podepnę się pod wątek, bo temat pasuje :D atmega8 na wewnętrznym oscylatorze 8MHz i przerwanie zliczające sekundy: Config Timer0 = Timer , Prescale = 8 Load Timer0 = 100 'przerwanie co 0,1ms On Timer0 Odmierz_ms do loop end odmierz_ms: Load Timer0 = 100 Incr Licz_ms If Licz_ms = 10000 Then '10000*0,1ms=1s Licz_ms = 0 end if incr sekundy return Wszystko...
Tak jak piszesz. Przerwanie od Timera przelicz sobie aby się wykonywało odpowiednio szybko (mi zazwyczaj wystarcza ok 10 razy na sekundę) a w przerwaniu sprawdzaj stan przycisków. Jeśli jakiś jest wciśnięty - ustaw flagę a w programie głównym ją obsługuj. W Twoim przypadku, musisz napisać obsługę przerwania: Do tego czy da się zrobić tak żeby temperatura...
witam ponownie. Innym wyjściem jest zastosowanie przerwania z TIMER1 (16bit.) z preskalerem 1024, oraz ustawienie wartości początkowej po każdym przerwaniu na 55770, wtedy przerwanie będzie realizowane co 1,00003800 s, więc zdążysz ze wszystkim, a jeśli jeszcze wywołasz sprawdzenie temperatury zaraz po wykonaniu przerwania wtedy już napewno zegar będzie...
Wpisałem polecenia wczytywania czasu z EPROM i zapisu. Różnica jest teraz taka, że co sekundę dostaję: 255:255:255 Wyświetlał ci wszędzie 255 bo taka jest wartośc każdej komórki "surowego" EEPROM (FF). Aby tego uniknąc proponowałem 'startowe wyzerowanie': Przy nagłym odcięciu zasilania z 14V IN czas jest zapisywany do EPROM. Natomiast coś dalej jest...
Nie wiem czy chcesz się nauczyć czy potrzebujesz program. Na początek te uwagi: 1. Nie wiem co tam robi dyrektywa $eeprom. Jest niepotrzebna w tym kodzie 2. Zmienna Ds jest zwiększana w przerwaniu niezależnie od tego czy jesteś w Menu czy nie. Tak więc po powrocie z Menu już na pewno nie zdążysz załapać się na warunek If Ds = 2 i wyzerować jej wartość....
Ok, tylko co jeżeli chciałbym żeby był np taki efekt: dioda świeci 4 sekundy na zielono, pozniej 4 sekundy na czerwono i powiedzmy 4 sekundy na żółto, jeżeli czas świecenia zrealizuję za pomocą funkcji Wait , to nici z obsługi przycisku w petli głównej, jeżeli bym to zrobił przerwaniem zewnętrznym wówczas program najpierw obsługuje przerwanie i sterowanie...
Hmmm..Moze i myle asembler bo pisalem kilka prostych programow na 8051 ale wydaje mi sie ze trzeba obliczyc cos przeciez. Przeciez timer i jegoprescale, zlicza do ilus tam i jest przerwanie. Iles przerwan daje nam sek jak chcemy. Itd... Przynajmniej mi sie tak wydaje. Co do RTC to fajnie ze mozna ale jak to uruchomic w BASCOM`ie. No i jak z tym liczeniem...
Wiesz, co z tego, że podam, napisałem Ci na górze jak łatwo i przyjemnie to zrobić, to Ci się nie podobało, a że przerwanie lepsze, to ogólnie jasne, tyle, że, trzeba wiedzieć czym przerwanie jest i jak działa. (Nie, po tym co napisałeś, nie masz pojęcia). P.S. Czemu Wy ludzie uczący się bascoma nie spróbujecie skompilowac programu, aby zobaczyć czy...
Witam, analizator zobaczył tylko ja specjalnie to zwęziłem żeby było widać zarys całego przebiegu,. Teraz tez już wiem, że pomysł stosowania przerzutnika D jest raczej bezcelowy. Bo i tak w programie trzeba sprawdzać stan na pinie kierunku. Oczywiście najlepszym rozwiązaniem jest zastosowanie bramek z histerezą. Jest jednak jeszcze druga kwestia, a...
DZIĘKI WIELKIE Jeżeli dobrze rozumiem to ustalam początkową wartość licznika i kiedy licznik się przepełni zostaje przerwana główna pętla i skok do podprogramu. W jaki sposób wyliczyć jaką musi mieć wartość zmienna aby występowało na wyjściu 8Hz? Czy są może jakiej jeszcze rozwiązania, bo jak zauważyłem to skok do podprogramu będzie wykonywani 8 razy...
cls nie powinien tu być problemem. A przed wygłoszeniem opinii zapytałeś o częstotliwość sygnałów? Instrukcja CLS może zajmować np. 300ms. Czy 4 impulsy na sekundę to jest coś co przekracza możliwości AVR? A najlepiej sygnał taktujący zliczaniem podaj na pin INT0 lub INT1 i ustaw przerwanie żeby reagowało na zbocze. Bardzo dobre rozwiązanie, pod warunkiem,...
Hmm dalej nie kumam do końca o co chodzi jestem początkujący ... Znalazłem taki program w książce do odmierzania 1 s tylko jak to do mojego programu dołączyć [syntax=basic4gl]'Przykład wykorzystania Timer0 do generowania w przerwaniu '1 sekundowych odcinków czasu 'Program co sekundę w przerwaniu zmienia na przeciwny stan linii 'PD0 sterującej diodą...
P. S. Mam właśnie na stole taki termometr. Wyświetlacz jest multipleksowany timerem w przerwaniach co 8ms. Każde przerwanie powoduje jednokrotne uruchomienie innego fragmentu programu w pętli głównej, w tym innego fragmentu obsługi DS'a. Komunikacja z DS'em się wyrabia. Ale wprowadza Kolega jakieś opóźnienie pomiędzy tymi uruchomieniami ? Np. zliczanie...
Witam. Prescaler jest to dzielnik częstotliwości. Jeżeli użył byś kwarcu 8 MHz oraz timera 0 przepełnił by ci się on 31250 razy.Aby zmniejszyc częstotliwość wyrzucanych przerwań używa sie prescalera. Np ustawiając prescaler 64 uzyskasz przerwanie co 0,00204800 s. Co do drugiego pytania to w BASCOM'ie licznik się zeruje chyba że wpiszesz mu jakąś wartość....
Witam Żeby uzyskać 1 sekundę albo skonfiguruj sobie timer albo wykorzystaj fakt, że układ ma dodatkowe wyprowadzenia do podpięcia dodatkowego kwarca a np. Bascom w prosty sposób pozwala Ci zrobić zegar. Skonfigurowanie zegar umożliwia skonstruowanie podprogramu (musi nazywać się sectic, więcej o tym w pliku pomocy), do którego procesor będzie wchodził...
Wrzuć wszystko do programu głównego tzn. przyciski ( ustawianie czasu załączania/wyłączania pompy), sprawdzanie Adc (poziom wody) przeliczanie wartości dla wyświetlacza , a samo wyświetlanie w podprogramie odświezanym co jedną sekundę za pomocą Timer0 . Timer0 dalej dla wyznaczania 1 sekundy. Buzer zrealizuj za pomocą zwykłej zmiennej licznikowej zwiększanej...
To co piszesz jest słuszne i mądre, widzisz, jest tylko jeden problem - soft jest skomplikowany bardziej niż by się wydawało, atmega8 ma tylko 8kb flash a wszystkie przerwania Atmega8 są zajęte (w tym timer1 do zliczania pojedynczych sekund, int1 i timer2 wykorzystywany przez getrc5). Oczywiście zawsze można skonfigurować bufor wejściowy, np. gdy spodziewamy...
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,...
Mam coś takiego: [syntax=basic4gl]Config Timer0 = Timer , Prescale = 256 On Timer0 Odmierz Dim Licz As Byte Enable Interrupts Enable Timer0 Load Timer0 = 250 Stop Timer0[/syntax] i przerwanie: [syntax=basic4gl]Odmierz: Load Timer0 = 250 Incr Licz If Licz = 150 Then Licz = 0 Toggle Buz End If Return[/syntax] tylko że to miga 1 sekunde a ja potrzebuje...
Load timer = ... nie jest równy Timer = ... ... no to akurat jest oczywiste :-) Problem dotyczy zupełnie czegoś innego - poczytaj powyżej, ale dokładniej ;-) Skąd te obliczenia? Poniżej masz kalkulator do timerów. Policz i się nie dziw. ... no jakoś się nie dziwię, bo kalkulator (swoją drogą całkiem fajny - szczególnie przydatny dla tych, który nie...
Trochę więcej czasu niż myślałem zajęło mi przerobienie kursu FORBOT, sporo tez czasu straciłem na trawieniu płytek i ich lutowaniu, ale nieważne wszystko wyszło ok i sporo wiedzy sobie przyswoiłem, także wczoraj zacząłem czytać temat timerów http://diycenter.acid19.linuxpl.com/read... podany mi przez Tomq no i trzeba powiedzieć,...
Pisząc posta masz możliwość i powinieneś zapakować kod w "Listing kodu: SYNTAX wybierz" i tam wybrać "Basic Bascom" Zupełnie inaczej to wygląda i da się czytać. Napisz lepiej w komentarzach do kodu co Ty myślisz że to robi bo ja to widze tak: Co 500ms czyścisz wyświetlacz i wyświetlasz zmienną Sek. Zmienna zmieni se dopiero za minute i dwie sekundy...
Przykładowo możesz wykorzystać dwa liczniki. Jeden do regulacji częstotliwości, a drugi do regulacji wypełnienia. - licznik pierwszy odlicza czas pomiędzy okresami od 1 sek dla 1Hz do 50 ms przy 20Hz. - licznik drugi oblicza czas trwania impulsu. Powiedzmy że zmiana stanu pinu X generuje przerwanie uruchamiające licznik drugi który po upływie zaprogramowanego...
Witam. Mam problem z przerwaniami w atmega8. Wcześniej nie potrzebowałem przerwań więc to zagadnienie mnie nie interesowało. Potrzebuję wywołać przerwanie zewnętrzne int0 które uruchomi timer1, a ten zacznie odmierzać czas. Napisałem coś takiego (oczywiście to część z większego projektu) '$sim $regfile = "m8def.dat" 'informuje kompilator o...
Dzięki! Pytałem zapobiegawczo. Muszę wybrać temat pracy inżynierskiej. Kiedyś bawiłem się BASCOM-em, ale do przerwań nie doszedłem- pamiętam, że też miałem problemy z równoległym wykonywaniem zadań przez procesor, ale i moja wiedza była też mizerna. Ten program chcę napisać w AVR-GCC, bo to jest szeroko chwalone środowisko programistyczne i język programowania...
Program który przedstawiłeś nijak się ma do tego co chcesz osiągnąć. Nie wiadomo co to za zmienna Time1 i po co jest porównywana z jakimiś dziwnymi wartościami. Zacznij może tak. Prescaler=64 to za mało żeby odmierzyć dwie sekundy - musi być co najmniej 256. Skoro impulsy przychodzą na PD.3 to aż się prosi żeby wykorzystać przerwanie Int1. W przerwaniu...
crazy_phisic = faktyczne to mój błąd z różnych testów i kombinacji... m.bartczak = tu również to jedynie błąd z testów. Sprawdzałem na różnych timerach. I przy wklejaniu kodu nie zmieniłem tego. W ramach testu zmodyfikowałem kod, tak aby co 1000 przerwań (czyli teoretyczne 1000*1ms) dał mi 1ms impuls na diodę: $regfile = "m88def.dat" $crystal...
Witam Mam taki program w symulatorze działa tak jak bym chciał czyli po nacisnięciu przycisku dioda sie zapala i po kilku sekundach gasnie ale po wgraniu do atmegi 8 niedziała prawidłowo czyli diode można zgasic i zapalić ale już nie gasnie po kilku sekundach.Czy ktoś wie czemu??? $regfile = "m8def.dat" $crystal = 1000000 Config Portb = &B11111111...
Witam W projekcie wysyłanych będzie około 800bytów danych do PC i w PC bedzie na bieżąco wyświetlane. Do czego zmierzam. W czasie kiedy bedę obsługiwać przerwanie od Timer1 może pojawić się sygnał do PC, że dokonywana bedzie tramsm,isja. W atmega8 nie mozna ustawiać priorytetów przerwań w odróżnieniu do 8051. Kiedy pojawiało mi się przerwanie do timer1...
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...
przerwanie sekundę atmega8 przerwanie bascom przerwanie atmega8
bd135 zamiennik spaliny katalizator antena 12dbi
radio dominika bateria parkside
Opóźnienie włączania silników na jednej fazie Ustawienie kolumn 80W w pokoju 5x5m – lepiej na ścianie czy w rogach pod kątem 45 stopni?