Ja bym to jednak zrobił tak jak wynika z twojego opisu programu bascomowego. Czyli timer na 8kHz, w przerwaniu timera odczytujesz ADC i startujesz kolejną konwersję. ADC musi być tak ustawiony, aby skończyć konwersję przed kolejnym przerwaniem timera, co nie jest problemem. Dzięki temu masz gwarancję, że przy każdym przerwaniu timera (z wyjątkiem pierwszego)...
Jak kolega umie na 8 bitach pokazać 77.125 to będzie się dało;) Nie da się.
Witam! Potrzebuję zmienić TIMER1 do obsługi PWM na TIMER2 ktoś pomoże? ATMEGA32 BASCOM
Natomiast jak timer2 inicjuje: I prawidłowo, ponieważ 32768/Preskaler/(OCR+1)=16384. Zastanawiam się, po co Ci przerwanie co 1 takt Timera2 napędzanego kwarcem zegarkowym :?:
Tu nie ma żadnej filozofii. Ja co prawda programuję na ATmega16 i procedura wygląda tak: void generator_PWM(unsigned int wypelnienie) { TCCR2 =0x69; //tryb FAST PWM, bez preskalera, zeruj OC0 gdy porownanie = TRUE; f = 16M/256 = 62,5kHz OCR2 = wypelnienie; //wartosc porownywana 0..255 } Jak zrobiłeś PWM na ATmega32 to z tego co wiem...
Te procesory się aż tak nie różnią. Dodatkowe funkcjonalności pinów nie przeszkadzają w niczym dopóki ich nie uruchomisz. (PCINT - Pin Change Interrupt trzeba wiedzieć jak włączyć). Jest duża różnica jeśli chodzi o Timery właśnie. Mega8 ma na przykład tylko jeden rejestr Compare dla Timer2 dlatego inaczej się nazywają. Opisałem to u siebie na stronie...
Co do wykorzystania ATTiny jako RTC to pomysł ogólnie jest ok, ale lepsza w tym przypadku była by jakaś ATMega, w której to Timer2 może pracować w trybie asynchronicznym z kwarcem 32kHz. Takie rozwiązanie w uśpieniu pobiera ok. 5-10uA, więc czas życia baterii będzie stosunkowo długi, na pewno ponad rok pracy na baterii 2032 da się uzyskać (sprawdzone...
Tak, przy czym jeśli ISR jest wywoływany co 1ms, to wystarczy po prostu inkrementować zmienną timer0_milis, bez tych cudów, które masz.
Myślę, iż po sprawdzeniu sprawy dowiemy się prawdy na forum. Wie Kolega, nie, zrobię to w ścisłej tajemnicy, tak żeby nikt się o tym nie dowiedział. 1. Podany na samym początku kod kompiluje się BEZ BŁĘDÓW w Bascomie 2.0.7.6 2. Ponadto - rozmawiamy od ATMega32, tymczasem w kodzie załączonym w 1. poście regfile podany jest dla ATMega644p - a to zupełnie...
A gdy by taktowanie było 12MHZ ? Albo jakaś alternatywa, czy tylko w atmega32 można użyć tych 4 nóżek do sterownia serwem ? Bo w programie docelowym będzie jeszcze UART i timery programowe: [syntax=c] void soft_timers_init( void ) { TCCR2 |= (1<<WGM21); TCCR2 |= (1<<CS22)|(1<<CS21)|(1<&l... OCR2 = 108; TIMSK = (1<<OCIE2);...
teraz jak widać 2 sekundy - manipuluję wartością przepełnień zmiennej Licznik_sd - pomiędzy 58000 a 60000 Załadowanie wartości 6 do Timer2 powinno się odbyć tylko na początku ? Config Timer2 = Timer , Prescale = 64 ' 1 sekunda = 500 Timer2 = 6 On Timer2 Czas '250 x 8us = 2 ms , 256 - 250 = 6 Enable Interrupts Enable Timer2 Z Atmega32 nie miałem takich...
na podstawie flagi z przerwania INT2 na początku pętli głównej wchodzić w uśpienie. Ale pętla główna jest wykonywana powiedzmy 0.5 sek. Co sekundę wykonywane jest przerwanie od Timer2. Więc procesor będzie w uśpieniu tylko ok. 50% czasu. Ale problem z długim wykonywaniem się pętli głównej wystąpi tylko za pierwszym razem po zaniku zasilania (ustawienie...
Możesz także wykorzystać kwarc tzw zegarkowy 32,768kHz podłączając go do Timer2 (piny TOSC1 i TOSC2) w trybie asynchronicznym.
1Hz to raz na sekundę. 8MHz to osiem milionów razy na sekundę. Sekunda jest tu kluczowa. W ciągu sekundy procesor taktowany 8MHz przetworzy około 8mln instrukcji (pomijam te które wymagają dwóch taktow) no a jak podłączysz do procesora taktowanie 16MHz to odwali dwa razy tyle roboty w ciągu sekundy . Zerknąłem na twoje kody i mam kilka rad. W Bascom...
Witam. Potrzebuję napisać funkcję która zainicjalizuje Timer w Atmega32 (asynchroniczny) tak, by działał z zewnętrznym kwarcem 32,768kHz podłączonym pod TOSC1/TOSC2. Timer ma zgłaszać przerwanie co 1 sekunde. W przerwaniu powinien zmieniać stan diody na pinie PD0 na przeciwny. Proszę o pomoc w napisaniu kodu . Przepisz dokładnie to samo co napisałeś...
Dodałem to tylko dlatego aby sprawdzić gdzie i kiedy resetuje się procesor. Bez łańcuchów nie wiedziałem gdzie i co się dzieje bo otrzymywałem tylko ATMega32 UART test Dokonuje pomiaru ATMega32 UART test Dokonuje pomiaru ATMega32 UART test Dokonuje pomiaru TIMER2 Liczy mikrosekundy jak długo trwa echo z HC-SR04 i po jego ponownym uruchomieniu następuje...
Ok, wracając do tematu to spłodziłem coś takiego i wygląda na to, że działa. Mcucr = &B00000100 On Int1 Pomiar_impulsu Pomiar_impulsu: If Pind.3 = 0 Then Start Timer2 Else Stop Timer2 Czas_impulsu = Timer2 Timer2 = 0 End If Return Dzięki za pomoc Piotr
ATMega32 to moim zdaniem dobry wybór, dużo pinów - możesz dużo ledów podłączyć ;) I2C, SPI, UART, Timery w tym ważny Timer2 więc wszystko co potrzeba, by zacząć miło zabawę z tą rodzina uK. Albo to samo z USB czyli ATMega32U2 ..4.
Timer0 - jeden kanał: OC0 - PB.3 Timer1 - dwa kanały: OC1A, OC1B - PD.5, PD.4 Timer2 - jeden kanał OC2 - PD.7 Racja zapomnialem, ze atmega32 ma 4 pwm, a nie 3 jak atmega8 :P
Witam! ATmega32 16MHz jako slave odbiera dwa bajty po SPI 1MHz ( 15cm taśmy 10 żyłowej )od mastera LPC2148 . Jeżeli jest włączone tylko SPI, a inne przerwania są wyłączone jest wszystko dobrze. Jeżeli włączę przerwanie od timera2 generowane co 100us to zdarza się że atmega gubi jeden bajt i krzaczy się cała transmisja, ale po jakimś czasie jak zgubi...
Witam. chce zbudować urządzenie które będzie mierzyło prędkość obrotową turbiny i kilka innych rzeczy jak na razie utknąłem z pomiarem prędkości. układ opieram na scalaku Atmega32 do pomiaru prędkości wykorzystuje czujnik hala i magnes zamontowany na wałku (aktualnie wiatraczku komputerowym do testów) Program wygląda w ten sposób że chciałem mierzyć...
To może dość krótka procedurka pozwalająca zbudować ciało zegarka RTC np. w układach ATMega8/88/16/32 ; ========================================... ; procedura wywoływana przez TIMER2 co sekundę (praca ASYNC) ; zliczanie odbywa się w kodzie BCD, można łatwo wyłuskiwać ; kody wyświetlanych cyfr przez proste operacje na półbajtach...
Przy użyciu timera2 i trybu CTC chciałem uzyskać przebieg prostokątny o częstotliwości 10Hz. Czy dobrze dobrałem wartość OCR2, aby uzyskać taką częstotliwość? Nie wygląda abyś to zrobił poprawnie i otrzymał spodziewany effekt. Po pierwsze: Jeżeli wyjście kierujesz na pin PD.7, który jest skojarzony z wyjściem Timera2 (OC2) nie ma potrzeby stosowania...
"Ktoś ma jakiś pomysł, żeby to rozwiązać? Może ktoś ustawiał RTC na innej atmedze i mu działał?" Kiedyś robiłem na Atmega32 , i działało . Rożnica taka , że w A32 timer pracujący z oscylatorem zewnętrznym to Timer2 ASSR = 1<<AS2; TCCR2 = 1<<CS22 | 1<<CS20; TIMSK = 1<<TOIE2;
Witam, Mam problem z pomiarem czasu trwania impulsu. Próbowałem różnych sposobów, siedzę już nad tym 3 dzień i nic mi nie wychodzi. Na wejście INT0 atmegi32 podaję sygnał np. 30Hz i wypełnieniu 15%. Sygnał jest stabilny więc tutaj problem odpada. Potrzebuję zmierzyć czas trwania stanu wysokiego. W programie który stworzyłem na wyświetlaczu wyświetla...
Czy i który timer wykorzystuje 1wire. Chce wyorzystać jeden timer do cyklicznych przerwań, ale jak wykorzystam timer 0 lub timer 1 wysiada transmisja 1wire. ATmega32 nie ma wbudowanego interface 1wire, wiec nie rozumiem problemu, a wróżyc tylko mogę, że o bascom się rozchodzi... Stawiałbym na niezbyt szczęśliwą obsługe przerwań przez Bascom (zapisuje/odczytuje...
Witam! Programuję w BascomieAVR układ ATmega32 do obsługi węwnętrznego zegara RTC oraz miltipleksacji sześciu wyświetlaczy. Chciałem się zapytać czy dokładność wewnętrznego zegara RTC (kwarc 32.768kHz), który uruchamiam komendą: Config Clock = Soft, zależy od przerwań TIMER0, które odpowiedzialne są za multipleksację wyświetlaczy?? Rozumiem, że jeżeli...
Witam Mam układ na Atmega32, który mierzy kilka parametrów ( temperatury, wilgotność, ciśnienie ) i zapisuje na karcie SD. Timer0 wykorzystuje do włączania flag Timer1 w trybie PWM do sterowania jasnością, na podstawie wartości odczytanej z czujnika światła Timer2 jest potrzebny do zapisu na karcie SD Chciałem uruchomić odbiór RC5 ( odbiornik jest na...
Ad 1 i 3: Jeśli pytasz o ATmega8, to timerem asynchronicznym jest (jak napisałem powyżej) Timer2. Posiada on dedykowany temu kwarcowi (32,768kHz) oscylator. W przypadku tego mikrokontrolera niestety piny XTAL i TOSC są tymi samymi pinami. W innych przypadkach np. ATmega32 piny te są wydzielone więc można dwa kwarce podłączyć. Szczegóły w tym zakresie:...
Witam, zbudowałem klasyczny zegar, tak jak w temacie napisałem na ATmega32, Chińskim module z układem DS1307 i z jakąś pamięcią na I2C której nie używam, czas pokazywany jest na wyświetlaczu LED. Wcześniej testowałem sobie to wszystko z wyświetlaczem LCD 2x16 HD44780 wszystko śmigało mi super. Po dodaniu LCD i multipleksowania zegar po kilku, kilkunastu...
Łap, bo jak się długo męczy temat a efektów nie widać to można popaść w depresję a tego nie chcemy :D Tego LM293 to kupiłem chyba ze dwa lata temu i tak sobie leżał bo używam innych driverów, ale pomyślałem, że się może kiedyś przydać. No i się doczekał :D Nie wiem jaki jest ten Twój silniczek, ale mój pochodzi z Walkmana. Pump up the volume żeby usłyszeć...
na bascomie sie za dobrze nie znam, timery mam juz wykorzystane w programie tak: Config Timer0 = Counter , Edge = Rising Config Timer1 = Timer , Prescale = 64 Config Timer2 = Timer , Prescale = 1 napisales by ustawic timer tak by odliczal sekunde ale nie wiem jak to zrobic(?) i dlatego nadal szukalem prostszego rozwiazania... moze da sie cos wykompinowac...
Jeżeli dobrze pamiętam, możesz podłączyć kwarc 32768Hz do MCU i używając Timer2 stworzyć niezależny od taktowania procesora zegar RTC. Przykładów szukaj w którejś z not na stronie Atmela. Dodano po 3 AVR134 http://atmel.com/dyn/resources/prod_docu... http://www.atmel.com/dyn/resources/prod_...
Bardzo dziękuję za te informacje. W przyszłości będę to rozbijał na dwie linie(zerowanie i ustawianie bitów rejestru). Tymczasem, po przeczytaniu datasheet, a konkretnie sekcji dotyczącej Timer0 i Timer2, stwierdziłem, że mogę po prostu wpisać jedną liczbę do np. rejestru TCCR0. Np TCCR0 = 0b00001111. To powinno spowodować włączenie pinów 7:4 jako wejścia...
Hmm, czy ATmega32 na pewno ma timer3? Rzecz w tym, że mam już gotowy układ, w którym są wykorzystane nóżki procka OCR1A i OCR1B (outputy timera1) - gdybym teraz do PWM wykorzystał inny timer, musiałbym wprowadzać zmiany w układzie, czego chciałbym uniknąć (a do tego timer2 też mam zajęty, a silniki są dwa). Mówisz, że logiczne jest, że praca timera...
Witam, Mam taki problem. Chcę wysyłać do PC informację w formie takiego temp1;temp2;f1;temp3 i coś jeszcze. Jak wysyłam informację to chcę żeby ona była raz wyświetlana powiedzmy co ok 1-2s a nie tak jak na screenach pod kodem. (to jest losowe). Co może być nie tak. Timera2 używam jako odmierzacz czasu a timer0 do pomiaru częstotliwości (na 555) $regfile...
Ja osobiście jak narazie pisze w Bascomie. W Bascomie wygląda to tak: Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1 ' Konfiguracja Timera1 dla Pwm1a i Pwm1b Config Timer2 = Pwm , Async = Off , Pwm = On , Compare Pwm = Clear Down , Prescale = 1 ' Konfiguracja Timera2 dla Ocr2 Config Pinb.3 = Output...
Witam! Dopiero zaczynam zabawę w Bascom-ie, wiec proszę o wyrozumiałość. Zbudowałem układ na Atmega32, 4 kanały PWM do sterowania RGB+biały. Jeden klawisz do zmiany programów, LCD (do sprawdzenia co się dzieje) oraz czujnik oświetlenia na fototranzystorze. Co chciałbym zrobić: -klawiszem zmieniamy programy (różne kombinacje kolorów) -czujnik oświetlenia...
Witam Mam problem z moim układem. Przy pomiarze ADC w moim układzie wyskakuje mi cały czas wartość w okolicach 60 (zakres ADC do 1023). Obojętnie co podaję na wejście cały czas mam tą wartość. Jeżeli jednak dokonuję pomiaru miernikiem to mam odpowiednie napięcie, np 2,5V. Jednak co ciekawe, jeżeli podam te napięcie bezpośrednio na nóżkę w płytce prototypowej...
Witam serdecznie. Mam taki oto problem. Zbudowałem sterownik do centralnego ogrzewania sterujący elektrozaworem i pompą w zależności od temperatury w bojlerze i na piecu. Problem jest taki - po chwili pracy (nieregularnie) resetuje się. Ktoś ma jakiś pomysł? Napięcie zasilające jest dobre. Program w bascomie: '---------------------------------------...
Witam Zawsze bawiłem się z atmega32 ale od do projektu potrzeba mi 6 kanałów PWM 16bit (sterowanie 2 serwa i 4 regulatory z rewersem). Zastosowałem atmega128 T1 i T3 . Wszystko było było by OK ale na kanale OC1C jest brak sygnału , zapewne banalne rozwiązanie ale jakoś nie mogę zatrybić nadajnika: [syntax=vbnet]$regfile = "m32def.dat" $crystal = 16000000...
Witam Mam Atmega32A + PCF8563 + PCF8574 + RFM12 + DS18B20 +DHT11. Port danych LCD to Port.A, ControlPort to Port.C. I2C standardowo na Portc.0 Portc.1. Niestety jest problem z obsługą I2C, tzn. zegar PCF8563 nie działa w ogóle ( na LCD puste pole ) , a klawiatura na PCF8574 - tylko jeden klawisz i to nie ten, który jest przypisany w kodzie ( działa...
Witam Mam program budzika, który jako dodatkową atrakcję miał mieć możliwość mówienie czasu na żądanie i odtwarzanie oprócz buzzera utworu jako alarmu. Atmega steruje przez jedno SPI programowe układem MAX7219, a przez konwerter poziomów i drugie SPI programowe odtwarzaczem WTV020SD. O ile sam WVT020SD + PCF8563 ( wyjście CLK do INT1 ) działają dobrze,...
Całkowicie zapomniałem o temacie :) Z problemem poradziłem sobie w następujący sposób, jest to wycinek z większego programu więc coś może być źle wycięte :) [syntax=c] //--------------------------------------... // Dołączone biblioteki //--------------------------------------...
Witam, Wybrałem przerwanie wyzwalane wejściem ICP Timera1 ponieważ - załatwia mi to 2 rzeczy od razu. Po pierwsze obsługa IR działa ładnie na przerwaniach i nie zajmuję żadnego z wejść INTx, po drugie od razu zużywam ten sam timer. Jeśli chodzi o kod obsługi ramek IR - to pewnie, że obsługuje on tylko poprawne ramki i jest odporny na te "uszkodzone...
Program skrócony, żeby mierzył tylko prędkość i dystans http://obrazki.elektroda.pl/3747501700_1... W załączniku schemat w PDF i SCH (eagle)
Tylko proszę mi podpowiedzieć, czy dobrze rozumiem nazwy kanałów i ich timerów Timer0 - Pwm0 Timer1 - Pwm1a, Pwm1b Timer2 - Ocr2
Ale mieszasz. Ustawiłeś dwa cykliczne przerwania i dziwisz się, że coś nierówno miga. Tu w avr nie ma wielowątkowości sprzętowej i jedno przerwanie przeszkadza drugiemu. Przenieś i wyłącz to przerwanie to co masz w ISR(TIMER2...) do ISR(TIMER1...) . Idea programowego PWM i timerów jest właśnie w tym aby działało wszystko pod jednym wspólnym cyklicznym...
To co dawid512 napisał jest najprawdopodobniej na atmega32. Musisz poczytać dokumentację i zmienić ten kod, gdyż timer0 na atmega8 ma trochę mniejsze możliwości. [dodano] Można też skorzystać z timer2, jego obsługa będzie łatwiejsza.
w nowym kodzie robiłem toglebit na porcie na którym była kiedyś IRDA... a może nie może tylko na porcie np. portc.2 myślałem że o to chodzi. nie dokładnie to określiłem w zdaniu albo pomieszałem nazwy funkcji rzeczywiście.. gdzieś się zapodziało.. musiałem skasować przez pomyłkę.. teraz działa poprawnie wielkie dzięki.. Dodano po 9 za to przyciski od...
atmega32 timer2 bascom timer2 atmega32 przerwania timer2
bezpiecznik zasila konwerter wydajność transformatora citroen nawigacja aktualizacja
philips klepsydra xf9005 problem
Klakson Nissan Micra K13 – lokalizacja pod lewym reflektorem, dostęp i wymiana Audi A4 B8 2.0 TDI nie odpala po wymianie pompy paliwa