Czy masz jakąkolwiek koncepcję tego co chcesz osiągnąć? Próbowałeś chociaż ten "program" skompilować? Może najpierw zapoznaj się z podstawami działania licznika/czasomierza na zwykłych bramkach. Co to znaczy-"dobrze skonfigurowany timer"? Zależy co chcesz osiągnąć. Bity WGM ustawiłeś na tryb "fast pwm". Nieskończona pętla w nieskończonej pętli nazywa...
Mam taki problem, że zrobiłem projekt Odbiornika Morsa na ATmedze8. W oryginalnym projekcie jest kwarc 10 MHz, a ja użyłem 10.240 MHz gdyż taki miałem w domu, a sklepu elektronicznego w mojej okolicy nie ma. Jak podłącze ten odbiornik do komputera i z programu morsik coś wysyłam to np. "adrian" dekoduje poprawnie, a "jarek" już nie, tylko na LCD pojawia...
Witam! Mam pytania: jak w praktyce zastosowac timery? Jak one działają? W którą stronę zliczają? Jak zczytac ich stan? Do ilu mogą zliczać? chciałbym, aby ktoś wytłumaczył mi to na przykładzie Atmegi8 i języka Bascom. Wiem już że: -Timery zliczają impulsy które same generują wg. prescalera -Prescaler to taki dzielnik, który bierze jakąś część taktowania...
Nieee- to się kompiluje. Sprawdziłem. To jest stary, klasyczny problem. Czętościomierz- czasomierz. Dokładność zależy od częstotliwości- czasu. Przy dużej częstotliwości otwieramy "okno"- bramkę i zliczamy ile tych impulsów było. Przy małej częstotliwości mierzymy czas między impulsami a bramka- pracująca teraz jako generator impulsów- zlicza czas między...
Dzień dobry, mam problem z uruchomieniem serwonapędu na ATmega8535, prosiłbym was o ustosunkowanie się do mojego kodu. Pisząc go posiłkowałem się stronami: #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <string.h> int main(void) { int p = 1500; //zmienna DDRA = 0x00; //przyciski PORTA...
Aby korzystac z rtc musisz podlaczyc kwarc 32,768 kHz do pinow PORTC 6 i 7. Ustawiasz timer2 na prace asynchroniczna i dobierajac prescaler na podzial przez 128 otrzymujesz przerwania co 1 s bez koniecznosci ladowania timera przy kazdym przerwaniu. Ponizej przedstawiam fragment kodu dla at90s8535 . Atmega8535 tez powinno dzialac. Sprawdz tylko czy nie...
Witam Po namowach wielu forumowiczów postanowiłem przesiąść się z 8051 na AVR. Niestety już na samym początku napotykam różne przeszkody. Największą dla mnie przeszkodą jest to, że przykładowe programy które są w sieci nie kompilują mi się. Korzystam z Atmel Studio 6.1. Sciągnałem sobie fajny poradnik "Podstawy AVR-GCC" i chciałem z niego korzystać....
Witam, mam pewien problem z wykonywanym kodem, mianowicie używam procesora Atmega8, do którego podłączony jest wyświetlacz LCD(w trybie 4 bit) i układ odbierający fale dcf77 firmy conrad, którego wyjście podłączone jest do przerwania int1. Część kodu odpowiadająca za wykrycie bitu synchronizacji działa dobrze, nie rozumiem tylko jaki błąd popełniam...
W uzupełnieniu dodam, że np. PIC18 Microchipa w technologi nanoWatt XLP, możesz wyłączyć do trybu w którym pobiera zaledwie 20nA . Wybudzanie poprzez zewnętrzne przerwanie. Ale jeżeli ma wewnętrzny układ RTCC (czasomierz z datą godzinami i sekundami), to masz pełną dowolność w jego wybudzaniu, a pobór prądu wynosi 700nA . Zapewne inni producenci także...
Oto reszta kodu. Jak policzyłeś dokładność? Tzn. jak uzasadnić to, że dla 4 impulsów mam 25% dokładności? Rozumiem, że 4 impulsy to w sumie 100%, ale nie rozumiem źródła tej niepewności. Gwoli wyjaśnienia - kilku zmiennych nie używam, to pozostałości po starych kodach (wiem, że powinienem je skasować :) ) a przetwornik ADC jest po to, że uruchamiam...
Dorzucam wersję z porządnym debouncingiem. Ten z BASCOMa jest zbyt uproszczony i nie nadaje się do profesjonalnych zastosowań. Po wciśnięciu jednego przycisku naciśnięcia innych przycisków są ignorowane do czasu puszczenia tego pierwszego. Zauważ autorze, że nie ma już nigdzie w kodzie czekania na cokolwiek (brak wywołań funkcji WaitMs()). Wszystko...
Witam szanownych elektrodowiczów. Mam mały problem z atmegą8 16PU. Mianowicie zrobiłem użądzenie do sterowania załączaniem pomp dyfuzyjnych . Urządzenie działa mniej więcej tak: 1-Ustawienie czasu załączenia się przekaźnika 2-Ustawienie czasu wyłączania się przekaźnika(przeście do głównej pętli) 3-Nieskończona Pętla -odliczenie czasu i włączenia przekaźnika...
Witam Poniższy program mierzy długość trwania impulsu / stanu niskiego podanego na INT1. Pomiar jest wyzwalany przerwaniem, zboczem opadającym, następnie następuje włączenie timera i przestawienie przerwania na zbocze narastające. Gdy ono nastąpi jest wyzwalane kolejne przerwanie, które zeruje zatrzymuje timer. Odczyt timera (rejestr TCNT1) następuje...
Witam Kod jak poniżej służy do zliczania czasu trwania jednego impulsu (ta funkcja działa prawidłowo) oraz do zliczania czasu (w celu zliczania ilości impulsów na jednostkę czasu). volatile unsigned char pomiar = 0; volatile uint32_t cw_impuls,impuls = 0; unsigned char sreg; float tc1; char czas[8]; void Inicjalizacja(void) { LCD_init();...
Poniżej źródło w którym mam: -pomiar ADC -pomiar szerokości impulsu PWM wysterowanie przekaźnika -USART Mikrokontroler ma spełniać funkcję sterownika do ledów jako oświetlenie samolotu z wyróżnieniem wszystkich etapów startu jak kołowanie włączenie silników itp. [syntax=c] #include <avr/io.h> #include <inttypes.h> #include <util/delay.h>...
Witam Buduje układ, w którym potrzebne mi są: - timer jako czasomierz - timer jako licznik - sygnał PWM Do tej pory zajmowałem się tylko ATmega8, ale ten mikrokontroler ma tylko dwa timery, wiec raczej nic z nim nie zdziałam (chyba, że jestem w błędzie). Czym zastąpić ATmega8? Jaki inny kontroler wykorzystać? Może lepszym rozwiązaniem będzie dołożenie...
Witam, Projektuje sobie urządzenie które w zasadzie będzie zegarem, ale z kilkoma funkcjami. Chodzi mi o to że np. o godzinie 12 w południe chcę aby na jednym z pinów procesora pojawił się stan wysoki do np. godziny 13. Zegar programowo jest ok, odlicza czas, wszystko jest na LCD, nie wiem tylko jak zrealizować te ustawiane godziny. Prosiłbym żeby mnie...
Po pierwsze to zajrzyj do pdf'a odbiornika IR, bo na Twoim schemacie brakuje konda i rezystora przy podłączeniu TSOP'a. Ma być w programie: Wygaszacz (godzina + temperatura), - Czasomierz najprościej na programowym RTC: str. 244 w książce Wiązni, zaś temperatura - str. 293. Wszystko jest gotowe! Ale rozsądniej byłoby zastosować zewnętrzny RTC np PCF8583...
Witam prosiłbym o napisanie jak ustawić Fuse bity w mikroprocesorze Atmega8 do programu: :'Piornik02.bas 'Różnica pomiędzy 01: w czasie pisania tekstu pozostaje on cały czas w okienku wyświetlacza 'oraz buzer przepełnienia pamięci jest z własnym generatorem (buzer z Portd.7 do +). 'Program do wyświetlania ściągi. 'Pozwoli zapisać treść w postaci 94...
Bylo juz dosc pozno jak na mnie i nie myslalem zbyt trzezwo :P Dziekuje za odpowiedzi. Zmodernizowałem sobie kodzik ktory wyglada teraz tak: #include <avr/io.h> // dostęp do rejestrów #include <util/delay.h> // zawiera definicję _delay_loop2 int main(void) // program główny { uint8_t pwm=128; // zmienna zawiarająca wartość wypełnienia...
/* * grr.c * * Created on: 2009-08-24 * Author: kayou */ #include <avr/io.h> // dostêp do rejestrów #include <util/delay.h> // zawiera definicjê _delay_loop2 #define przerwa 5 int main(void) // program g³ówny { uint8_t pwm=180; // zmienna zawiaraj¹ca wartoœæ wype³nienia DDRD = 0x80;...
Poszukałem informacji o timerze i napisałem taki program, czy będzie działać poprawnie? #define F_CPU 1000000L #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> SIGNAL (SIG_OVERFLOW1) { PORTD = 0x08; //Włącz PD.4 _delay_ms(10); //Opóźnienie PORTD = 0x04; //Włącz PD.3 _delay_ms(10);...
Witam. Robię obsługę czujnika przyspieszenia firmy MEMSIC MXD7202 (równoważnik ADXL202) przy użyciu mikrokontrolera ATmega8(kwarc zewnetrzny 8MHz). Czujnik mam z wyjściami cyfrowymi i pomiar dwóch wyjść tego czujnika polega na pomiarze współczynniku wypełnienia tego sygnału. Np. 50% współczynnik wypełnienia odpowiada przyspieszeniu 0g (g-przysp.ziemskie)....
Wgrałem ten najnowszy soft, ale niekiedy ma kłopoty z termometrem. Przy ustawieniu 25/5 (zegar/termometr), temperatura niekiedy nie wyświetla się wcale albo wyświetla się przez 1 sek. Nie wiem jak to jest przy innych ustawieniach bo zrobiłem ten czasomierz tylko na próbę na płytce stykowej. Mógłbyś udostępnić źródło tego ostatniego wsadu? Chciałbym...
Witam, po długiej przerwie, przetestowałem parę rzeczy, jednak nadal wszystko nie działa jak powinno :cry: , pomimo tego jestem bardzo wdzięczny więc klikam 'pomógł' osobom które zainteresowały się problemem. Na początek, częstotliwość PWM mam trochę ponad 32 kHz. Testowałem układ z diodą 1N4148, lecz procesor nie reagował na impulsy, tzn. występowały...
Witam, Napisalem program na atmega8 do regulatora dwukierunkowego, którego schemat można znaleść tutaj. [url=]Link Licznik pracuje z zegarem 8Mhz i prescalerem 64. Czyli licznik powinien zapelnić sie minimalnie po 2ms. Sygnał z odbiornika trwa od 1ms do 2ms. Najpierw zliczam czas impuslu. W zależności od wartosci zliczonego czasu impulsu daje atmega...
Teoretycznie masz te 250Hz, chociaż co do stabilności tej częstotliwości z użyciem WAITMS i zewnętrznego kwarcu bym polemizował... Można to było też zrobić na Toggle Portd.0 i wykorzystać jeden raz Waitms 2 tylko wtedy czas pętli dwukrotnie trzeba wydłużyć żeby 1s była. Najlepiej to skonfiguruj sobie wewnętrzny timer jako czasomierz (na elektrodzie...
Witam, potrzebuje prostego programu który zliczy ile razy na sekundę wciskany jest przycisk. Np na jednym z portów pojawi się 0 kiedy przycisk zostanie wciśnięty, program ma zliczyć ilość impulsów przez sekundę i zwrócić daną do zmiennej. Proszę o pomoc lub podpowiedź. Niestety jestem początkujący i niezbyt rozumiem Liczniki-Czasomierze Timer0 i Timer1....
Bo niestety muszę zegarek rozbierać No niestety w tym trybie nie uzyskasz stabilnej sekundy, tym bardziej, ze Bascom w obsłudze przerwania może robić zbędne bzdury i jeszcze nie raz ten zegarek będziesz rozbierał. Do konstrukcji czasomierza najbardziej się nadaje asynchroniczny licznik Timer2 w trybie CTC, taktowany specjalnym rezonatorem kwarcowym...
Witam! Pierwsze kroki z uC, czyli próba stworzenia zegara matki dla czasomierza podobnego do $regfile = "m8def.dat" $crystal = 2000000 Config Pind.0 = Output Config Pind.1 = Output Config Timer1 = Timer , Prescale = 64 Dim Licz_2s As Byte Dim Parz As Bit Enable Interrupts Enable Timer1 Load Timer1 , 62500 Licz_2s = 0 Parz = 0 Do Loop End Odmierz_1m:...
Wartości wysyłam po USARCIE na terminal, same operacje wypisywania po USARCIE działają poprawnie, tak jak wspominałem dla jednego kanału działało znakomicie w innym rozwiązaniu. Zminimalizowałem kod i ograniczyłem się do jednego kanału, przerwanie od przepełnienia również w całości wywaliłem. Pomogło również wpisanie: [syntax=c]MCUCR = 0b1000; //MCUCR...
Ludzie to potrafią sobie utrudniać życie, gdy gotowe mikroprocesorowe rozwiązanie jest na wyciągnięcie ręki, i do tego często tańsze w wykonaniu niż analogowe. Sam wykonałem analogowy dwu stopniowy czasomierz do zgrzewarki i nie jestem w stanie wykonać na nim w pełni powtarzalnych zgrzewów ze względu na fakt że nie da się ustawić dokładnie czasu.
Piotr5000 , gdyby chodziło o jesden sterownik, niema problemu, moge poświęcić tydzien na kalibracje kwarcu, ale dla stu potrzebne jest inne rowiązanie. Jeśli dla 100 urządzeń.. to zależy.. jak mają ze sobą jakiś "kontakt" np. LAN, WiFi lub inne .... to może zainwestować w jeden dokładny czasomierz i zrobić NTPSerwer dla tego projektu...
Witam. Mam pewien problem żeby na tym mikrokontrolerze zrobić czasomierz. Gdy napisze w bascomie działa ok, ale jak w WinAVR to już nie. #include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> SIGNAL (SIG_OVERFLOW0) { PORTD = ~PORTD; } int main(void){ DDRD=0xff; PORTD=0xff; TIMSK = _BV(TOIE0);...
EDIT. Po wielu godz. rozwiązałem wszystkie problemy. Poniżej umieszczam program napisany pod ATmege 328P(inaczej niż w temacie), gdyby ktoś budował coś podobnego i temat zamykam. [syntax=cpp] #define F_CPU 16000000uL #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <stdlib.h> #include <stdint.h>...
Projekt zostal zrealizowany w lutym ubieglego roku. Jest to zegar na lampkach nixie typu Z566M (cyfry) oraz Z567M (+,-,~) produkcji RFT, pochodzacych ze starego czasomierza laboratoryjnego produkcji polskiej. Sercem ukladu jest mikrokontroler ATMega8. Wysterowuje on poprzez 2 dekodery tranzystory MPSA42 i MPSA92 - realizowana jest multipleksacja, w...
Lecz jeśli jest to wystarczające może mierzyć kanały kolejno. Jeden po drugim. Tak, ale kolega chce uzyskać dokładność 1 obr/min , oraz jak kolega pisze mają być jednocześnie wyświetlane, mierząc kanały kolejno w danej chwili brany pod uwagę jest tylko jeden czujnik. Jeszcze taka uwaga, o jakich prędkościach mówimy? Dla małych prędkości obrotowych...
Kolejny mój projekt, który chciałbym zaprezentować to użyteczne narzędzie w procesie wykonywania płytek drukowanych w oparciu o metodę fotochemiczną z zastosowaniem emulsji światłoczułej POSITIV 20. Poprzednie projekty służyły naświetlaniu pcb. Ten projekt to piecyk do wygrzewania płytek po uprzednim naniesieniu emulsji. Piecyk zdecydowanie przyspiesza...
Mikrokontroler to układ scalony zawierający w swej strukturze między innymi procesor, pamięci, liczniki-czasomierze, przetwornik analogowo-cyfrowy, komparator napięcia i porty (końcówki), którymi steruje w zależności od wyniku wykonania programu. Końcówki służą także do przyjmowania informacji z zewnatrz. Układ jest cyfrowy więc sygnały na końcówkach...
Święta coraz bliżej. Często na zewnątrz wieszamy lampki choinkowe. Te albo świecą ciągle, albo mrygają niemiłosiernie. Najgorsze są te które niedość że mrygają, grają jeszcze oklepane melodyjki za pomocą blaszki pizeo. Coś efektowniejszego przeważnie kosztuje troche więcej, a sterownik przeważnie nie jest przystosowany do pracy na "świeżym powietrzu"....
Na pierwszy rzut oka widać że popełniłes błąd w kolejności zapisu do rejestrów TH0 i TL0 w procedurze obsługi przerwania. Zamieniajac te instrukcje juz zmiejszasz błąd Rzeczywiście błąd zmniejszył się o ok. 2s na 12 godzin, podczas gdy bez tej modyfikacji błąd wynosi 9s. no to już jest nieźle;). Błedem jest zastosowanie tego trybu timera, jesli licznik...
Ok posiedziałem ciut, poczytałem w necie jak się używa te Timery i ich przepełnienia . Powstał taki oto kod .Proszę wyświetlacz traktować jako pomoc pokazującą mi ile już wystąpiło przepełnień, zresztą bardzo fajnie to pokazuje. Ramowa zasada jest taka - programik ma zliczać przepełnienia do 2108 i się zatrzymać po osiągnięciu tej sumy(wstępnie ta wartość...
Witam !! Napisałem program na sterowanie pilotem. Nie działa mi set Led_2. Przycisk 2 z pilota wykonuje warunek ale nie setuje portb.2 ? Co jest [syntax=c] $regfile = "m8def.dat" 'rejestry mikrokontrolera atmega8 $crystal = 8000000 'częstotliwość taktowania mikrokontrolera $baud = 9600 Config Portb = &B11111111 : Portb = &B00000000 'cały portB jako...