https://obrazki.elektroda.pl/2568884200_... Witajcie moi drodzy Zapraszam na kolejną część mojego tutoriala PIC18F2550 i kompilatora SDCC . W tej części zademonstruję jak używać wyświetlacza 7-segmentowego z PIC18F2550 . Kod obsługi wyświetlacza będzie oczywiście napisany w oparciu o przerwania i timery . Cały proces powstawania układu...
W projekcie jest (razem z komentarzami) kilka tysięcy linii w plikach .c i .h, z czego samego bootloadera, który może się Tobie przydać, jest kilkanaście linijek . Próbowałeś z takim prostym kodem, programującym np. z RAM? Analizuję, niektóre rzeczy od razu wywalam bo rozmywają mi obraz całości (kod jest bardzo uniwersalny a mi na tą chwilę niezbędna...
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...
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,...
//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...
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)...
Witam Mam problem z uruchomieniem USB w trybie HID. Oczywiście próbowałem zaprzęgnąć przykład od STM'a. Niestety bez skutku. Zasięgnąłem więc do manuala, straszna bieda i kiepsko opisane. Przeanalizowałem kod od STM'a i spróbowałem zrobić to u siebie. Niestety nic to nie dało. Szukałem w internecie i znalazłem przykład od KEILa. Niestety tak samo zakończyło...
https://obrazki.elektroda.pl/4950580000_... Witajcie moi drodzy W tym temacie poznamy podstawy przerwań i timerów w PIC18F2550 . Na początek będzie krótki wstęp teoretyczny, a potem wszystko przerobimy dokładnie na praktycznych przykładach. Do lektury tematu przyda się ogólna wiedza na temat przerwań i programowania w C, choćby taka...
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);...
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...
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...
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...
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(){...
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...
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...
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>...
[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...
Witam. W internecie znalazłem opis procedury obsługi przerwania INTERRUPT. Niestety używam kompilatora który tej procedury nie obsługuje bo jest przestarzała. Jak wykonać odpowiednik tej procedury używając ISR, tak żeby działała jak w poniższym opisie. http://difer.za.pl/Podstawy_AVRGCC.pdf -strona 39 INTERRUPT (nazwa_uchwytu) { // Instrukcje tu zawarte...
Ż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;...
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...
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...
Witam Po namowach wielu forumowiczów postanowiłem przesiąść się z 8051 na AVR. Niestety już na samym początku napotykam różne przeszkody. Największą dla mnie przeszkodą jest to, że przykładowe programy które są w sieci nie kompilują mi się. Korzystam z Atmel Studio 6.1. Sciągnałem sobie fajny poradnik "Podstawy AVR-GCC" i chciałem z niego korzystać....
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)...
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) |...
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...
Szanowni Forumowicze, Bardzo proszę o pomoc! Napisałem program do obsługi diody RGB na podstawie książki "Mikrokontrolery AVR Język C Podstawy programowania" (Mirosław Kardaś), ale utknąłem na problemie zmiany koloru diody za pomocą przycisku. Chciałbym aby po naciśnięciu przycisku S1-S4 wartość zmiennej x, która jest wykorzystywana w instrukcji "switch(x)"...
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...
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...
Buduję pewien układ zawierający dwa mikrokontrolery ATMega328. Nazwijmy je A i B. Mikrokontroler A ma kwarc 16MHz, a mikrokontroler B ma kwarc 8MHz. Mikrokontrolery są połączone przewodem 4-żyłowym o długości ok. 30cm, z których dwie żyły to zasilanie i masa, trzecia żyła łączy B0 mikrokontrolera A z C4 mikrokontrolera B, czwarta żyła łączy B1 mikrokontrolera...
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ą...
Ok zrobiłem zamiast "enum" dwie tablice ze zmiennymi.Jedna tablica to wybór wyświetlacza a druga to poszczególne cyfry w kodzie liczb szestnastkowych.Wykorzystałem także timer1 dla funkcji przerwania sprzętowego na moim atmedze 16 o częstotliwości około 300Hz. Dlaczego 300Hz?,druga sprawa co jest złego w "enum"?,trzecia sprawa książkę cenię sobie bardzo...
Jeśli mam być szczery to potrafię korzystać z google i zależało mi na szybkim i prostym wytłumaczeniu, jakie timery jak zdefiniować odpowiednio czasy i jak obsłużyć te przerwania. W C robiłem głównie aplikacje konsolowe i znam konstrukcje pętli, umiem korzystać z instrukcji warunkowych i ogólne podstawy. Niestety przy uC zabija mnie tempo prowadzonych...
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;...
ehhhh... no dobra... dam je jeszcze raz, może więcej osób z tego skorzysta. Pochodzą one z jednego numeru Elektroniki praktycznej (nie pamiętam dokładnie z którego). Jest to robot typu Line Follower (podąża za czarną linią). Zasilany jest jedną 9V baterią. Na schemacie masz układ zasilający, mostek H (który w tym wypadku musisz zdublować, po jednym...
freertos interrupt interrupt event interrupt wyłączyć
ustawienie dźwięku filmy zasilacz panasonic martwy czujnik parkowania przód
electrolux esl67070r hamownia motocyklowa
Wskazania czujnika MAP w Opel Astra K 1.4 Turbo Wzrost poziomu oleju w Skoda Fabia 1 po wymianie pompowtrysku