a masz poprawna deklaracje SPI? Pisałem juz że powinno być jak poniżej, miałem taki problem że niektóre karty źle działały. Ten błąd ciągnie się we wszystkich konfiguracjach AVR-DOS. tak powinno być: ' HW-SPI is configured to highest Speed Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate...
Kiedyś umieściłem na obecnie niedostępnej stronie and.elektroda.eu materiał o dekodowaniu sygnału DCF. Urządzenie potrzebne było w urządzeniu, które wymagało synchronizacji czasu w pomieszczeniu gdzie wyprowadzenie anteny zewnętrznej do GPS było utrudnione. Poniżej umieszczam treść oryginalnego materiału, który może być pomocny przy budowaniu urządzeń...
(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...
ldi R16,0 Out &H38 , R16 spróbuj to zamienić na : ldi R16,1 Out &H58 , R16 Co do tłumaczeń to jednak w oryginale brzmi to tak: -When an edge or logic change on the INT7:0 pin triggers an interrupt request, INTF7:0 becomes set (one). Co dla mnie w wolnym tłumaczeniu brzmi -Kiedy zbocze lub poziom logiczny na pinie przeniwania 7-0 się zmieni wywoła to...
...A może ktoś z forum już bawił się na 168 tymi przerwaniami w praktyce i podzieli się wiadomościami czy działają?. Wprawdzie help milczy w temacie PCIEx , to wystarczy popatrzeć na sekcję w pliku *.dat interesującego na procka i już wiadomo co i jak ;) m88def.dat [INTLIST] count=25 INTname1=INT0,$002,EIMSK.INT0,EIFR.INTF0 INTname2=INT1,$004,EIMSK.INT1,EIFR.INTF1...
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...
Przerwanie od odbiornika jest wywoływane w momencie kiedy dana jest gotowa w rejestrze, więc ta pętla do while jest niepotrzebna (zresztą ona jest wręcz nie wskazana bo wydłuża obsługę przerwania o nie wiadomo ile czasu). Poza tym proponuję jeszcze w M8 sprawdzac rejestr UCSRA, w nim są zgłoszone ewentualne błędy (szczegóły w manualu). Poniżej działająca...
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>...
Cały problem jest w tym żeby te dwie ATmegi się zsynchronizowały. Przerwanie od SPI występuje po zakończenia transmisji pierwszego bajtu. Zanim nastąpi obsługa przerwania to pierwszy bajt zostanie utracony. Nie mamy też gwarancji że dwie Atmegi "wystrzeliły" :) równocześnie i Slave nie czyta np. 4 bajtu nadanego przez Mastera. Jeżeli to by była np....
8051 nie ma możliwości konfiguracji poszczególnych wyjść a poza tym ma inną obciążalność wyjść (i ich charakterystyką prądowo napięciową). A może problem jest w tym sprawdzaniu wejść, bo skoro usunąłeś funkcje if i problem zniknął, to problem jest z czytaniem wejść A jeszcze sprawdź czy masz zgodne wersje oprogramowania, bo może tu się gryzie: http://www.helmix.at/hapsim/...
nadajnik: [syntax=basic4gl]$regfile = "M8def.dat" $crystal = 16000000 $baud = 19200 $hwstack = 40 $swstack = 20 $framesize = 40 '=== Declare sub routines Declare Sub R_register(byval Command As Byte , Byval C_bytes As Byte) Declare Sub W_register(byval C_bytes As Byte) '=== Constante === 'Define nRF24L01 interrupt flag's Const Idle_int = &H00 'Idle,...
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 próbowałem wgrywać różne kody do obsługi i2c i lcd zmieniałem adresy, częstotliwość transmisji scl ,w lcd podłączyłem SA0 i SA1 do masy. Ten wyświetlacz jest skomplikowany do obsługi nie wiadomo jaki moduł nim steruje, bibliotek do niego brak inne ciężko przerobić nie wymagam wielkiej pomocy może ktoś mnie naprowadzi . Atmega ustawiona na 1MH...
Witam ponownie, Poszedłem o krok dalej i moim planem jest podłączenie każdego z czterech wtryskiwaczy do osobnego pinu Arduino Uno/Nano z Atmega 328p. Pozwoliło mi to na skonstruowanie programu aby sterować każdym wtryskiwaczem z osobna z tą samą częstotliwością i wypełnieniem, ale sygnał do ich wysterowania jest przesunięty około 90° (problem z rozdzielczością...
Cześć, Postanowiłem zbudować sobie miernik poziomu CO2 w powietrzu, wykorzystując czujnik SCD41, komunikujący się po magistrali I2C. Według datasheetów Atmegi 16 oraz SCD41 powinno to być dość proste do ogarnięcia, jednak czujnik cały czas milczał jak zaklęty. Po podsłuchaniu analizatorem stanów logicznych co też się dzieje na magistrali wychodzi na...
http://obrazki.elektroda.pl/4926270100_1... Diagnozer joysticków (np. do Pegasusa) na Atmega 8 Projekt Przyszedł wreszcie czas naprawić posiadane przeze mnie joysticki do Pegasusa. Zwykle uszkodzeniu (urwaniu) uległ kabel lub taki niesprawdzony/niesprawny joystick został zakupiony bez znajomości jego przeszłości. Jeśli kable się urwały,...
Dziękuję. Rejestr już jest odczytywany przed zapisem. Każde przerwanie w slave zapisuje coś do SPDR, więc jeśli slave ZDĄŻY obsłużyć przerwanie i wpisać to zawsze jeden bajt jest wpisany. Przed transmisją przy inicjacji nic nie wpisuję do spdr, pierwszy wpis jest w przerwaniu. Wygląda na to, że oba wyrabiają się z wpisywaniem danych do rejestrów bo...
Witam Skompilowałem wsad na którym można uruchomić to urządzenie napisany na kodzie z int DS_TEMP = 5; // DS18B20 Temperature pin int AC_LOAD = 3; // PD3 Output to Triac pin code from https://alfadex.com/2014/02/dimming-... int PC817_DET = 2; // PD2 INT0 interrupt pin connected to cross zero detect circuit volatile byte state...
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.
>>>BoskiDialer a co wspólnego z RCALL przerwanie i Interrupt Response Time? N.
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,...
O ile mi wiadomo w atmedze nie ma priorytetowania przerwań, czyli które jest właśnie obsługiwane to dopiero jak się skończy to przyjmowane jest drugie przerwanie. Jeśli się mylę proszę mnie poprawić. The interrupts have priority in accordance with their Interrupt Vector position. The lower the Interrupt Vector address, the higher the priority. [atmega8]
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...
Problem już prawie rozwiązany, gdyż moja lista z projektami świeciła się jak choinka za sprawą tych samych, złych bibliotek. Poprawiłem już prawie wszystko, ale chce się upewnić co do jednego. Czy w kodzie który zamieszczam wystarczy usunąć "||" czy coś tam powinno być? W pliku źródłowym na jakiejś stronie internetowej też tego nie ma, więc nie usunąłem...
Witam. Mam lcd ks0108b 128x64 i chcę zrobić licznik. Chcę napisać program na atmega 644/16 który będzie zliczał czas między impulsami na int0 po czym 3.6 dzelił przez wynik i mnożył razy obwód koła. Początek programu napisałem, skonfigurowałem port na zbocze opadające ale nie wiem ja liczyć ten okres. Proszę o pomoc w tym programie. [syntax=basic4gl]...
idle - In the idle mode, the system clock is removed from the CPU but not from the interrupt logic, the serial port or the timers/counters.
Szukałem na internecie poradników do terminala UART i udało mi się zrobić coś takiego z kawałków znalezionych w sieci. Problem polega na tym, że mój kompilator wyrzuca błędy a nie pokazuje mi gdzie one są (i tym samym nie mogę ich skompilować) i jeśli ktoś może sprawdzić poprawność kodu w 1. i 2. main.c(są to dwa odzielne programy w dwóch projektach...
Witajcie, w jaki sposób można optymalnie odczytać przesłany (aż do znaku nowej linii / powrotu karetki) ciąg znaków od przerwania otrzymania danych? /* * Sterowanie przez RS232 (main.c) */ #include "defines.h" #include <ctype.h> #include <stdint.h> #include <stdlib.h> #include <stdio.h> #include <avr/interrupt.h>...
Akurat klawiatura matrycowa to moim zdaniem nieporozumienie w przypadku tak krótkiego selektora. Rozwiązanie jakie obmyślił autor wątku jest proste i całkiem eleganckie - nie ma przeciwwskazań by go nie stosować. Wszystko co potrzebne autorowi do realizacji tej ideii zostało już w tym wątku wyjaśnione. Pozdrawiam, GSM P.S. Co do wyjścia /INT ekspanderów,...
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...
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.
Dzięki za odpowiedzi. Zasilacz mam 7.5V 4A od jakiejś drukarki lub skanera. Napisałem prosty program do testów i wyniki mnie zadziwiły. Program najpierw wysyła na wyświetlacz napis "reset" który świeci się przez 1 sek, a potem program wykonywany jest dalej. Zamiast silnika zamocowałem żaróweczkę, aby pobór prądu był mniejszy. Jeżeli zamieszczę:[syntax=cpp]PORTD...
a to nie jest tak że przerwanie blokuje inne przerwania samo z siebie? Musisz to zrobić Sam. Kolego, mylisz się. Wejście do danego przerwania powoduje skasowanie flagi I w rejestrze SREG. Więc wchodząc do danego przerwania, o ile na siłę nie wywołamy SEI, inne przerwania będą zablokowane. The Global Interrupt Enable bit must be set for the interrupts...
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...
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...
Czesc wszystkim, Mam problem z poprawnym działaniem termometru na 7-segmentowym wyświetlaczu. Załączam film - no nie chce się bardzo rozpisywać. Generalnie to nic złego w bibliotekach multipleks. Coś z kodem jest nie tak prawdopodobnie w dsb1820. Poniżej załączam kod. Proszę o pomoc. Pozdrawiam. Dodam tylko, że temperatura jest wyświetlana poprawnie...
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, Próbuję korzystać z biblioteki Peter Fleury do obsługi usart-u, której listing znajduje się poniżej: PLIK uart.c /***************************************... Title: Interrupt UART library with receive/transmit circular buffers Author: Peter Fleury <pfleury(at)gmx.ch> http://jump.to/fleury File:...
U mnie akurat dość szybko "zaskoczyło". Tylko mam w odbiorniku problem z blokowaniem przerwań/timerów . W nadajniku nie ma takiego problemu. timer działa, bo odlicza czas pomiędzy "wysłaniami" oraz czas wywołania czujników DS i DHT11. Zakładałem, że odbiornik działa tak: - nasłuchuje danych - pojawienie się danych wywołuje przerwanie INT2 ( stan niski...
Robie podobnie jak proponujesz : ///////////// inicjalizacja kwarcu 32 768 ////////////////////////// czekaj(1000*tau); TIMSK &=~((1<<TOIE2)|(1<<OCIE2... the Timer/Counter2 interrupts ASSR=(1<<AS2);// select asynchronous operation of Timer2 TCNT2=1; // wyzerowanie aktualnego stanu licznika TCCR2=5;// ustawienie preskalera...
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...
Panowie odpaliłem już mój układ na innej atmega 16 trzeba zmienić jedną rzecz w konfiguracji SPI sprzętowy. Jednak mam problem z Atmegą 32 bo tam wciąż nie działa, nie odczytuje danych z nadajnika. I tu mam konkretne pytanie gdyż dla amegi 8 dla której pierwotnie był przygotowany soft w BASCOM-ie to wektory przerwań dla SPI są takie same dla A8 i A16...
Mam dziwny problem ze znikającym jednym tickiem w liczniku gdy są włączone przerwania przy przepełnieniu. Licznik pracuje w trybie normalnym, taki sam efekt przy 8 i 16 bitowym, zaobserwowałem na atmedze 16 i 644P (bo takie miałem akurat pod ręka). Normalnie bez przerwań, licznik przy przepełnieniu zeruje się i zaczyna liczyć od 0, wszystko tak jak...
Witam, Symulacja przesyłania/odbioru przez SPI działa w debugerze AVR Studio 4 gdy nie jest czynna obsługa przerwania przepełnienia licznika1 ISR(TIMER1_COMPA_vect), ale po przepełnieniu licznika zerują się wszystkie zmienne. Jeżeli obsługa przerwania jest aktywna (nawet pusta) to symulacja interface SPI nie działa. Brak wtedy sygnału zegarowego na...
Witam! Kiedyś, gdzieś w internecie wyczytałem że Hard-spi to szybszy sposób komunikacji procesora z np. kartą sd niż SOFT-SPI. Bardzo długo męczyłem się żeby At128 dogadała się z kartą sd przez HARD-SPI ale w końcu się udało. Napisałem prosty program zapisujący na kartę zmienną typu byte jednocześnie licząc ilość tych zapisów w czasie 1sek. [syntax=vbnet]Wait...
Witam forumowiczów :D! Tworze projekt na zaliczenie - prostą perkusje elektroniczną, która posiada 12 przycisków, czytnik kart SD i wyjście PWM podpięte przez wzmacniacze do gniazda jack. Wszystko do momentu odtwarzania dźwięku działa poprawnie - wartości z pliku czyta prawidłowo (przetestowane na diodzie). Problem pojawia się gdy zaczynam odtwarzać...
Witam, Potrzebuję zrobić na TDA1543A i Atmega8 regulowane napięcie stałe w zakresie napięc podawanych przez TDA1543A. Znalazłem przykładowy program i zmontowałem układ, atmega wysyła dane lecz na wyjściach TDA mam jedynie napięcie stałe bliskie napięciu zasilania. Atmega8A taktowana kwarcem 12MHz. Próbowałem także 1MHz i 8MHz i nic to nie zmieniało....
Nie wydaje mi się . reti - return interrupt z assamblera , Zasadniczo chodzi o to aby załączyć globalne zezwolenie przerwań przy powrocie , a dokładnie to robi reti , tak samo zresztą jak return w bascomie . ale sprawdziłem też return i jest to samo . Bascom jest dosyć elastyczny w tej materii jeśli chodzi o mieszanie różnych składni ,
Ok znalazłem problem, [syntax=cpp] char SPI_MasterTransmit(char cData) { /* Start transmission */ SPDR = cData; /* Wait for transmission complete */ ----->while(!(SPSR & (1<<SPIF))) ; /* return recieved data */ return SPDR; } [/syntax] Gdy w lini kodu zaznaczonej strzałką (oczekiwanie na zwolnienie SPI) wskoczyło mi przerwanie, które później...
Wielkie dzięki! Oczywiście masz rację! Oczywiście...Nie ma racji!... (16000000/256 = 62500) Jest to częstotliwość impulsów z prescalera kierowanych do timera0. Timer0 - z konfiguracji pracuje w trybie 'Normal' bez preload, więc interrupt OVF0 będzie generowany po otrzymaniu 256 impulsów (pełny zakres licznika); a zatem częstotliwość wystąpienia interruptów...
timer atmega interrupt external interrupt atmega interrupt external atmega
uszkodzona zamrażarka dziura kosiarka linek napęd podłączenie żyrandola kabli
budowa subwoofera budowa subwoofera
Oszczędny grzejnik elektryczny do łazienki: wybór i porady Renault Koleos 2.0: Pomarańczowa kontrolka klucza i STOP