(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. Nie tylko...
U mnie (Katowice) z DCF77 nie ma problemu, oczywiście zdarza się, że przez jakiś czas nie działa, ale przecież nie musi - wystarczy że złapie sygnał od czasu do czasu. Z tego co zauważyłem, to strasznie przeszkadza w odbiorze DCF77 komputer. Kiedy miałem zasilane układy przez USB to generalnie był problem, gdy je zasilałem osobno - z sieci lub z baterii...
Po 1) użyj znaczników [code]... Po 2) funkcje inline _delay_us i _delay_ms muszą być wywoływane z argumentami o wartości znanej w trakcie kompilacji (stałe) - było o tym wielokrotnie na forum. [url=http://www.nongnu.org/avr-libc/user... Po 3) co do inline asm to zobacz [url=http://www.nongnu.org/avr-libc/user...
Robi się to prosto na wejściu ICP Atmegi, mierzysz czas pomiędzy kolejnymi zboczami, raz jest opadające, raz narastające itd.. potem to tylko interpretacja wyników, liczenie bitów i po odliczeniu 64 bitów z transmitowanych 66, bo dwa ostatnie dla uproszczenia procedury pomijasz. wyświetlasz na LCD lub wysyłasz po RS232 do komputera, a tam wyświetlasz...
Czas/impuls czy impuls/czas to jest tylko kwestia programowa, zależy czego potrzebujemy. Ja do obliczania z tego prędkości musiałem użyć dzielenia wielobajtowego, ale niestety to było jedyne rozwiązanie, gdyż pozostałe dwa liczniki użyłem do załączania pasm w generatorze SRG. Dzielenie wielobajtowe zajmuje strasznie dużo czasu (ok. 700 cykli zegarowych...
Witam, W dokumentacji dowolnego mikrokontrolera ATmega z łatwością można odnaleźć tablicę z wektorami przerwań, np. taką: 1 $0000 RESET 2 $0002 INT0 External Interrupt Request 0 3 $0004 INT1 External Interrupt Request 1 4 $0006 INT2 External Interrupt Request 2 5 $0008 INT3 External Interrupt Request 3 6 $000A INT4 External Interrupt Request 4 7 $000C...
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...
Witam, sytuacja wygląda następująco: chce zrobić PWM'a w przerwaniu TOV1, który sterowany jest z ADC. Problem polega na tym, że kod, który jest w tym przerwaniu nie powoduje żadnej zmiany na wyjściu PWM, jeżeli przenoszę kod do pętli nieskończonej wszystko chodzi jak należy i nie wiem dlaczego to w przerwaniu nie działa. Ponad to, gdy w przerwaniu tuż...
Dziękuję wam za wszystkie odpowiedzi wiele mi to pomogło jednak ciągle mam problem. Jest lepiej bo coś tam już widać ale jeszcze nie jest ok. Zaznaczam na początku że nie mam należytego sprzętu aby zrobić to jak należy jednak zanim zainwestuję w mikrokontroler taktowany 25 Mhz chcę mieć już jakiś wstęp na sprzęcie który posiadam a posiadam Atmegę16...
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...
Jak to nic nie podłączone ? A jak ma uc odbierać kody z pilota jeśli nie na ICP ? This program works by connecting the Data output from the IS1U621 to the ICP ' Pin of the AVR and then uses the Capture1 interrupt to measure the time ' between each bit to know if it is a 1 or a 0 and then uses Compare1a interrupt ' to detect that there has not been a...
A w pliku "m8def.inc" stoi: .equINT0addr=$001; External Interrupt0 Vector Address .equINT1addr=$002; External Interrupt1 Vector Address .equOC2addr =$003; Output Compare2 Interrupt Vector Address .equOVF2addr=$004; Overflow2 Interrupt Vector Address .equICP1addr=$005; Input Capture1 Interrupt Vector Address .equOC1Aaddr=$006; Output Compare1A Interrupt...
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...
Mam problem z tym call i ret mam taki kod: ldi R16, 0x00 Co jest źle? W przypadku procesorów AVR zawsze na sam początek musisz ustawić stos w odpowiednim miejscu w pamięci programu. Praktycznie każdy program więc zaczyna się (dla atmega32) od rozkazów ustawiających stos. Za manualem str 45: Address Labels Code Comments $000 jmp RESET ; Reset Handler...
Prosty program na AVRStudio : #include <m16def.inc> ; Prohibits use of non-implemented instructions (ATmega16) .dseg .org SRAM_START .cseg ;—————R...
#include <mega128.h> #define RXB8 1 #define TXB8 0 #define UPE 2 #define OVR 3 #define FE 4 #define UDRE 5 #define RXC 7 #define FRAMING_ERROR (1<<FE) #define PARITY_ERROR (1<<UPE) #define DATA_OVERRUN (1<<OVR) #define DATA_REGISTER_EMPTY (1<<UDRE) #define RX_COMPLETE (1<<RXC)...
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...
Witajcie! Robię bibliotekę mającą w zamyśle być modułem do I2C slave, z użyciem atmegi 128A. Wyizolowałem najmniejszą możliwą część błędu który doświadczyłem, może ktoś z Was będzie miał pomysł co może być przyczyną. Żebyśmy wiedzieli o czym dyskusja, kod programu: avr-g++ -O0 -std=gnu++1y -Wall -Wextra -Winline -mmcu=atmega128a Testowałem również z...
Sluchaj - krotka pilka - masz do dyspozycji trzy przewody - masa, zasilanie i sygnał. Zasilasz to z 5V. Odpalasz PWM na atmedze i sygnał zapinasz na pin od PWM atmegi np OC1A. Sterowanie polega na zmianie wypełnienia impulsu :) Realizujesz to w atmedze przez PWM oczywisccie :) U mnie smiga cos takiego: #include "naglowkowy.h" void Serwo_init(void)...
Witam, złożyłem płytkę, napisałem kod i coś nie działa, narazie podam kod bo płytka śmiga byłbym wdzięczny za sugestie co jest nie tak że to nie chce działać, kod zbudowany po części w CodevisionAVR. Wyświetlacz jest na wspólnej Katodzie stąd mój wniosek że aby zaświecić jakiś segment muszę wysłać 0 na pin, a aby go zgasić 1. Jeżeli źle myślę to poprawcie...
Witam, pisze program w assemblerze który pozwarciu INT0, będzie wykonywać określoną czynność(łączyć się z innym urządzeniem), Ale narazie utknąłem w martwym punkcie, napisałem program który po zwarciu INT0 wywołuje przerwanie które zapala diodę podpiętą do lini PC0 5 razy i gasi(zapalenie uzyskuje poprzez ustawienie PC0 w stan wysoki). Całość funkcjonuje...
Zainstalowałem AVR Studio4 i lecę od początku z google i pdf na temat ASM i AVR Powiedzcie chociaż czy w dobrym kierunku zmierzam? Bo jak w złym to odpuszczam i daje sobie spokój, pobawię się migającymi diodami w Bascomie. Tam gdzie nie ma komentarza to nie wiem co to znaczy i co robi ale było w pdf lub innych opisach, jeżeli ktoś może mi wyjaśnić instrukcje...
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?
Łap. Napisałem przy kubku kawy i najdłużej to organizowałem się do zdjęć :D To prosty kodzik i zawsze można coś poprawić. Niemniej, co widać na fotach, mierzy częstotliwość, wypełnienie oraz pokazuje czasy stanów Hi/Lo ;) Może się komuś przyda :P http://obrazki.elektroda.pl/4849788600_1... http://obrazki.elektroda.pl/2015178300_1...
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. Jestem początkującym w dziedzinie programowania na elektronice znam się dobrze. Chciałbym zbudować komputer pokładowy do mojej hondy civic i znalazłem na elektrodzie projekt z pod tego linku. http://www.elektroda.pl/rtvforum/topic22... Płytkę zaprojektowałem na nowo pod atmege128 reszta bez zmian. Wyświetlacz od Siemensa s65 ls020 podłączyłem...
Witam Napisałem prosty program używający timera1 i timera 2 do zliczania częstotliwości, Chciałbym użyć dodatkowo serwa do mojego projektu ale używając intrukcji Servo coś nie tak dzieje się z serwem . Po włączeniu zasilania ciągle pracuje i próbuje przekręcić się o 360 stopni "ciągle pracuje". Kiedy w kodzie spełniony jest warunek i uruchamia się komenda...
Pozwoliłem sobie uczytelnić kod dla pokazania jak można sobie ułatwić pisanie kodu - zmieniamy w jednym miejscu, a zmiany są uwzględniane w całym kodzie... Daje to bezbolesną możliwość dowolnego przepięcia linii sygnałowych pod inne wyprowadzenia µC przy minimalnych zmianach w kodzie (podobnie jak w językach wyższego poziomu). #include <m16def.inc>...
Może najpierw zacznę od tego co muszę zrobić. Potrzebuję generatora impulsów PWM, ma mieć kilka częstotliwości do wyboru z góry zdefiniowanych, po wybraniu jednej częstotliwości i naciśnięciu startu wypełnienie ma się zmieniać powiedzmy co 5 sekund o 5%. No to czeka cię zabawa z opcjami Prescaler i Pwm . Bo będzie to najprostszy sposób dla Ciebie....
Zerżnięte z helpa : CONFIG TIMER1 = COUNTER , EDGE = RISING, CAPTURE EDGE = RISING , COMPARE A = DISCONNECT , COMPARE B = DISCONNECT -- Pozdrawiam, Daniel
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...
Witam, Chciałbym zaprojektować matrycę led 8x8 w której losowe (pseudolosowe) ledy przyciemniały się i rozjaśniały, nawet kilkanaście jednocześnie i żeby wszystkie równo nie przygasały, tylko to przemieszać trochę; tzn. jedna się rozjaśnia, druga się przyciemnia, no w różnych fazach, żeby były. Sterowanie PWM multipleksowanej matrycy zdaje się być...
Witam was wszystkich. W sumie chciałbym żebyście sprawdzili kod, który napisałem bo juz nie mogę znaleźć wyjścia. Kod to przepisywanie z 4 kanałów 8 bitowego ADC na kanały PWM. Problem w tym że nic na wyjściu PWM sie nie pojawia (nic tzn. stan wysoki). Żeby było prościej to powiem, że oddzielnie (program, który przepisuje tylko z jednego wyjścia ADC...
Tryby CTC w ATMega32 są dwa. Ustawiasz WGM12 w rejestrze TCCR1B i wpisujesz wartość końcową do OCR1. Albo wpisujesz WGM12 i WGM13 do TCCR1B i wpisujesz wartość końcową do ICR. A co z obsługą przerwania? Czy dobrze rozumuję, że wystąpi ono odpowiednio Output compare dla 0CR1 i Input capture dla ICR?
$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
ISR(INT0_vect) { ISR(TIMER3_OVF_vect) { TCNT3 = WARTOSC_PRZELADOWANIA; czas++;}} ISR(INT1_vect) {} Pomijając fakt że atmega16 nie ma timera nr3 ( tylko 0,1,2) ta konstrukcja wygląda dziwacznie :) skoro mam podłączony kwarc 16Mhz, to preskaler ustawiam na taktowanie zewnętrzne Taktowanie zewnętrzne wymaga fizycznego podłączenia sygnału taktującego z...
Jeśli jeszcze aktualne :) W ten sposób to obliczasz częstotliwość sygnału, a nie wypełnienie. Powinno być raczej: ts zawiera (bez konieczności przeliczania) czas trwania impulsu w mikrosekundach.
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...
Faktycznie, tryby fast-PWM mają swoje ograniczenia, już nie pamiętałem dokładnie. Robisz więc tak: Zegar rejestru podłączasz do OC1B. Ustawiasz tryb CTC, toggle OC1B on compare match. Do OCR1A wpisujesz 2047, lub 4095 - itp. wartość, aby uzyskać okres >= 2ms z wymagana rozdzielczością. Z tym, że najlepiej dobrać tak preskaler, aby częstotliwość taktowania...
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
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, 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:
Ktorykolwiek procesor wybierzesz, bedzie on mial swoje zady i walety. Co jest naprawde wazne, to sposob, w jaki wybrany procesor oprogramujesz. Aby wspomoc ten proces i ulatwic tworzenie programu, nalezy wybrac taki uklad by zwolnil nas z wnikania w funkcje niskopoziomowe. Znaczy to, ze im wiecej funkcji takich jak timery, uklady komunikacyjne, uklady...
Z timerem2 się pomyliłem, myślałem że jest 8 bitowy ;-). Przejrzałem DS i jak byk jest napisane: "Two 8- bit Timer/Counters with Separate Prescaler, one Compare Mode One 16- bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode" Atmega8 ma 2 wejścia zewnętrznego interruptu, INT0(PD2) i INT1(PD3), bramki są 4, jak "odpowiednio kombinować"...
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...
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...
Nawet jeśli jest tylko dołączone. Odpytywanie następuje co parę sekund a efekt bielenia ekranu mam za każdym razem kiedy nacisnę przycisk w celu załadowania nowego obrazka. A tu raport (wklejam na razie większość gdyż może Wam to coś ułatwi: Report : System_LCD_TOUCH PAD_rs485 Date : 04-17-2010 Time : 13:48:37 Compiler : BASCOM-AVR...
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×...
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ć...
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...
capture compare capture atmega atmega bascom compare
podłączyć transformator schemat linia długa samsung lodówka wentylator
Renault Scenic II - Samoczynne otwieranie szyby BMW X5 E70 3.0 2008 - Problemy z odpalaniem i LPG