To pokaż teraz cały kod po zmianach. Dodano po 7 Niestety muszę wyjść, ale będę około 21:00 to pomogę Ci dalej.
Pierwsze wynik = wynik/10 trzeba usunąć, to stąd brał się ten błąd w wyświetlaniu, musi się zaczynać od Dziesiatki = .... Trzeba by dodać Start Timer1 no i pokombinować może dodaj jeszcze "edge = rising" obok "capture edge = rising"
Jeśli masz detekcję otwarcia/zamknięcia migawki to nie ma najmniejszego problemu z pomiarem. Nawet ATMega8 ma timer z możliwością pomiaru czasu - tryb capture. Podajesz sygnał na wjście timera i potem odczytujesz rejestr zawierający timestamp zdarzenia. Parę linii kodu. Ale jak wykryć otwarcie/zamknięcie migawki? Laserek i mierzenie odbicia od migawki?
(at)nowyARM W zupełności się zgadzam. Tyle, że w przypadku atmegi 8 jest jeden problem - brak ICP. Cała rodzina tych procków ma ICP. Od Atmega8 do Atmega32: "PB0 ICP1 (Timer/Counter1 Input Capture Pin)" dla A8.
No więc zgodnie z moimi przypuszczeniami masz tam sygnał cyfrowy, w którym informacja o położeniu jest kodowana jako czas trwania impulsu - 1,5ms położenie neutralne, 1 lub 2ms położenia skrajne. W takim przypadku to co potrzebujesz to: 1. Porzucić pomysły związane z ADC, 2. Zająć się timerem, a dokładniej układem pomiaru czasu trwania impulsu - input...
Ok, Czy na Atmega też się da? Oczywiście, to zrobisz i na starym '51. Atmegi są bardzo różne - Atmega8 i ATmega4809 to dwa różne światy. Ale generalnie, każda ma timer, który może działać w trybie capture, w którym możesz mierzyć częstotliwość lub wypełnienie. Każda potrafi także sprzętowo generować PWM. Aczkolwiek przy podanych przez ciebie częstotliwościach...
(at)percol, dobry pomysł w mikrokontrolerze bez Input Capture... ATmega8 posiada wejścia ICP dla Timera1... http://www.atmel.com/dyn/resources/prod_... s. 81. Polecam AN: http://www.atmel.com/dyn/resources/prod_... Kod : http://www.atmel.com/dyn/resources/prod_...
dlatego najlepsza opcja nazywa sie input capture. 0x41 0x56 0x45!!
(at)seba_x:A co to za bzdura?:> • Peripheral Features – Two 8-bit Timer/Counters with Separate Prescaler, one Compare Mode – One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode A co do pytania autora, nie, zliczanie umożliwiają tylko dwa pierwsze timery. Trzeciego można używać jako wewnętrznego.
Używam 3 timerów, po jednym na parę bramek+ sterowanie podświetleniem wyświetlacza na PWM. Jeżeli koniecznie potrzbujesz tych przerwań i uparłeś się na ATmega8, to pomyśl o użyciu funkcji capture timera - możesz nawet nie czytać rejetru Capture, a wykorzystać samo przerwanie. Jeśli nie używasz wszystkich timerów, to 2 przerwania "zwykłe" i 2 capture...
Tryb Capture służy do przechwytywania zawartości licznika a nie do jego przeładowywania.
co do ponizszego trudno sie zgodzic: " ICP1 coś do komparatora (Input Capture Pin) OC2 coś komparatora OC1B coś do komparatora OC1A coś fo komparatora " zadne z tych pinow to nic do komparatora ICP1 to zewnetrzne wyzwalanie licznika 1 OC1 - to wyjsca licznika 1 zmieniajace stan w trybie porownania zawartosci TCNT i OCR1 (przy zrownaniu tych wartosci,...
$regfile = "m8535def.dat"0 ' Pewnie tutaj chodzi o ATmega8535... ;) Nieee LightI , u mnie jest "m8def.dat" bo mnie się ubzdurało ,że my tu mówimy o ATMega8 :) Config Timer1 = Pwm , CAPTURE EDGE = RISING , Compare A = Disconnect O to właśnie chodziło :wink: Pozdrawiam Piotrek
cytat z noty katalogowej ATMega8 Input Capture Unit The Timer/Counter incorporates an input capture unit that can capture external events and give them a time-stamp indicating time of occurrence. The external signal indicating an event, or multiple events, can be applied via the ICP1 pin or alternatively, via the analog-comparator unit. The time-stamps...
Hej, Dzielnik zmieniłem i jest przed diodą. Dodanie kondensatora C6 za diodą powodowało, że przy rozłączeniu zasilania mega nic nie zapisywała i zliczała od zera. Podobnie jak wpisanie polecenia RISING. Odlutowałem C6 i zmieniłem polecenie na FALLING. Zamieniłem dzielnik tak jak był na początku a więc 100K i 18K tak aby comparator wyzwalał się przy...
Ten sam kod, który zaprezentowałem w pierwszym poście , natomiast przerwanie wywołane już na nodze portb.0 i działa zmienna nie jest nadpisywana. Cała reszta kodu bez zmian poza zmianą przerwania. Przerwania skonfigurowane prawidłowo. Moze przerwania masz skonfigurowane prawidlowo... ale..... Czy mozesz wyjasnic w jakim celu, w obsludze przerwania...
Wszystko ladnie tlumaczycie tylko ze nie posilkowaliscie sie nota katalogowa i ten program nie bedzie dzialal. ldi r16,0b10000000 out TIMSK,r16 Jesli spojrzec do noty to siodmy bit w TIMSK to OCIE2, czyli nic nie ma wspolnego z T1 czy T0. Mowilem ze ten program jest ZUPELNIE nie czytelny. Na samym pczatku juz kicha jest: .org 0x0005 to wektor od Timer1...
Tutorial do avr taki znalazłem: http://avr.elektroda.eu/?q=node/8 Jak byś czegoś w sieci szukał, to raczej unikaj tutoriala z patron.net, uczy złych nawyków i jest nieco nie na czasie. Pomiar częstotliwośći na AVR realizuje się w miarę łatwo, przy wykorzystaniu timerów, jeden timer pracuje jako licznik impulsów z zewnątrz, a drugi odmierza czas, mozna...
W trybie 9 który masz, OCR1A jest wartością do której będzie zliczał timer, a więc nie będzie się dało sterować wypełnieniem When using OCR1A as TOP value in a PWM mode, the OCR1A Register can not be used for generating a PWM output. Zmień tryb na 8, wtedy licznik będzie zliczał do ICR1 If a fixed TOP value is required, the ICR1 Register can be used...
Witam! Polecam ATmega8: Features: • High-performance, Low-power AVR® 8-bit Microcontroller • Advanced RISC Architecture – 130 Powerful Instructions – Most Single-clock Cycle Execution – 32 x 8 General Purpose Working Registers – Fully Static Operation – Up to 16 MIPS Throughput at 16 MHz – On-chip...
Proponuję użyć dowolnego uC z dwoma licznikami, ale niekoniecznie atmega8 ;) Pierwszy pracuje w trybie pomiaru częstotliwości lub pomiaru czasu (Input Capture). Drugi pracuje jako generator przebiegu wyjściowego, pędzony np. z zegara systemowego. Wartość zmierzona przez pierwszy licznik jest argumentem funkcji modyfikującej częstotliwość i/lub wypełnienie...
Do obsługi Timera1 są 4 wektory i nie wiem, które aktywować, co wpisać w procedurze odwołującej się, czy w ogóle jest taka potrzebna. Czy wystarczy tylko uruchomić te przerwanie i sygnał będzie generowany automatycznie ? Tabelka jest prosta: TIMER1 CAPT Timer/Counter1 Capture Event Zdarzenie z przechwycenia licznika (zwykle przez zmianę na pinie...
Użyj jednostki input capture do precyzyjnego pomiaru czasu między impulsami. W przerwaniu input capture możesz od razu liczyć i wprowadzać zmiany do wypełnienia PWM'a. PWM oczywiście sprzętowy, nie ma sensu robić go ręcznie. Obie funkcje pracują na liczniku 1, wszystko znajdziesz w dokumentacji. Co do kontroli obrotów, algorytm też może być bardziej...
Pracuję nad odczytem ramki z ALPINE M-BUS i wysyłaniu do Terminala po RS232 Temat był kiedyś poruszany.Ogólnie M-BUS pracuje na zasadzie PWM ,tzn, 0 i 1 są transmitowane z różną szerokościa impulsów . Joerg Hohensohn zrobił już coś takiego w języku C. www.jevinskie.com/mbus/ Chce zrobic tosamo w bascomie. Docelowo ma być pózniej emu zmieniarki na module...
Witam. Zrobiłem sterownik z ATmega8 do sterowania dwoma serwomechanizmami za pomocą pilota RC5. Program napisałem w Bascomie. Jeśli chodzi o zasadę działania serwa to w jednym z opisów znalazłem, że co 20ms należy podać stan wysoki o odpowiedniej szerokości (czyli częstotliwość jest stała). W Bascomie do obsługi serwa wykorzystywany jest 8-bitowy Timer0....
Witam, czytając książkę A. Pawluczuka natknąłem się na inicjację wektorów przerwań. Jak wiadomo w książce jest wykorzystywany µC ATmega8515 (niestety ja korzystam z ATmegi32). Przykładowa tablica tutaj: .orgINT0addr ;External Interrupt0 Vector Address reti ; ;---------------------------------------... .orgINT1addr...
Do pomiaru czasu pomiędzy impulsami proponuje zastosować ICP (Timer/Counter1 Input Capture Pin). Po pojawieniu się impulsu z miernika będziesz miał w rejestrze ICR1 (Input Capture Register) wartość licznika Timera1. Możesz obliczyć długość trwania impulsu w taki oto sposób: volatile uint16_t PulseWidth; volatile bool flPrzerwanieICR1=false; ISR(TIMER1_CAPT_vect)...
Zerżnięte z helpa : CONFIG TIMER1 = COUNTER , EDGE = RISING, CAPTURE EDGE = RISING , COMPARE A = DISCONNECT , COMPARE B = DISCONNECT -- Pozdrawiam, Daniel
Witam, Prosty program odbierający kod pilota sony i włączający urządzenie. Na ATMEGA32 przy wewnętrznym kwarcu 8000000hz działa (ZL3AVR). Po zmianie na Mega8 przy wewnętrznym kwarcu 8000000Hz nie działa. Mega8 jest na oddzielnej płytce testowej, zasilanie idzie z ZL3AVR, czujnik IR jest na ZL3AVR (IR IN) podłączone jest do PB1 mega8 Przekaźnik włącza...
Z noty katalogowej ATmega8515 (pierwsza strona): • Peripheral Features – One 8-bit Timer/Counter with Separate Prescaler and Compare Mode – One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode – Three PWM Channels – Programmable Serial USART – Master/Slave SPI Serial Interface – Programmable...
skorzystaj z pinu ICP1 i Input Capture Timera1, w rejestrze ICR1 bedziesz mial zliczone impulsy miedzy kolejnymi impulsami na pinie ICP1, w obsłudze przerwania Input Capture dodaj zerowanie timera. Dodano po 16 A jak chcesz to zrobic na INT0 to char zmienna=0; int wartosc; ISR(EXT_INT0_vect) { if (zmienna==1) { cbi(TCCR1B,CS11);//wylacz...
Ja nie widzę problemu. :D Timer1: CONFIG TIMER1 = COUNTER | TIMER | PWM , EDGE=RISING | FALLING , PRESCALE= 1|8|64|256|1024 , NOISE CANCEL=0 |1, CAPTURE EDGE = RISING | FALLING , CLEAR TIMER = 1|0, COMPARE A = CLEAR | SET | TOGGLE I DISCONNECT , COMPARE B = CLEAR | SET | TOGGLE I DISCONNECT , PWM = 8 | 9 10 , COMPARE A PWM = CLEAR UP| CLEAR DOWN | DISCONNECT...
A oto prosta funkcja (kompiluje się w najnowszym AVRStudio) :D : #include <ATmega8535.h> .include "m8535def.inc" ; Prohibits use of non-implemented instructions (ATmega8535) #define XTAL 11059200 #define USART_BAUD 19200 #define _UBBR(_X,_X_BAUD) ((_X/(16*_X_BAUD))-1... #message "_UBBR =="...
A tak na marginesie to czestotliwosc i ewentualny wspolczynnik wypelnienia sygnalu to najdokladniej sie liczy za pomoca jednostki Input Capture, ktora notabene do tego wlasnie sluzy.
Mam problem z przerwaniami, a raczej z pewną różnicą w budowie Atmega8 i Atmega32, a mianowicie mam program, który działa prawidłowo na Atmega8 poniżej fragment http://obrazki.elektroda.pl/7547240700_1... Jakaś sugestia/pomoc?
To może jeszcze inaczej - nie próbowałem tego na trzeszczących stykach, ale myślę że może działać. AVR ma moduł Input Capture Unit. Idea jest taka że sygnał przychodzący z zewnątrz powoduje zatrzaśnięcie licznika i zgłoszenie przerwania. Sygnał wyzwalający przechodzi też przez wewnętrzny filtr, a do tego nie ma opóźnień związanych z wejściem w przerwanie...
Dziękuję janbernat za fantastyczną i rzeczową pomoc oraz wkład pracy w rozwiązanie mojego problemu. Konrad Nie sadze aby ta metoda pomiarowa i sposob realizacji daly oczekiwany rezultat. Przeciez w aparatach fotograficznych czas otwarcia migawki nie jest zalezny od czasu 'wcisniecia przycisku', za wyjatkiem powiedzmy pracy w trybie "na czas" (B), a...
Co do kodu: 1/ nie dołącza się pliku iom8.h. Ten plik jest dołączany przez io.h. Należy przy kompilacji przekazać parametr -mmcu=atmega8 2/ Makro "ICP" korzysta z "PINB0", ale to nie jest bit od zmiennej PINB, żeby można było odczytać. To nie jest nawet maska odpowiedniego bitu. To jest numer bitu w rejestrze PINB, pod którym jest pin 0. PINB0 jest...
Witam, problem rozwiązany Oto działający kod: [syntax=c]#define F_CPU 8000000UL /* Częstotliwość kwarcu */ #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> volatile uint16_t licznik = 600; //czas trwania sygnału volatile uint8_t stan = 1; //1-czekamy na zbocze opadające, 0-czekamy na zbocze narastające int main()...
Głównie chodziło mi o sposób wysyłania poleceń 1 wire: Disable Int0 'wyłączenie przeszkadzającego przerwania 1wreset 1wwrite &HCC 1wwrite &H44 Capture = 1 Enable Int0 'załączenie przerwania po wszystkim Jeśli nie wiesz, które przerwanie może powodować u Ciebie problemy z 1 wire to możesz wyłączyć globalną obsługę przerwań. Czas po rozkazie odczytu temperatury...
Witam, Napisałem program, który docelowo miał odbierać dane z komputera przez modem BT HC-05 interfejsem UART oraz potwierdzać odebranie danej, oraz wysyłać dane z ADC jeśli przyciśnięty zostanie przycisk (w rzeczywistości jest to wycinek pewnego programu, więc niektóre zmienne etc. mogą być bez sensu). Odczyt ADC wykonuję wykorzystując przerwania capture...
Po co ci ten timer, skoro nadal nie wykorzystujesz jego przerwań?.. Ten kod ma błędy - pierwszy z nich to zawartość zmiennej "impulsy". Co ten timer ma robić według ciebie? Albo nim zliczasz impulsy które przychodzą z zewnątrz (impuls co ząb) i wtedy użyć innego timera do odmierzania czasu (wynikiem jest liczba o jednostce Wywoływanie funkcji typu lcd()...
A może spróbuj tak: jedne impulsy zliczaj przerwaniem np. INT0, a drugie impulsy przerwaniem InputCapture - wtedy przy wystąpieniu przerwania sprzętowo zapamiętywana jest wartość licznika zrób dwie procedury obsługi przerwań SIGNAL dla INT0 - czyli bez możliwości obsługi innych przerwań w tym czasie - ewentualne 2-gie przerwanie (input capture) zostanie...
1 strona: Peripheral Features – Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes – One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode – Real Time Counter with Separate Oscillator – Six PWM Channels – 8-channel, 10-bit ADC Differential mode with selectable gain at 1×, 10×...
Ponieważ tzw. casting w BASCOMie jest nieco zbyt prosto zrobiony to proponuję zrezygnować z: Dim Xl As Word Dim Xh As Word A w przerwaniu pobierać zawartość z rejestru ICR za pomocą specjalnie generowanej dla tego celu zmiennej typu Word: Capture1 . Pętlę Do..Loop zamieniłbm na sprzętowe porównywanie i kasowanie licznika przez CTC. Niech takimi rzeczami...
A wiec tak: Gdzie się podziało zainicjowanie licznika podczas wejścia w procedurę przerwania, drogi kolego ? oto ona: // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x40; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00;...
...nie odrzucam sposobu mierzenia prędkości poprzez pomiar czasu pomiędzy kolejnymi impulsami. Lecz nie bardzo mam pomysł jak to zrealizować programowo. Będe wdzięczny za podpowiedzi. W sumie to jest bardzo proste, wykorzystaj do tego jakiś timer z dość dużą częstotliwością (czym większa tym dokładniejszy pomiar). Zerujesz go w momencie przyjścia impulsu,...
Działajacy przykład: void PWM_init(void) { DDRD = _BV(PD4) | _BV(PD5); // Set up Timer 1. Timer 1 should reset when // it reaches TOP = ICR1 (WGM13:0 = 1110b). On // compare match clear output, at TOP set (COM1A1:0 = 10b). TCCR1A = _BV(COM1A1) | !_BV(COM1A0) // Both PWM outputs set...
ADC w tym przypadku będzie się wyzwalać z częstotliwością zależną od OCR1A Czy aby na pewno? Jako wyzwalacz dla ADC mogę wybrać jedynie: - Timer/Counter1 Compare Match B , - Timer/Counter1 Overflow, - Timer/Counter1 Capture Event. Na tej liście nie ma Timer/Counter1 Compare Match A , które odpowiedzialne jest za tryb CTC...robiw
Witam, proszę pomóżcie. Zrobiłem woltomierz na Atmega8. Wynik jest wyświetlany na LCD 2x16. Jednak zamiast np. 1.23 wyświetla 123. Zamieszczam kod:
Witam, proszę o pomoc w dokończeniu kodu do pomiaru temp. Wyświetlacz LCD 2x16 podlaczyłem do portu D atmega8. Czujnik temp. DS18s20 podlaczylem do pinu 2 Port B. Rezustor podciagajcy 4,7k s szyny danych DQ na zasilanie 5V. Wygenerowałem sobie kawałek kodu w codevision. Próbowałem rózne funkcje znalezione w necie ale nie działa wiec proszę o pomoc....
Witam Mam następujący problem. Używam timer0 jako licznika impulsów 12V które po przejściu przez układ dopasowywujący dają wartość 5,6 V na końcówce. Podobnie zliczam czas takiego impulsu za pomocą tego samego typu układu dopasowywującego. Problem tkwi w tym że timer0 nie zlicza mi impulsów przez podanie napięcia tylko wtedy gdy np: dotkne palcem albo...
Podłącze się pod temat: Postanowiłem pobawić się trochę dalmierzem opartym na SRF05 i korzystając z innego rozwiązania przekodowałem (ze zrozumieniem) program, który ma za zadanie pokazywać odległość od przedmiotu. Istotą mojego problemu jest to, że atmega32 idzie w maliny i nie bardzo wiem dlaczego... pomiary wykonują się, ale czasami procek wiesza...
I na wyswietlaczu pojawia mi sie 40 226 61 155 1 0 0 239 W pierwszym listingu Masz tablicę 8-elementową i dobrze, DS ma zapisanych 8 bajtów ID. W drugim listingu tylko 5 - elementową, dlaczego ? A co jeśli inny DS będzie miał 5 pierwszych bajtów takich samych ? Otóż będzie klapa. no to wpisuje te dane A możesz mi doradzić w sprawie stosowania kwarca...
Sluchaj zamiast: SIGNAL (SIG_INPUT_CAPTURE1){ UART_putchar (ICR1H); UART_putchar (ICR1L); PORTD|=_BV(5);//wlacza diode ICR1H = 0x00;//zerujemy rejestr IC ICR1L = 0x00; TIMSK = 0x00;//wylaczamy przerwania ACSR = 0x00;//wylaczamy komparator TCCR1B = 0x00;//wylaczamy timer 1 TCNT1L = 0x00;//zerujemy timer 1 TCNT1H =...
Koledzy mam małą zagwostkę. Potrzebuje rozkodować 2 sygnały ppm - sygnały pochodzące z odbiornika RC do serwa. Sygnał ma taka postać: Poniżej zrzuty z oscyloskopu: Długość impulsu 1.2ms serwo wychylone na maxa w lewo http://obrazki.elektroda.pl/5131828000_1... Długość impulsu 1.9ms serwo wychylone na maxa w prawo http://obrazki.elektroda.pl/6968753000_1...
Znalazłem http://en.wikipedia.org/wiki/Camera_Link Kawałek Nokii 6600/6230/itd. Kamera VGA jedzie po jednym LVDS, zasilanie Vio 1.8V Vanalog 2.8V http://obrazki.elektroda.net/2_125782252... Cena takiej kamery to 18zl (allegro "Kamera NOKIA 6230"). Moduł kamery: http://mazzoo.de/pics/nokia6230_3.jpg Nazwa tego socketu to SMIA85. W ten sam soket wchodzi...
Pracuję właśnie nad takim projektem, aby kontrolować kursor myszki w kompie za pomocą pilota.. Oprogramowałem odbiór/dekodowanie podczerwieni - działa. Oprogramowałem połączenie z PC tej myszki jako urządzenie klasy HID - działa. Niestety dwa w/w działają, ale tylko oddzielnie, tzn.: - testowanie podczerwieni na zasadzie migania diód (odbiór pakietu...
Nie wiem z czym masz dokładnie problem, ale bawiąc się kiedyś w asm napisałem program zmieniający wypełnienie na PB1 (OC1A) w zależności od wartości odczytanej z przetwornika A/C. Może okaże się Tobie pomocny: #include "m8def.inc" .def acc = r16 .def result = r17 rjmp RESET ; Reset Handler reti ;EXT_INT0 ; IRQ0 Handler reti ;EXT_INT1 ; IRQ1...
Witam. Chce uruchomić dekoder kodu Sirc(sony) na atmega8. Korzystam z tego rozwiązania [url=http://www.dragarti.cba.pl/artykuly... mam podłaczony TSOP1736 do wejścia INT0, zmianie pinów w kodzie na INT0 dla atmegi8 i odpisaniu F_CPU na 8mhz, za żadne skarby nie chce mi to się uruchomić, czy ktoś jest w stanie mi pomoc? Zaznaczam że jestem...
Faktycznie, usunąłem procedurę ISR, sei(); oraz ustawienia bitów w rejestrach TIMSK i TIFR. Działa również poprawnie a rozumiem że odciąża tak zbędnie procesor ? Mam jeszcze pewien organizacyjny problem, ponieważ w pracy inżynierskiej będę potrzebować kilku timerów. Do wentylatorów potrzebuję dwóch PWMów oraz 2 timerów - liczników do wykonania tachometru...
Ok dzieki Piotrek. Przypomniales mi o parzystosci juz wszystko gra. male przeoczenie.. Ja stosuje metode uzupelnienia "white char" czyli spacja:P =>> Dar.El to jest moj poczatek :) (az taki laik nie jestem :P) .nolist .include "m8def.inc" .list ;***************************************... ;* DEFINICJE ZWIAZANE Z REJESTRAMI * ;***************************************...
Witam to mój pierwszy post na tym forum, stąd możecie mi wierzyć jak bardzo jestem zrozpaczony:) jeśli temat jest w złym miejscu to prosiłym moderatora o przeniesiegnie i z góry przepraszam:) zwykle staram się rozwiazywać wszystkie problemy sam ale tym razem mam coś czego nie jestem w stanie zrozumieć. Pracuję chwilę nad programem którego działanie...
Witam serdecznie. Mam problem z ds1820. Mianowicie po zaprogramowaniu procka "ustawieniu wewnętrznego oscylatora na 8Mhz" programem przedstawionym poniżej wyświetla mi cały czas że "t1=+85.0`C". Proszę o pomoc. Z góry serdecznie dziękuje. #include <mega8.h> // 1 Wire Bus functions #asm .equ __w1_port=0x12 ;PORTD .equ __w1_bit=3 #endasm #include...
Witam wszystkich :D Niedawno rozpocząłem naukę programowania AVR w języku C i korzystam z programu Code Vision. Mam pewien problem, który być może jest prosty w rozwiązaniu, ale nie wiem za bardzo jak sobie z nim poradzić. Dodam, że przeszukiwałem internet ale bezskutecznie. Problem polega na tym, że po stworzeniu projektu i dodaniu kodu programu, w...
Witam. Potrzebuję W tym liczniku obrotów: [syntax=c]#include <avr/io.h> #include <stdio.h> #include <avr/interrupt.h> #include <util/delay.h> #include "HD44780.h" //tutaj ustaw własne zasady pomiaru #define POMIAR_ILOSC_IMPULSOW_NA_OBROT 4 //ilość inpulsów na jeden obrót #define POMIAR_ILOSC_OBROTOW 10 //ile obrotów ma trwać...
Witam, najpierw program: .include "m88def.inc" ; procek ustawiam na prace z wewnętrznego oscylatora 8MHz ; tryb sleep ustawiam jako POWER DOWN ; PD3 (INT1) jest przyciskiem (wejscie) ; PB1 (OC1A) to wyjscie sterujace reglem ; PB5 to wyjscie sterujące MOSFETami zalaczajacymi zasilanie regla ; PD5 (OC0B) to wyjscie sterujace LEDem ; ADC6 - pomiar pradu...
Mam mały problem z programem napisanym w bascomie .... ja myślę, że masz duuuży problem, dlaczego? 1. bo po pierwsze w ogóle nie zapoznałeś się ze standardami kodowania IR dla różnych pilotów (choćby dla RC5 i SONY o których wspominasz) 2. po drugie - proponuję najpierw poćwiczyć pisanie w Bascomie prostszych programów aby nabrać trochę doświadczenia...
#include <mega8.h> #include <stdio.h> #include <delay.h> #include <math.h> // 1 Wire Bus functions #asm .equ __w1_port=0x15 ;PORTC .equ __w1_bit=5 #endasm #include <1wire.h> unsigned int status=0, error=0; int temperatura=0, temperatura_zadana=0; unsigned char rom_codes[5,9]; unsigned char devices, ii; int ds1820_status=1,...
Witam. Jestem w trakcie tworzenia pewnego projektu wymagajacego uzycia graficznego wyswietlacza. Zakupilem sobie JM240128 o matrycy 240x128 puntkow i sterowniku T6963C. Udalo mi sie go obsluzyc, ale napotkalem na pewien problem. Otoz, podczas wyswietlania danych, gdy wyswietlacz sam zwieksza sobie Adress Pointer a ja tylko wysylam mu kolejne bajty,...
W tych standardach transmisji jest tak, że impulsów o danej częstotliwości jest określona ilość, więc może dobrym rozwiązaniem było by wykorzystanie Timera 1 (w wypadku np. ATmega8), czy innego który ma OCR, żeby wywołał przerwanie po zliczeniu odpowiedniej ilości impulsów. Inny timer zajmował by się zliczaniem czasu. Po przerwaniu z OCR wartość licznika...
Witam. Mam problem z dekoderm wywołania w systemie "5-tone", tony dekoduje poprawnie i wyświetla poprawnie, niestety próba wysłania ich przez UART nie jest zadowalająca. Jak widać program wykonuję "w pętli" wypisywanie odebranych znaków, czego wynikiem jest np dla kodu 12345: 1 12 1234 12345 Czy da się przerobić tak program aby na UART wysłać zmienną...
http://obrazki.elektroda.pl/2708019000_1... Taki będzie mniej więcej schemat, tyle że zamiast przełącznika kontaktron i obok diody LED tranzystor z przekaźnikiem na wyjściu. Dziękuję za zmianę tytułu dzięki temu naprawdę dużo jeszcze znalazłem w internecie :) pozdrawiam Edit: [syntax=text] /* OBROTOMIERZ v.1 Obrotomierz przeznaczony...
Witam uprzejmie. Jakiś czas temu natrafiłem na elektrodzie projekt bazujący na tea5767 + atmega8. Zainspirowało mnie to niejako do uruchomienia tego tunera w swoim systemie audio bazującym na routerze, który jest pod kontrolą systemu openwrt. Niestety okazało się, że mimo iż sam tuner jest oprogramowany w jądrze to nie ma możliwości zdefiniowania magistrali...
Nie lepiej wykorzystać przerwanie ICP1 timer1. Tam przepisywać zapamiętaną wartość timer1 (timer1 w konfiguracji timera zmienna = capture1), i przeliczać na prędkość, znamy przecież drogę (odległość między magnesami) a potrzebujemy tylko czas pomiędzy kolejnymi przerwaniami wywołanymi tymi magnesami. Po co zliczać ilość impulsów (drogi) w danym czasie...
Hmm... A co ma cena procesora do ceny In-circut debuger-a ? Procesory kupuje się wielokrotnie, a debuger raz, po za tym dla AVR istnieją tańsze, nieoryginalne wersje - sam JTAG, bez obsługi DebugWire, już za trochę więcej niż 100PLN (np. na www.propox.com ) - również na USB. ATmega8 - 7-9PLN, możliwości : • Advanced RISC Architecture – 130...
Witam wszystkich czy ktoś mógłby podpowiedzieć jak uzyskać odliczanie czasu w sek na atmedze? w programie CodevisionAVR uzyskuje taki kod w którym niby jest już jakiś wietrzny timer ustawiam go nawet na 8MHz ale nie wiem jak wyprowadzić to odliczanie sekund np na lcd wystarczy żeby ktoś podpowiedział to a dalsza cześć czyli odliczanie minut i godzin...
do toego o co pytasz i to bez zaprzęgania kilku przerwań i jeszcze dodatkowo timera nadaje się wprost - wyśmienicie, zresztą po to stworzony jest ten mechanizm.... .... wejście ICP procka (przerwanie Capture1). Pin ten może generować przerwania dla Timera1 w zależności od zbocza jakie pojawia się na wejściu. Gdy pojawia się takie przerwanie można odczytywać...
Witam. Robię miernik częstotliwości na ATmega8 z wyświetlaniem na LCD HD44780 w trybie 4-bit (mam zrobiony prototyp). Opanowałem już wyświetlanie (z obsługą BF), ale teraz przystawiło mnie z pomiarem liczby impulsów zliczanych na wejściu T1 mikrokontrolera. Wynik co prawda jest wyświetlany, lecz jest on niestabilny w taki sposób, że skaczą 2 ostatnie...
Zawsze możesz zwiększyć taktowanie do 16MHz - które ATMega8 bez L przyjmie. Możesz też zmniejszyć rozdzielczość do N bitów przez zmianę ustawień w TCCR1A, TCCR1B i CAPTURE1.
- Nigdzie nie upewniasz się, że odebrane zbocze jest faktycznie początkiem bitu start a nie środkiem transmisji (tzn. że od poprzedniego zbocza minęło wystarczająco dużo czasu). Czasy pomiędzy ponownymi strzałami z pilota to kilka ms ARAIR. Jakbym mógł się więc wstrzelić w środek transmisji? - Jeżeli chcesz faktycznie robić uproszczony odbiór a'la...
Witam! Skonstruowałem sobie urządzenie, które ma służyć do optymalnego ustawienia sterownika kotła. Mierzy temperatury na zewnątrz i wewnątrz, liczy ich średnie, minima i maksima, jest podłączone do sterownika kotła pod przekaźnik (przez transoptor) i zlicza ilość załączeń podajnika w różnych trybach pracy i sumaryczny czas. Od dłuższego czasu walczę...
Regulacja częstotliwości? Sprzętowo? Owszem. Ale kosztem rozdzielczości PWM. Trzeba włączyć tryb z wartością TOP ładowaną do Capture1. Potem w programie: zmiana Capture1 daje zmianę częstotliwości, ale wymaga też przeliczenia wartości Pwm1a/1b. Samo wypełnienie zmienia się w Pwm1a/1b, ale trzeba zawsze brać pod uwagę wartość z Capture1 by nie wpisać...
No to coś napisałem na AVRStudio 4.05.0.181 (na kolanie) :) . Co prawda na ATmega8 , ale przeportowanie to pestka(niektóre wektory przerwań do skasowania/zmiany nazwy i "2313def.inc" zamiast "m8def.inc" , prędkość kwarcu Xtal też do poprawki...), raczej tu chyba nie ma rozkazów niezaimplementowanych w AT90S2313 . ;included in next file - line ".device...
[syntax=asm]/***************************... Chip type : ATmega8 Program type : Application Clock frequency : 8.000000 MHz Memory model : Small External SRAM size : 0 Data Stack size : 256 ****************************************... #include <stdio.h> //#include <iomega8.h> //#include "delay.h" #include <avr/io.h>...
Witam ! Tworzę projekt stacji pogodowej za pomocą ATMEGI16 + LCD 2x16. Tworzę licznik impulsów który zliczałby mi czas pomiędzy zboczami impulsów (prędkość obrotowa wiatru) Znalazłem w sieci program który działa na Atmega8 + 16MHZ kwarc. [url=http://mikrokontrolery.blogspot.com... Chciałbym go przerobić na Atmega16 na...
Witam Mam problem. Zrobiłem układ, który ma przełączać napięcie na cewce silnika Silnik od bramy garażowej. Jedno 0 i dwa wejścia fazowe, od kierunku obrotów. Układ, na sucho, bez podpięcia do silnika działa prawidłowo. Reaguje na przerwania itp. Problem pojawia sie podczas podłączenia fazy do układu. uC działa przez jakąś chwile, potem przestaje reagować...
Witam, Jestem w trakcie budowy komputera pokładowego na procesorze AtMega8 oraz na wyświetlaczu LCD LS020. Program który tworzę ma zrealizować podstawowe funkcję komputera pokładowego, takie rzeczy jak menu i możliwość nastawienia parametrów odpuszczam a jedynie chcę prawidłowo obsłużyć wejścia i pomiary sygnałów. W trakcie pisania programu natknąłem...
Potrzebuję pomocy przy zamianie kodu "RFID Reader", tzn. żeby zamiast wyświetlania kodu karty na LCD uzyskiwać odpowiedni poziom na wyjściu 1z10 i czy jest to możliwe do zrealizowania na atmega8? Chciałbym użyć 8 ostatnich cyfr kodu karty. Posłużyłem się gotowcem, który był już na elektrodzie (dopiero uczę się bascoma i nie wiem jak się do tego zabrać):...
Witam kolegów, mam dość dziwny kłopot. Poniższy program zawiera jedynie procedury służące do komunikacji Atmega16 z PC. Jest tu obsługa wejściowego i wyjsciowego bufora kołowego o pojemności 255znaków. Pętla główna jest w zasadzie pusta. W celu przetestowania każdy przychodzacy znak jest dodawany do bufora wyjściowego i odsyłany (echo). Program testuje...
Witam wszystkich, projekt powstał na przełomie marca/kwietnia tego roku w wyniku zapotrzebowania na pompkę perystaltyczną potrzebną przy realizacji pracy magisterskiej. Nigdy wcześniej nie miałem do czynienia z elektroniką (nie licząc podłączania diod z rezystorem i prostych zasilaczy na LM7812) a tym bardziej z mikrokontrolerami. http://obrazki.elektroda.pl/2272591900_1...
codevision avr atmega 8515 nadawanie i odbior /***************************************... This program was produced by the CodeWizardAVR V1.23.8a Professional Automatic Program Generator © Copyright 1998-2003 HP InfoTech s.r.l. http://www.hpinfotech.ro e-mail:office(at)hpinfotech.ro Project : Version : Date : 2006-07-02 Author : j Company :...
Wcześniej sprawdzałem czy wchodzi do przerwania z pustą główną pętlą w pragramie - włączałem buzzerka w przerwaniu tylko. Teraz, powinno być tak, że po wejściu do przerwania (w moim przypadku przy wciśniętym klawiszu) buzzerek powinien dzialac, ale i po wyjściu nadal brzęczeć - a tu nic. Po wyjściu z procedury przerwania milknie, czyli gubi gdzieś ustawienie...
Ja nad takim czymś pracuje i z moich testów wynika że Atmega8 (8MHz) bez problemu sobie radzi z obrazem VGA Full HD (1920x1080x60Hz), a program jest w Bascomie !! To w końcu VGA czy Full HD? Obraz rozmiaru Full HD na złączu VGA. Mnie jakoś nie podoba się to rozwiązanie. Podobny projekt pobierający kolory z ekranu pracował na Python + Qt i z tego co...
Odcinek bonusowy do poprzedniego: http://obrazki.elektroda.pl/1555884900_1... W wersji produkcyjnej warto zadbać o odpowiednie obwody zasilania i resetu mikrokontrolera. Odbiornik wykorzystuje fotodiodę oraz wzmacniacz operacyjny LM358: http://obrazki.elektroda.pl/7895306600_1... Sygnały wyjściowe podawane są na wejścia...
Witam , mam nadzieję iż nie zanudziłem bez reszty.. W zestawieniu z moimi "dokonaniami asm." kolega michalko12, jest najbliższy temu co ja kiedyś robiłem . Oto wersja asm z przełącznikiem kompilacji aby kompilować jako samodzielny plik - kto chce ->ten może :D ( ta wersja to 16-timerów, 16-nasto bitowych, każdy cztery tryby konfiguracji, oczywiście...
Witam, męczę się z pewnym programem który za zadanie ma odebrać sekwencje tonów i wysłać przez UART oraz wyświetlić na LCD. Mam program zaczerpinięty z jednej strony ale nie wykonuje mi on operacji tak jak bym chciał. Ten program musze przerobić żeby: - rozróżniał dlugość sekwencji dźwięków tzn w zalezności od tego czy dźwiek ma 5 tonów 6 tonów itd....
Witam mam dwa układy RFM12 i atmega8 oba komunikują się ze sobą problem pojawia się gdy chce zmienić linię nSEL podłączoną do pinu SS na np pin PB0 gdzieś czytałem że linia nSEL nie musi być podpięta do tego konkretnego pinu. Pin PB2 (SS/OC1B) chce wykorzystać do sterowania silnikiem . Kiedy w kodzie zmienię definicje SPI_CS z portu PB2 na PB0 modułu...
Mam program, w którym uruchamiam przerwanie z pinu ICP. I wszystko działa jak należy, program jest przetestowany. Postanowiłem połączyć go z programem do obsługi karty pamięci pobranym z //**************************************... // **** MAIN routine FOR Interfacing microSD/SDHC CARD **** //**************************************...
atmega8 input capture video capture capture device
junkers cerapur termet sterownik pompy głębinowej analiza poboru energii elektrycznej
brandt piekarnik czyszczenie enkodera
Pezal PMC275C-PG420 – brak pracy pompy, diagnostyka i typowe usterki myjki ciśnieniowej Samsung SyncMaster T220HD – brak obrazu, działa podświetlenie, obraz zanika