To może i ja dodam od siebie taki mały projekt - miernik pojemności ogniw Li-Ion, oparty też o ten uC PIC16F1459. Może komuś też się przyda. Kod jeszcze rozwijam, tak że sugestie mile widziane :) Aha, w projekcie tym jest ważne stabilne zasilanie, najlepiej równo 5,00 V (aby mieć jak najdokładniejszy wynik pomiaru - czyli nie zasilać z USB bo często...
Od kilku dni walczę z niby banalnym tematem. Przewałkowałem krok po kroku dokumentację, noty aplikacyjne i dostępne przykłady ale nadal nie mogę ruszyć. Chcę przesłać przez SPI5 wykorzystując DMA2 (strumienie: 3 do odczytu i 4 do zapisu na kanale 2) dane do/z układu ADE7953 . Sama transmisja SPI robiona programowo (sprawdzanie flag TXE i RXNE) działa...
Witam, chcę zrealizować otwarty projekt miernika częstotliwości opartego o mikrokontrolery PIC (do testów używam PIC16F1459). Poniżej wstawiłem, pierwszy prototyp. Aktualnie program działa, ale... poprawnie zlicza tylko do ok 4kHz - i tu mam pytanie do Was, czy może ktoś wie jak ten wynik poprawić (rozwiązania programowe, inne podejście do problemu)...
Dodałem obsługę wyświetlacza 4 pozycyjnego poprzez rejestry 4096 i dekodery 7447. Teraz oprócz sekund mamy minuty i godziny, czyli pełny wypas. Wstępnie ustawiłemn mój zegar, zostawiam na noc - zobaczymy jaka naprawdę będzie dokładność pomiaru czasu. :) Poprawiony kod programu: http://obrazki.elektroda.pl/6388501000_1...
OK :) Enumeracja działa. Przechodzą deskryptory, wiec podstawa do budowy urządzeń już jest :D Pierwsze co trzeba było zmienić to podczas konfigurowania przerwań dodać na końcu linijkę: __ARMLIB_enableIRQ(); Oprócz tego zmiany w pliku startowym, aby możliwa była obsługa przerwań zagnieżdżonych. Czyli: irq_handler: //---- Adjust and save return...
•stosuj volatile do wszystkich zmiennych globalnych, •stosuj volatile zawsze dla zmiennych używanych w przerwaniach i poza nimi. Takie podejście zmniejszy ilość Twoich problemów w początkowej fazie nauki C. Później gdy już poznasz dokładniej język C, będziesz wiedział kiedy i jakie odstępstwa od tych zasad można lub należy robić. Poczytaj...
Chyba mój algorytm jest do bani :(. Chyba tu masz zupełną rację. Po piersze: Czy na prawdę taktujesz processor rezonatorem 20 MHz włącznie ze odpowiedno zaprogramowanymi fuse bitami? Jeżeli tak to praktycznie nie masz możliwości skonfigurowania timera0 aby nim odmierzyc 8 ms pomijajac reszte błędnych rachunków. Nawet przy prescalerze 1024 nie będzie...
Witam Zbudowałam chronograf w oparciu o opis z tej strony gadjetsblog.blogspot.com/2013/04/chronog... html Jednak zamiast sensorów optycznych OPL-550a (z tego co się dowiedziałam mają chyba wbudowany komparator i na wyjściu dają logiczną 1 lub 0) zastosowałam fototranzystory. Do kolektora 5v, emiter przez rezystor 10k do masy, sygnał do arduino...
Nie wiem jaki to uP ale np. dla ATmega16 wygląda to tak: Włączasz przerwanie: UCSRB|=(1<<TXCIE); sei(); //dostępne globalne przerwania A tu jest podprogram obsługi przerwania: ISR(USART_TXC_vect) { cbi(PORTB, PB2); //0 na pinie PB2 } aha i jeszcze musisz włączyć bibliotekę: #include <avr/interrupt.h>...
Masz rację tak właśnie jest na końcu preambuły wysyłam 0x10 i na tej podstawie przesuwam początek bajtu. jednak nie widzę takiego działania w interrupt.c z oryginalnej noty .
Do obsługi przerwań służy SIGNAL nazwa_przerwania lub INTERRUPT nazwa_przerwania Na podstawie stronki http://avr.elektroda.eu/?q=node/25 zrobilem podobnie. Niestety nie dziala. Podpowie ktos? #include <avr/interrupt.h> SIGNAL (SIG_INTERRUPT0) { jeden(); } SIGNAL (SIG_INTERRUPT1) { dwa(); } GIMSK = _BV(INT0); MCUCR = _BV(ISC01); sei(); while(1);...
to jeszcze jedno pytanie: jak napisać w KEIL C51 funkcje obsługi przerwania? na podstawie książki nt, KEILA pisze np : -------------------------------------- interrupt [0x0B] void TO_int (void) { static char i=1; static char k=1; if(++k == 0xff) { k=0; i*=2; if(i==0) i=1; LEDS=~i; } TH0=0xff; TL0=0x00; } --------------------------------- to od kompilatora...
asm na pewno jest taki sam (szczegolnie ten ktorego uzywalem, bo to same podstawy), gorzej z timerami na ktorych opieraja sie dluzsze opoznienia (od ms w gore). nigdy nie zajmowalem sie dspic30, wiec... nie wiem jak to tam jest z tymi timerami. najwyzej dostosujesz sobie <: __________________________ modul sklada sie standardowo z pliku c i h. ponizej...
Tak jak napisałeś problemem jest najprawdopodobniej włączenie przerwania, którego nie obsługujesz w programie. Należy więc przede wszystkim poszukać tego błędu w kodzie sprawdzając wszelkie użycia rejestrów odpowiedzialnych za przerwania. Jak nie znajdziesz, to możesz wybrnąć tak, by zadeklarować wszystkie pozostałe funkcje ISR i na tej podstawie ustalić,...
Witam, przepalił mnie się w multimetrze bezpiecznik od obwodu pomiarowego miliamperomierza i pomiaru pojemności kondensatorów i nie bardzo rozumiem jaki mam tam wstawić. Na tabliczce znamionej z tyłu jest podane: F500mA 250V fast min interrupt ratings 1500A. Z opisu rozumiem, że jest to bezpiecznik szybki pół ampera na max. napięcie 250V, aczkolwiek...
Hehe, chyba ślepnę powoli :P Masz dobrą tablicę wektorów? Tablicę wektorów oczywiście napisałem sam, na podstawie twoich projektów dla µC LPC11xx i STM32. No i faktycznie, w tablicy wektorów zapisane miałem: Nie powinieneś działać na rejestrze 0? Tak, dokładnie, jedynka była wynikiem moich poszukiwań niepowodzenia, wcześniej widniało tam zero....
A voltage-to-frequency converter transforms the current sense voltage into a series of output pulses at the interrupt pin . Voltage = napięcie a nie wolt Interrupt - przerwanie (w procesorze) pin - końcówka, nóżka Przetwornik napięcie-częstotliwość zamienia napięcie z czujnika prądu na szereg impulsów wyjściowych podawanych do końcówki wywołującej...
JAk to nie ma grupowania, cytat ze strony 37 pdf Interrupt priority grouping To increase priority control in systems with interrupts, the NVIC supports priority grouping. This divides each interrupt priority register entry into two fields: • An upper field that defines the group priority • A lower field that defines a subpriority within...
Żeby wiedzieć czy przycisk jest przytrzymany musisz testować toggle bit http://obrazki.elektroda.pl/7180962700_1... Ciężko Ci będzie napisać program do rozpoznawania standardów nadawania IR, jest ich naprawdę dużo. Lepszym pomysłem byłoby napisanie programu na uC który przekazywałby do komputera (np. przez UART) czasy trwania bitów przerw,...
Zmieniam zdanie - wg standardu EABI atrybut ten jest KONIECZNY. Sorry. Poniżej info z dokumentacji GCC: interrupt Use this attribute on the ARM, AVR, CRX, M32C, M32R/D, m68k, MeP, MIPS, RX and Xstormy16 ports to indicate that the specified function is an interrupt handler. The compiler will generate function entry and exit sequences suitable for use...
Jacek, po pierwsze dzięki. Jeśli o mnie chodzi to ja to wszystko kumam, chciałbym jednak doczepić się do paru spraw a i trochę lenistwo mnie nachodzi. Dałeś cytat: "The I/O ports of the AVR are immediately reset to their initial state when a reset source goes active. This does not require any clock source to be running." Chciałbym zapytać zatem na jakiej...
Witam Od paru dni usiłuję to zwalczyć i idzie jak po grudzie. Chciałem od podstaw (a czemu nie), może to błąd, ale dobrze wiedzieć co w trawie piszczy. Na podstawie kilku tutoriali w sieci naskrobałem coś takiego: Skrypt linkera: MEMORY { FLASH : ORIGIN = 0x08000000, LENGTH = 256K RAM : ORIGIN = 0x20000000, LENGTH = 48K } SECTIONS...
Z twojego wifi0 Link encap:Ethernet HWaddr 00:18:84:xx:xx:1D UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:16504 errors:0 dropped:0 overruns:0 frame:239 TX packets:22685 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:199 RX bytes:2118952 (2.0 MiB) TX bytes:1168239 (1.1 MiB) Interrupt:3 Memory:b0000000-b00ffffc wynika że...
Witam wszystkich. Uzywam Eclipse + OpenOCD (0.9.0) + GCC. Do tej pory używałem STM32F103 (Cortex-M3), a teraz przesiadłem się na STM32F373 (Cortex-M4). Wziąłem ze starego programu skrypt linkera, startup, vectors.c i posklejałem do kupy odpowiednio je modyfikując. Program generalnie odpala się, mogę sterować GPIO. Następnie spróbowałem uruchomić SysTicka....
Witam. Zbudowałem układ z załączonego schematu na podstawie projektu zamieszczonego na elektrodzie. [syntax=c] #define F_CPU 1000000UL #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> int main(void) { DDRA=0xff; //Kolumy DDRC=0xff; //Zielony DDRD=0xff; //Niebieski DDRB=0xff; //Czerwony PORTA = 0x01; // Zapal pierwszą...
http://obrazki.elektroda.net/12_12794000... Lampka powstała z myślą o mojej kobiecie. Chciałem, zrobić coś bardziej interesującego niż projekty dostępne w sieci. Sterowanie z pilota RC5, pozwala na przełączanie zapisanych sekwencji, prędkości zmiany kolorów, zapauzowanie aktualnego koloru, oraz ręczne ustawienie koloru. Dopiero co zaczynam...
Ach, tak tak, macie rację, ale niestety po poprawieniu tego rejestru nie naprawiło się to wyłapywanie przerwań. Posiedzę nad tym jeszcze i pokombinuję. a na jakiej podstawie mniemasz że one nie działają? Jeśłi podłączasz diody do portu A to napewno tam nie będzie się wiele działo. Proponuje zamienić ci : [syntax=c]ISR(TIMER1_OVF_vect) { PORTA = 0xFF;...
Zakładam że chodzi o coś takiego W sumie dla grzałki to dobre rozwiązanie, gorzej gdybym chciał podłączyć żarówkę bo będzie mrugać. Wielkie dzięki. Ale i tak się zastanawiam jak zrobić żeby pwm startował w przerwaniu tak "sztuka dla sztuki " :D , jeśli ktoś mógłby podać kod dla samej tej operacji był bym wdzięczny. //////////// //PODSTAWA// ////////////...
W pliku CubeMx utworzyło mi automatyczne połączenie obsługi przerwań HAL z biblioteką niskapoziomową. W przerwań tych nie korzystam w chwili obecnej, dlatego tez zastanawia mnie czy jeszcze gdzieś należy po Cube posprzątac. [syntax=c]#include "stm32f1xx_hal.h" #include "stm32f1xx.h" #include "stm32f1xx_it.h" /* USER CODE BEGIN 0 */ /* USER CODE END...
Czyżbyś dotykał procesora TMS570LS20216? :] Mam takie, trzy leżą i czekają na lepsze czasy... Procesor nie wykonuje sprawdzania INT w pętli . To jest po prostu sygnał do logiki procesora , ktora informuje rdzen o wystąpieniu wyjątku. Pamiętaj, ARM nie ma "przerwań", ma wyjątki . Sądzę że źle rozumiesz teorię obsługi wyjątków. Ogólnie tryby ich interpretacji...
Cześć mam taki temat projektu : Program ma zwiększać zawartość portu B po naciśnięciu przycisku dołączonego do portu D na wejście 7 Wykonałem taki program: #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> int main() { DDRD = 0x00; PORTD = 0xFF; DDRB = 0xFF; PORTB = 0xFF; char value = 0; while(1) { if ( (~PIND)...
[quote="lukaskay"] a gdybym czas oczekiwania zwiększył do 15 s wtedy dokładność wzrosła by mi do 4 obr/min mogę użyć komendy: Wait 15 ?? ale wtedy chyba dojdzie do przepełnienia licznika?? quote] Przy twoich parametrach silnika el., oczywiscie ze dojdzie do przepelnienia licznika0. Ponadto uwazam ze stosowanie dyrektywy "Wait" w pomiarach nie jest najlepszym...
Na podstawie artykułu: http://mikrokontrolery.blogspot.com/2011... chciałem spróbować nastawić timer1 (16 bitowy) w ATmega16. Robię to w ten sposób: [syntax=c] #include <avr/io.h> #include <avr/interrupt.h> #define LED1 PC0 #define LED2 PC1 volatile uint8_t cnt=0; void main(void) { DDRC |= (1<<LED1) |...
Zrobiłem tak jak poradziłeś ale niestety nic to nie pomogło. A co mnie zastanawia nawet dioda która jet podłączona pod pin PB1 i ma działać od momentu uruchomienia procesora, się nie załącza. Cóż zrobiłem źle?;) [syntax=c] /* * Podstawa.c * * Created: 2012-11-24 13:54:26 * Author: Tenebr */ #define F_CPU 16000000L #include <avr/io.h> #include...
Inną sprawą że wygląda mi tutaj na sprzęt który miał tylko kilka wejść z przerwania (coś jak w cortex-A) przez co wymagało to maszyny stanów. Nie, to było pisane pod kątem C51. Stąd też zalecenie umieszczenia flag bitowych w pamięci bitowej. Oryginał został opublikowany gdzieś w październiku 2012, a wtedy jeszcze C51 i AVR królowały. ARM-Cortex M3...
Czołem! Chciałem napisać własną funkcję delay_ms w oparciu o timer procesora Atmega168. Namęczyłem się z tym strasznie, aż w koncu wziąłem gotowca - trochę przerobiłem - i dochodzę do takich wniosków, że Ten kod nie działa(nie wiem czemu) - próbuje w nim mrygać diodą przypięta do portu B za pomocą odczekiwania 10[jednostek czasu] poprzez wywołanie funkcji...
To wiemy Ty i ja, oraz inni, ale czy wie o tym tomaszdko ? Ta informacja jest umieszczona w pomocy do programu i łatwo ją znaleźć. Niestety jeżeli nie zna choćby podstaw Asemblera nie będzie wiedział do jakich rejestrów została zapisana zmienna Single. Przykład z modyfikacją zmiennej typu Single w przerwaniu to akurat bardzo zły przykład. I to nie...
Witam! Chcę się przesiąść z Bascoma na C. Podstawy przerobiłem, teraz wziąłem się za przerwania. Najpierw chcę obsłużyć INT0, jednak za nic w świecie mi to nie wychodzi. Nóżkę INT0 (PIND2) mam podłączoną przez przycisk do masy. Czy możecie mi powiedzieć co jest źle w tym kodzie (fusy są odpowiednio skonfigurowane dla 8mhz)? #include <avr/io.h>...
A tak w ogóle to informujesz jakoś kompilator, że te procedury są obsługą przerwań? Chodzi mi tu o __attribute__((__interrupt__)), bo żadnych innych wrapperów w tych funkcjach nie widzę. Zamieszczam plik main.c. #include "LPC214x.h" ... Zamieszczam cały projekt spakowany. Czekam na sugestie. Sprawdziłem to co podałeś na LPC2148 i to działa....
Witam, mam problem z sprzętowymi przerwaniami na FreeRTOS-ie, dla LPC1768 (Keil v.4.60). Otóż, wstępnie już freeRTOSa ogarnąłem, taski, semaphory, softwareowe przerwania. Wszystko fajnie działa. Przyszedł czas na obsługę przerwań sprzętowych. Próbowałem dołączyć pliki .c i .h które mam do obsługi przerwań danej peryferii, jak i bezpośrednio do projektu...
Ostatecznie próbuje uzyskać sinus "programowo" przy użyciu tablicy. Kod napisałem na podstawie informacji w temacie: http://www.elektroda.pl/rtvforum/topic22... [syntax=c] #include <avr/io.h> #include <avr/interrupt.h> volatile int k; int pwm1[37]={17,8,2,0,2,8,17,30,45,64,84,10...
wytłumacz mi kod bardziej szczegółowo. Oczywiście, chętnie to zrobię. Zacznijmy od początku: 1. `#define F_CPU 8000000UL` - To jest definicja częstotliwości taktowania mikrokontrolera. W tym przypadku wynosi ona 8 MHz. 2. `#include <avr/io.h>, #include <avr/interrupt.h>, #include <util/delay.h>` - To są biblioteki, które zawierają...
Może zamiast pytać napisz jaki masz kwarc, czy uC w ogóle się załącza, na czym polega owe "niebanglanie", czy dioda w ogóle się zaświeca kiedy się odpowiednio wysteruje wyjście, czy korzystasz z bootloadera, wtedy może znajdzie się ktoś, kto będzie umiał rozwiązać problem. Nie używałem żadnego kwarcu, dioda mi mrugała gdy pisałem program z dwoma przyciskami,...
Witam, Znalazłem w internecie projekt licznika obrotów, który przystosowałem do swoich potrzeb od strony praktycznej, całość działa bardzo dobrze, wynik jest wyświetlany na module LCD z tym że np. w momencie uruchomienia urządzenia jak i po przerwaniu zadawania impulsu do procesora, na wyświetlaczu mam stale jakiś wynik. Chciałbym aby w tych okolicznościach...
Witam, próbuję zrobić program do migania diodą w zakresie ok. 1-30 Hz i postanowiłem użyć do tego timera. Wyprodukowałem coś takiego: #include <avr/io.h> #include <compat/deprecated.h> #include <util/delay.h> #include <avr/interrupt.h> SIGNAL(SIG_OVERFLOW1){ TCNT0 = 8190; PORTA=~PORTA; } void main(){...
Mam problemy z klawiaturą matrycową którą właśnie robię na przerwaniach na podstawie tego schematu: http://www.btc.pl/pdf/zl3avr.pdf (Strona 2). Napisałem taki kod: [syntax=c] #define F_CPU 1000000L #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> struct keyboard { int lastKey; int isPressingNow; int numberOfKey;...
Witam Uruchomiłem USB w trybie HID na przykładzie Custom HID z ST (ten gdzie się diody zapala i przyciski sprawdza). Przerobiłem go na swoje potrzeby żeby przesyłać m.in. ramki o długości 32B. W deskryptorze urządzenia są oryginalnie dwa pola: 0x20,/* bInterval: Polling Interval (32 ms) */ które pilnują żeby transmisja była wolna ;]. W aplikacji PC...
//definicja początkowej wartości timera #define timer_start 6 Rozumiem, że zależnie jaką wartość wpiszę timer będzie liczył od tej wartości tutaj od 6 do 255? czy definicja "timer_start" jest zawsze tak zapisana? etykiecie timer_start przypisano na stałe liczbę. W zależności gdzie tę etykietę użyjesz, będzie ona miała wartość 6. Jeśli więc używamy...
1. Czyli mam to tak rozumieć, że bios nie pozwala nam się odwoływać bezpośrednio do pamięci, instrukcji procesora(chodzi o stworzenie zwykłej jakiejś funkcji nie mając systemu operacyjnego - jest to nie możliwe tak jak wcześniej pisałeś we współczesnym komputerze?Dawniej było to możliwe?)? Bios udostępnia funkcje pozwalające na uzycie urządzeń we/wy...
Moim skromnym zdaniem niepotrzebnie zawracasz sobie głowę tą biblioteką, co komplikuje tobie poznanie zasad programowania µC. Podstawa to nota katalogowa... Co do "IDE" to ja osobiście używam kate do edycji i terminala do kompilowania( z udziałem Makefile). Najprostszy kod - echo:[syntax=C]#include <avr/io.h> #include <avr/wdt.h> #include...
freertos interrupt interrupt event interrupt podstawy
politechnice warszawskiej czujnik myszki bezprzewodowej klucz pralka electrolux
odkurzacz zsc69fd2 regulator masażer zepter
Telewizor LCD CCFL nie włącza się z pilota – świeci dioda standby, wysokie napięcie na inwerterze Kod błędu 250 w kotłach Buderus i SMTP