w makefile definiujesz swoj 'nowy' tym procka, np ATMEGA8_EXT w folderze C:\WinAVR\avr\include\avr jest plik który zawsze jest dołączany gdy sie pisze program czyli "io.h" który jest odpowiedzialny za rozpoznanie typu procka i podłączenie jego biblioteki. dodaj linijke np.: #elif defined (__AVR_ATmega8_EXT__) # include <avr/iom8_ext.h>...
(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...
http://obrazki.elektroda.pl/9209500600_1... O tym, że większość padów do PEGASUSa często ulega uszkodzeniu, nie trzeba nikogo informować. I nie chodzi tu o uszkodzenia kabla czy też wtyczki, ale układu scalonego będącego w padzie. Zwykle uszkodzenie objawia się: * całkowitym brakiem reakcji na wciśnięcia klawiszy, * niedziałaniem niektórych...
Witam, bardzo proszę o pomoc. Zrobiłem układ na Atmega32 z podłączonymi diodami do całego PortuA, oraz do PortuB Pin2 (PB2) dekoder podczerwieni TSOP31236 (testowałem też na TSOP31238). Wykorzystać chciałem bibliotekę IRMP https://obrazki.elektroda.pl/6945425800_... a w załączniku spakowany cały projekt z plikami biblioteki irmp.
Dzień dobry. Usiłuję okiełznać przerwanie INT1 w AtMega 644P. Większość przykładów jest dla prostszych atmeg i stąd wynika mój problem. Po uruchomieniu na wyświetlaczu stale widnieje "interrupt" - czyli przerwanie jest stale włączone. Port przerwania INT1 - PA1 jest podłączony do przycisku zwierającego do masy. Program nie wchodzi do pętli głównej,...
Trzeba to sprawdzić w dokumentacji: http://www.atmel.com/dyn/resources/prod_... Na pierwszej stronie: Special Microcontroller Features – Power-on Reset and Programmable Brown-out Detection – Internal Calibrated RC Oscillator – External and Internal Interrupt Sources To tylko przykład - karta katalogowa atmega8.
W takim razie: w jak sposób i w którym miejscu następuje podłączenie głównego pliku irmp.c z poziomu irmp.h? W źródłach IRMP są przykłady jak używać z konkretną rodziną procków. irmp_get_data Powyższy plik mógłby być po prostu bazą dla twoich funkcji. Najważniejsze oczywiście jest to, że irmp.c musi być poddane kompilacji a potem linkowaniu. W tej...
http://obrazki.elektroda.pl/7218266900_1... Chronograf jest urządzeniem służącym do pomiaru prędkości obiektu. W najprostszej formie pomiar polega na wykorzystaniu dwu czujników, które będą „śledzić” obiekt, urządzenia do pomiaru czasu i interfejsu wyświetlającego wynik pomiaru. W niniejszym artykule zostanie przedstawiony...
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...
gdzie w nocie katalogowej można znaleźć informacje na temat priorytetów wykonywania przerwań, jeżeli wystąpią w tym samym czasie. The lower the address the higher is the priority level. RESET has the highest priority, and next is INT0 – the External Interrupt Request 0. The Interrupt Vectors can be moved to the start of the Boot Flash section...
Witam! Mam problem z popranym odbiorem danych. Kod wygenerowany przez kreatora jest przedstawiony na listingu. I teraz pytanie. Mam odebrać z odbiornika widomość o długości 154 bajtów. Wiadomość ta przychodzi co 1 sekundę i zaczyna się zawsze czterama takimi samymi znakami : (at)(at)Ha Próbowałem już robić to z pętlą, by odbierać 154 znaki, i potem...
Witam ponownie: Znalazłem w sieci taki link http://www.elenafrancesco.org/old/arduin... Projekt ten wydaje mi się bardzo prosty. Kod który tam podali to: [syntax=c] // #include <avr/delay.h> #include <avr/sleep.h> char tileset[]={ // 48 Zero 0, 0b01110000, 0b10001000, 0b10011000, 0b10101000, 0b11001000, 0b10001000, 0b01110000, //49...
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 :...
Witam, Ostatnio próbuję do swojej pracy magisterskiej zrobić komunikację bezprzewodową za pomocą 2 modułów nRF24L01+. Korzystam z tego kursu: http://gizmosnack.blogspot.se/2013/04/tu... Sprawdziłem działanie komunikacji uC z modułem nRF za pomocą SPI przy użyciu AVR Dragona. Działa bez problemu, wpisuje testową wartość do rejestru...
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...
.... W pętli głównej sprawdzam na okrągło bit 0 rejestru 0 układu ( sprawdzam flagę alarmu timera). .... "Additionally, a timer alarm can be programmed by setting the timer alarm enable (bit6 of the alarm control register). When the value of the timer equals a pre-programmed value in the alarm timer register (location0F), the alarm flag is set ( bit1...
Zmienne static są inicjowane przypisaną wartością tylko raz, na początku programu. Kolejne wejście do procedury obsługi przerwania nie powoduje ponownego przypisania im wartości; mają wartość taką, jak po zakończeniu poprzedniej obsługi przerwania.
Witaj, No to na zachętę przerwania od przycisku: http://www.protostack.com/blog/2010/09/e...
Dzień dobry Od dwóch dni walczę z obsługą TIMERA1 na Atmega2560 w przerwaniu external INT0. Na wejściu INT0 mierzę krótkie pakiety danych, cały jeden pakiet ma ok 8ms, gdzie najkrótszy bit ma ok. 40us Timer1 mam ustawiony na preskaler 8 (2Mhz), wejście INT0 mam ustawione na zbocze "Any" liczenie zaczynam od TIMERA1 = 0 W przerwaniu INT0 pobieram aktualną...
z tego co widziałem to nie konfigurujesz odpowiednich rejestrów odpowiedzialnych za zewnętrzna przerwania. zobacz do noty katalogowej musisz skonfigurować rejestry: External Interrupt Control Register A – EICRA External Interrupt Control Register B – EICRB External Interrupt Mask Register – EIMSK External Interrupt Flag Register –...
Coś takiego znalazłem. Co prawda na Atiny ale można przerobić. [syntax=c]// // Talking to ultrasonic sensor HC-SR04 with an ATtiny84, and // sending distance data using serial communications. // // electronut.in // #include <avr/io.h> #include <string.h> #include <util/delay.h> #include <avr/interrupt.h> #define F_CPU 8000000...
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...
mam maly problem.. zdarza sie ze moj układ oparty na ATmega 32 jakby sie zawieszał... wykorzystuje przerwanie zewnetrzne... // External Interrupt(s) initialization // INT0: On // INT0 Mode: Rising Edge // INT1: Off // INT2: Off GICR|=0x40; MCUCR=0x03; MCUCSR=0x00; GIFR=0x40; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x01; a w programie...
W nocie wyraźnie napisali, że zapis bitu do EIFR kasuje flagę. Kasowane jest także w chwili wejścia w przerwanie. Kasowania EIFR przez zapis jedynki używałem gdy stan tej linii zmieniał się w czasie obsługi przerwania a nie chciałem aby było wywoływane ponownie. Zmusiłeś mnie do wysiłku i w nocie znalazłem to: " When an INT2:0 bit is written to one...
Witam Mam płytkę z Atmega644P na której mam złącze SD.Gdy karta jest włożona to całkowity pobór prąd wynosi 220 mA, gdy kartę wyciągnę to spada do 140 mA. Dodatkowo Atmega się grzeje, gdy karta jest włożona, gdy ją wyciągnę to już nie. Karta jest zapisywana poprawnie. Inicjuje ją kodem jak poniżej: Schemat poprawiony Może jest tam błąd ? http://obrazki.elektroda.pl/8641795700_1...
Witam szanownych użytkowników, ............. Dodam jeszcze moje spostrzeżenie. W dokumentacji mikrokontrolera ATmega32 było, że należy ustawić piny INT0, INT1, INT2 jako wyjścia. Proszę o rady. Prawdopdobnie nie zrozumiałeś DS, albo nie doczytałeś do końca paragrafu. Zdaje się że twoje referencje odnoszą się do fragmentu DS poniżej: " The External...
To ześmy sie zgrali... Fusebit Extended P ustawiony na "1:Atmega128 Mode" Oki oki sorki, ale ja to tak bez nerwów :D . Czasami udaje mi się samemu rozwiązać problem zanim na forum ktoś odpowie, albo tematy pozostają bez echa, ajk np programowy SPI i AD7843. Naprawdę port zmienia stan, jak potraktuje się go normalnie jako wyjście, ale jako przerwanie...
Nie miałem za bardzo czasu ale wracam do nierozwiązanego problemu. http://obrazki.elektroda.pl/7699775600_1... http://obrazki.elektroda.pl/3826926900_1... Tak wyglądają screeny po wywołaniu programu CRCGEN. Pliki wgrane programatorem działają poprawnie a przez bootloader tylko ten krótki (choć po przemieleniu ma także...
dobra mam, rozumiem już wszystko, chociaż te diody dziwnie się zachowują, w pierwszym cyklu pali się pierwsza, następnie podczas świecenia pierwszej zapala się na sekundę trzecia, potem trzecia gaśnie i pierwsza pali się przez sekundę, gaśnie, zapala się druga, gaśnie, zapala się trzecia, potem normalnie pierwsza, druga trzecia zapalają się i gasną...
Bo użyłeś niewłaściwy rejestr do ustawienia zbocza. Patrz rozdział: 17.2.1. External Interrupt Control Register W efekcie nadal masz wybrane przerwania na: The low level of INT1 generates an interrupt request. Przy okazji pamiętaj o drganiach styków: http://mikrokontrolery.blogspot.com/2011...
#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)...
Męczę się z tym już chyba z tydzień i nie mogę dojść co jest nie tak, może za długo gapię się w ten kod :-/ Mam urządzenie, które komunikuje się z atmegą, sygnały CLK i DATA podłączam sobie do wejść INT0 i INT1. W sumie to wymagane jest CLK <-> INT1, reszta to zaszłość ... Wprowadzam atmegę w tryb powerdown i czasami nie chce się ona wybudzić....
Witam Mimo, że większość proponowanych tutaj rozwiązań podłączenia RFM12 do Atmegi wykorzystuje SPI programowe, ja podłączyłem tradycyjnie, przez SPI sprzętowe - mimo, że nie miałem problemów z wgrywaniem kodu do Atmegi spiętej z RFM12, to uruchomienie ich razem jest problematyczne ( każde osobno działa bez problemu ) [syntax=basic4gl] $include "Config_AVR-DOS.BAS"...
Witam, Mam polutowaną płytkę wg powyższych wskazówek, program jak wyżej. Procesor ATMega 644, kwarc 16MHz, karta SD 256MB (lub MMC32MB) podłączona (wejścia) poprzez dzielnik 2k/3.9k zasilana napięciem 3.3V. Prosiłbym o podpowiedź, jaka może być przyczyna: Ustawienia: Config Pinb.4 = Output Mmc_cs Alias Portb.4 Set Mmc_cs Config Pinb.4 = Output Spi_ss...
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...
Chciałbym zrealizować u siebie w projekcie przerwania, w ten sposób, że odbieram dane z kompasu->przerwanie i kolejno na początek. Nie rozumiem dokładnie - chcesz, żeby po ustaleniu się danych w HMC58831 wystąpiło przerwanie w którym odczytał byś wskazaną wartość? Jeśli tak - to z tego co widzę masz w układzie pin DRDY informujący o tym, że dane są...
Witam w Nowym Roku Chciałem zapytać, czy ma znaczenie, do którego pinu kontrolera jest podpięte wejście sterujące wyborem karty SD ? Korzystam z kodu podanego w helpie - zamieniłem tylko PortB.4 na PortD.6 i cały czas mam aktywną kartę SD, co oczywiście skutkuje zablokowanie kontrolera. Jako, że nie działa mi to razem z innymi funkcjami, więc próbuję...
Na początku sprawdziłem, jest JMP 3-cyklowy, zapomniałem o tym wspomnieć, myśląc że komentarze w kodzie o tym mówią. Jest nawet dodatkowy NOP, aby przerwanie miało dokładnie 12 cykli, jakoś na parzystych łatwiej mi się dokonuje obliczenia. Może innym licznikiem sprawdzę ile tak naprawdę cały ten kod konsumuje cykli... Update: Wyszło na to, że cały ten...
1. Nie widzę deklaracji zegara systemowego więc skod kompilator będzie wiedział jak zrobić delay_100 ms W CodeVision ustawia sie to we wlasciwosciach projektu 2 Jesteś szybki jak zobaczysz na diodzie jak sie zapala i gaśnie co 0,1s Jak zmienie na 0,25s to i tak nic to nie zmienia, i tak nie działa /***************************************...
Z kilku tematów z tej strony spróbowałem poskładać jeden program do zapisu i odczytu zmiennych z sd.Program wyszedł mi następujący: http://obrazki.elektroda.pl/7800048900_1... I niemam pewności co do pliku config_AVR-DOS ponieważ skopiowałem go w całości z tej strony[url=http://members.aon.at/voegel/... Karta sformatowana była na fat16...
Poniżej zamieszczam wersje źródłowe plików kontrolera wykonanego według dokumentacji Atmel'a AVR444: Sensorless control of 3-phase brushless DC motors wykonanego na kontrolerze ATMega 48/88/168. Autor bardzo dokładnie udokumentował swoje dzieło. Funkcje static unsigned int CalculateCurrent () Calculates current consumption. static unsigned long CalculateSpeed...
Fusebit KLA987 jest ustawiony na 101111 : External Osc. Pętla główna Disable Interrupts Call Gettime Enable Interrupts Locate 1 , 1 Lcd Czas_pcf Locate 2 , 1 Lcd Data_pcf '***************************** Warunek określający częstość zapisu na SD If Flaga_sd_save = 1 And S <> 59 Then Licznik_symbol_sd = 0 Locate 1 , 20 Lcd Chr(4) Pwm1b =...
Witam Potrzebuję pomocy w przeportowaniu kodu źródłowego z BASCOM na C (Atmel Studio 6) - mikrokontroler ATMEGA128 Na początek fragment takiego kodu: [syntax=basic4gl] Config Adc = Single , Prescaler = Auto , Reference = Avcc Config Timer0 = Timer , Prescale = 1024 Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Disconnect , Compare B Pwm = Clear Down...
Oj przeczuwam kłopoty, piszesz że przesiadasz się z małego AtMega na AtMega128, a tam niektóe rejestry mają zmienione nazwy lub wręcz niektóre bity są w innych/nowych rejestrach. dla AtMega8..32 działa coś takiego #define GLOBAL_INT_ENA()asm("se... #define GLOBAL_INT_DIS()asm("cl... #define INT0_ENA()...
Może poza przerwaniem gdzieś jeszcze ledy obsługujesz? trudno wywnioskować. Robiłem wystawianie na port wartości z tablicy na Atmega8 w takiej konfiguracji jak ty masz (zbocze opadające) tyle że na INT0 i chodzi bez problemu. Stany się ustalają takie jak w tablicy są więc pewnie gdzieś poza obsługą przerwania masz błąd. Nie sadze, moj kod jest bardzo...
Witam, jest to mój pierwszy post więc proszę o wyrozumiałość :) Problem jest następujący - chciałem napisać sobie programik mierzący napięcie(potem bedę mierzył poziom napięcia na akumulatorze) więc zaczełem od napisania programu z ADC w trybie FREE RUN, czyli jak raz go uruchomilem to calyc czas wysyłał wyniki konwersji przez rs232, następnie postanowilem,...
Cześć wszystkim ;) Mam ogromną prośbę o pomoc w sprawie otwierania obrazków w formacie *.bgc ktore beda umieszczone na karcie pamięci i atmega ma je otwierać i wyświetlać na kolorowym lcd . Probowałem już kilka różnych sposobów ale za każdym razem obrazek się nie wyswietlał poprawnie . Serdecznie pozdrawiam Bartek Nizej kod programu do obslugi karty...
Witam! Mam taki dość nietypowy problem. Kontroler ma reagować na jedno z trzech przerwań: TIMERa 0 i dwóch zewnętrznych (czujki ruchu). Te przerwania zewnętrzne zliczają liczbę reakcji czujek, natomiast TIMER 0 ma odmierzać czas i dzięki niemu co kilka sekund mają być wyświetlane statystyki. Bez TIMERa 0 wszystko działa ok, ale statystyki lecą cały...
] Gdybym chciał jednak mierzyć załóżmy do 1kHz to wymaga aby zliczać przepełnienia? Dlatego napisałem..."Nie znaczy to jednak..." w złym obliczeniu 1 sek wartość wynosiła 61630, przy prawidłowym obliczeniu wynosi 34 286 uwzględniając czas 1sek, częstotliwość taktowania 8MHz i prescaler 256. Przecież czas (1 sec.) odmierzasz timerem0, który jest 8-bitowy...
Prosty program na AVRStudio : #include <m16def.inc> ; Prohibits use of non-implemented instructions (ATmega16) .dseg .org SRAM_START .cseg ;—————R...
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...
Chciałem na ww procku zrobić klawiaturkę matrycową zasilaną bateryjnie. W celu oszczędności baterii chciałem skorzystać z trybu Power Down. I tu pojawia się moje pytanie: Czy można procka wybudzić tylko poprzez skorzystanie z INT0 / 1. Bo jeśli tak, wiązałoby się to z konieczniością ustawiania wszystkich wyjść matrycowych w stan 0, podłączenia INT0...
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...
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...
Nie możesz tylko używać Timera2 do innych celów, bo właśnie jest on używany przez RC5 Funkcja GETRC5 domyślnie wykorzystuje Timer0 a nie Timer2. Oczywiście można to zmienić w konfiguracji, jednak autor tego nie czyni. Zatem pozostają mi dwie opcje, albo przestać używać timera0 do odliczania 1s odcinków czasu i zaprzęgnąć do tego timer2 (co może nie...
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...
Dzień dobry, Jestem w trakcie tworzenia programu, w którym wyniki wyświetlane na wyświetlaczu graficznym 128x64 chcę zapisać potem na kartę SD. Problem w tym, że polecenia obsługi wyświetlacza graficznego (Boxfill, Line, Circle) "gryzą się" z poleceniem OPEN wykorzystywanym w podprogramie dokonującym zapisu do karty SD. Do programu dołączyłem bibliotekę...
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...
#include <inttypes.h> #include <avr/io.h> #include <stdio.h> #include <stdlib.h> #include <avr/iom32.h> #include <avr/interrupt.h> #include <string.h> #include <avr/pgmspace.h> #include <util/delay.h> #include "HD44780.h" //definicje zmiennych volatile int ms, s, m, h, znacznik; char buf[256];...
Witam Potrzebuję podpiąć się pod zegar sterujący PWM arduino aby uzyskać przerwania co 50 do 100ms czyli co np 50 ms nastąpiło by przerwanie i wywołanie odpowiedniej funkcji. Niestety nie potrafię tego kodu co znalazłem w internecie rozgryść czy ktoś mógłby mi wyciągnąć z poniższego kodu co jest niezbędne do zrealizowania tego i wytłumaczyć co z czym...
Ostatecznie mój schemat wygląda tak: http://obrazki.elektroda.pl/8076000900_1... Uwagi: Zdecydowałem się na 6 kolumn. Prąd dla diody w impulsie ~70mA. Element Encoder_E16 robiony samodzielnie, gdyż brakowało w bibliotekach takiego o odpowiadających mi pinach. uC planuję trochę przetaktować z maksymalnych 16MHz do 20MHz. To chyba wszystko....
Mi nie chodzi konkretnie o przerwanie. Jest tak: Timer t0 pracuje w trybie asynchronicznym i co 0.5s generuje przerwanie Ja w tym przerwaniu sprawdzam zawartosc rejestru TCNT odpowienio przeliczam ilosc impulsow ktore zliczyl i wyswietlam. SIGNAL(SIG_OVERFLOW0) { Rpm = TCNT2; Speed = TCNT1L; outp(0x00, TCNT3); outp(0x00, TCNT1L);...
Troche długo mnie nie było ale miałem parę spraw na głowie. Co do tego Timera to ostatnio znów walczyłem i konfiguracja jest w porządku. Wina leży najprawdopodobniej gdzieś na płytce (bądź w procesorze), bo gdy podpiąłem kwarc do innej płytki z atmega128 to Timer działał bez zarzutu. Tak więc temat zamknięty. Dzięki wszystkim za pomoc! Pozdrawiam! P.S....
michalko12 , niedokładnie czytasz kod. W ISR stała użyta jako wektor to /* External Interrupt Request 6 */ #define INT6_vect _VECTOR(7) #define SIG_INTERRUPT6 _VECTOR(7) motorolae365ok , rozumiem, że masz zewnętrzny pull-up na pinie, skoro postanowiłeś ustawić port w Hi-Z. Jak wygląda funkcja użyta w przerwaniu?
Podziękaowania dla Duch_ Teraz dziala tak jak chcialem, czytalem wcześniej twój post, ale mialem balagan w kodzie i zapis z twojego kodu nie dzialal, teraz jest ok. Mój kod z obslugą LCD od Nokii 6100 zapis/odczyt z karty SD, może komuś się przyda: $regfile = "m32def.dat" $crystal = 8000000 $lib "Lcd-pcf8833.lbx " $include "..\fonty\Color8x8.font"...
(at)zumek Zgubiła Cię rutyna :wink: Fakt :oops: Ale odgryzę się :wink: Zaglądając do manuala ATMega32(i nie tylko) cóż ja widzę :?: Podane są wektory przerwań: .equINT0addr=$002;External Interrupt0 Vector Address .equINT1addr=$004;External Interrupt1 Vector Address ... .equ twsiADDR=$026 ;2wire serial int Tylko jest jeden szkopuł ,a mianowicie wektory...
http://www.avrfreaks.net/forum/slow-risi... Z linku wynika, że zauważy nawet więcej. Jeśli do wejścia doprowadzasz sygnał analogowy, to powinno być wejście analogowe - tak na chłopski rozum. Użyj komparatora. Albert
Przepraszam że nie potrafię tego wyjaśnić ale to nie ja pisałem ten program. Mam taki kod: http://obrazki.elektroda.pl/4548415200_1...
Sporo tego ( obsługa SD, PCF8563 + menu do ustawiania daty, obsługa PCF8574 w przerwaniu INT1 )- ale nie ma problemu - zmieniła się tylko zawartość podprogramu Pomiar była taka, jak w pierwszym poście oraz wyłączyłem w wyświetlanie na LCD tych wartości wskazań z DS18B20, oczywiście dostosowałem pozycje wyświetlania do LCD 4*20 - załączniku spakowany...
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>...
Mam dwa foldery, każdy od innej wersji avr i w każdym jest inny interrupt.h. Da się jakoś sprawdzić, który avr używa podczas kompilacji? /* Copyright (c) 2002, Marek Michalkiewicz All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:...
Witam wszystkich, mam problem z obsługą przetwornika MAX1301 przez Atmege 32. Mianowicie przetwornik ten posiada 3 tryby pracy. W dwóch sygnał zegarowy podawany jest z zewnątrz, dokładniej przez linię SCLK interfejsu SPI. W trzecim trybie sygnał zegarowy podawany jest na przetwornik tylko podczas przesyłania do niego bitu startowego i odczytu zmierzonych...
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...
Już działa:) Jeżeli chodzi o same ustawienia i inicjalizację Timera0 oraz przerwań to okazało się tak jak mi się wydawało że wszystko miałem dobrze. Jak zwykle w takich przypadkach błąd okazał się błahy i leżał w zupełnie innym miejscu. Otóż przy definiowaniu wektorów przerwań nie używałem definiowania ".org". Początek mojego programu wyglądał tak:...
czy w maxach ustawiasz poprawnie nadawanie i odbior bo moze tu robisz blad // USART1 initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART1 Receiver: On // USART1 Transmitter: On // USART1 Mode: Asynchronous // USART1 Baud rate: 9600 UCSR1A=0x00; UCSR1B=0xD8; UCSR1C=0x06; UBRR1H=0x00; UBRR1L=0x17; Brakuje ci UCSR1A tu masz caly...
Teraz trochę inna kwestia. Chcę zrobić zewnętrzne przerwanie, które reaguje na wciśnięcie przycisku i wtedy dopiero ma się uruchomić w nim generowanie tych 2kHz (działa tylko przy wciśniętym switchu, . Częstotliwość jest obecnie generowana non-stop, tak jak kolega wspomniał nie potrzebne są przerwania. Tylko jak teraz do tego napisać w/w przerwanie...
Jak masz ustwaiony pin PD3 (INT1)? Nie widzę abyś ustawiał go jako wejście, istotne ponieważ muszą być wejściami gdyż: The External Interrupts are triggered by the INT0, INT1, and INT2 pins. Observe that, if enabled, the interrupts will trigger even if the INT0..2 pins are configured as outputs. This feature provides a way of generating a software interrupt....
Ok, sprawdziłem. W trybie z korekcją czegość takiego nie ma. Używam teraz tego trybu, bo nie wiedziałem jak wyłączyć te COMy, zeby bylo automatycznie... Teraz druga sprawa: mam dwa przyciski na przerwaniach INT0 i INT1, ale mi one w ogóle nie działają. Celem głównym jest osiągnięcie przechodzenia w tryb uśpienia i jego budzenie, ale jak już wspomniałem,...
Tak i nie. Po pierwsze musisz dostosować poziomy napięć. Jak podłączysz bezpośrednio 12V pod pin proca to on się spali. Podepnij przez dzielnik napięcia. 2. Jaki to jest procesor? Firma i model 3. Jeżeli chcesz mieć bardzo szybką reakcję to takie coś realizuje się na przerwaniach (w tym przypadku na przerwaniu zewnętrznym na pinie 13, jeżli takie jest...
Dzięki za odpowiedź. Przeczytałem http://mikrokontrolery.blogspot.com/2011... i w oparciu o datasheed ATmegi16 zmodyfikowalem program który jest na tej stronie i podmieniłem potencjometr pod dalmierz i podałem pin ADC7, i ustawiłem aby zależnie od wartości migała/świeciła się (pomiar pojedyńczy po wciśnięciu przycisku,...
Witam. Naszło mnie na zrobienie shift lighta do samochodu (taka lampka, która zapala się po przekroczeniu zadanych obrotów). Na Zmontowanym układzie działały programiki od zapalania diody, naciskania switcha itp. W hardware mam póki co jedną ziodę z rezystorem na pinie PD3 podpiętą do + i na PB0 wejście na impulsy z cewki w ten sposób, że cewka->rezystor...
Ten kod jest napisany dla ATmega103 ( niedostępny już w handlu) a jego następca to ATmega128. Poniżej poprawki dla WinAVR ( ten kod był dla kompilatora IAR): 1. #include <iom103.h> #include <ina90.h> ma być #include <avr/io.h> #include <avr/signal.h> 2. type def struct{ ma być typedef struct{ 3. interrupt /**** A V R A P P L...
' ****************************************... ' * * ' * Mega 8 PAL Video Test Pattern 64 Colours ( noninterlaced ) * ' * * ' * V3.1.38 (c) 2008 Moshtech * ' * * ' ****************************************... ' ' Device -> Analog Devices AD722 or...
Zanim odblokujesz przerwania za pomocą sei(), w rejestrze EIFR wykasuj flagę INTF1 INTF1: External Interrupt Flag 1 When an edge or logic change on the INT1 pin triggers an interrupt request, INTF1 becomes set (one). If the I-bit in SREG and the INT1 bit in EIMSK are set (one), the MCU will jump to the corresponding Interrupt Vector. The flag is cleared...
Zmieniłem kwarc na 8 MHz - znalazłem informacje, że SD na 16 MHz nie działa. Dodałem linie ( chciałem ręcznie wyzwalać zapis ) Config Portb.1 = Input Reset Portb.1 Manual Alias Portb.1 If Manual = 0 Then Call Write_to_sd() End If Jeśli usunę te linie to znowu nic się nie zapisuje. Efekt jest taki, że zapisuje co sekundę ( oczywiście na zmianę...
Na wewnętrznym to się nie ma co dziwić że źle chodzi a do kalibracji i tak potrzebny jest kwarc nawet wystarczy zegarkowy na Timer2 A to procedura kalibracji dla ATmega169 /***************************************... * * Function name : OSCCAL_calibration * * Returns : None * * Parameters : None * * Purpose...
Witam. Mam problem z poprawnym działaniem bootloader'a. Paczka ściągnięta ze strony main.c (dodałem linijkę dla mojego procesora) bootloaderconfig.h (zmiana portów oraz linii wywołującej bootloader) Makefile (zmiany dotyczące procesora) http://obrazki.elektroda.pl/4178945300_1... http://obrazki.elektroda.pl/5075291300_1...
Witam.....nie ma sprawy wstawiam kod może uda się go uprościć lub inaczej zdefiniować funkcje...jak mówi Jurek Owsiak róbta co chceta...ja nadal się uczę zerkając jak zrobili to inni aby zrozumieć jak to działa i spróbować zrobić to po swojemu.... //--------------------------------------... //########## A T A M E G A - 32 ########## //--------------------------------------...
Witam Mam problem z uruchomieniem watchdog'a w atmedze324. Procesor nie uruchamia resetu. Ten program powinien wypisywać cyfry przez około 2 sekundy potem powinien się zresetować. Proszę o pomoc. [syntax=jezyk_programowania] #include <mega324.h> #include <stdio.h> #include <delay.h> #include <stdlib.h> #include <string.h>...
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...
np tak: źródło jest wygenerowanie automatycznie przez Codevision ale jak się przyjżysz to załapiesz o co chodzi :) i będzie to dla ciebie jakaś pomoc dla własnych modyfikacji #include <mega32.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...
jak kolega _Robak_ napisał czyli datasheet -> rozdział External Interrupts -> Table 31 -> wiersz 2/4 "ISC11=0 ISC10=1 Any logical change on INT1 generates an interrupt request." Natomiast w samym przerwaniu dajesz zmienna globalna = timer timer = 0 if który sprawdza poziom na pinie od przerwania jeżeli 1 to było zbocze rosnące else zbocze opadające......
Cześć wszystkim :) Pracuję nad przeniesieniem kodu pewnej biblioteki do nrf24l01 z atmegi na xmegę (atmega32 -> xmega 128a3). Czytając bibliotekę wybrałem fragmenty z elementami charakterystycznymi dla danego typu procesora, czyli pozmieniałem części kodu związane z rejestrami i przerwaniami. "Zakomentarzowałem" nietknięty oryginał. To, co wstawiłem...
dobra, obiecany gotowiec i przy okazji manual pt "jak korzystać z manuala". W naszej przeglądarce wpisujemy adres www.google.pl Wpisujemy tam Atmega8, po załadowaniu się strony z rezultatami klikamy w link posiadający w tytule "datasheet" i sprawdzamy czy jest on z atmela. Po pomyślnym otwarciu się datasheetu z indeksu po lewej stronie wybieramy 16-bit...
Witam, wiem ze temat był przerabiany wielokrotnie ale po przeczytaniu postów dalej nie mogę znaleźć błędu u siebie. Pod pin 8 portu A mam podpięty czujnik temperatury LM35. Napięcie jakie mierze na samym pinie jest poprawne np. ok 230mV czyli mniej więcej 23C. Chciałam napisać programik wyświetlający wartość binarną z wejścia analogowego. Ponieważ mam...
Build started 10.10.2010 at 13:19:40 avr-gcc.exe -mmcu=atmega32 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT main.o -MF dep/main.o.d -c ../main.c In file included from c:/avr/winavr/lib/gcc/../../avr/include/... from c:/avr/winavr/lib/gcc/../../avr/include/...
Na przykład w ATmega48 przerwanie INT0 włączasz bitem w rejestrze EIMSK. Czytaj dokumentację, tam wszystko jest napisane: EIMSK – External interrupt mask register • Bit 0 – INT0: External interrupt request 0 enable When the INT0 bit is set (one) and the I-bit in the status register (SREG) is set (one), the external pin interrupt is...
No i rzeczywiście w EP jest ale przykłady są w C. A na tej drugiej stronce programik nie chce się do końca skompilować i generuje błędy. <załamka> Dodano po 1 No i mam to: '---------------------------------------... ' Config_MMC.BAS ' Config File for MMC Flash Cards Driver ' (c) 2003-2005 , MCS Electronics...
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. Chce odkuryć temat. Mianowicie mam podobny problem. TSOF1736, ATmega8, standardowe taktowanie 1MHz, rezystor 3k pullup, int0. Zmienilem prescaler w tym programie z 8->1, oraz poprawilem wlaczanie przerwania od przepelnienia, wiec czasy powinny sie teraz zgadzac. Moj makefile: PRG= led OBJ= led.o MCU_TARGET = atmega8 OPTIMIZE = -O2 DEFS = LIBS...
interrupt external atmega external interrupt atmega interrupt
volvo silnika pisanie literek dioda mruga piszczy
pianino cyfrowe ecc85 przestrojenie
Woda wypływa spod pralki - przyczyny i rozwiązania Zmywarka: Bojler działa, grzałka komory myjącej nie grzeje