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...
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...
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>...
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....
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...
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;...
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...
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....
[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...
Ż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,...
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...
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...
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...
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...
//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...
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 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...
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...
Przepraszam, że wczoraj nie odpowiedziałem, ale nie miałem takiej możliwości. Otóż dołączam w załączniku kod źródłowy projektu, który bazuje na tym z projektu przykładowego. Dla wyjaśnienia "co się dzieje" w plikach, napiszę co zrobiłem w tym projekcie (w załączniku) i jakie są zmiany. 1) w pliku can_ledcontrol.c zakomentowałem te linie, których nie...
Witam. Próbuje napisać zegarek na PICu. Używam oscylatora 4 MHz. Nie wiem jak zrobic odliczanie jednej sekundy. Pisałam o tym na innym forum i otrzymałam taka odpowiedź: "Jeśli używasz kwarcu 4 MHz to ustaw preskaler na dzielenie przez 64. W takim przypadku do licznika/timer'a będą przychodziły impulsy o częstotliwości 15625 Hz (1000000 / 64 = 15625)....
Witam od 2 dni próbuje zsynchronizować TMI1 (podczas generowania przebiegu PWM) i ADC2 w taki sposób aby przetwornik ADC2 próbkował w czasie gdy gdy nastąpi przepełnienie w liczniku jak poniżej na rysunku: https://obrazki.elektroda.pl/6382692400_... Dodam, że Timer pracuje w trybie "Center-aligned mode 2" a przetwornik ADC2 używa kanału...
1. nie wyobrażam sobie programowania embedded, żeby choć raz na miesiąc nie rozwinąć C do ASM i zobaczyć co wychodzi. Z poczucia obowiązku, procedur w korporacji lub własnej ciekawości. Dyskusja o funkcji się skończy. Znalazł byś statyczny blok pamięci (tzn istniejący przed załadowaniem programu, o jakieś drobne atrybuty różniący się od 'zewnętrznego...
Na podstawie tego, co poleciłeś napisałem coś takiego: [syntax=c] #include "twi_master_driver.c" #include "twi_master_driver.h" #include "avr_compiler.h" // general definitions /*! Number of bytes to send in test example. */ #define NUM_BYTES 3 /*! Defining an example slave address. */ #define SLAVE_ADDRESS 0x80 /*! CPU speed 2MHz, BAUDRATE 100kHz and...
(at)tadzik85 - dziękuję za skrót różnic między nagłówkami :) Ale... no bez jaj. Czyli bit "Global Interrupt Enable" (czy jak on się tam zwał) w AVR, decyduje o tym na jakim poziomie pracuje procesor? ISR z "odblokowanymi" przerwaniami to poziom wątku, a "main" z "wyłączonymi" przerwaniami to poziom przerwań? A całe to "włączanie/wyłączanie" przerwań...
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)...
http://obrazki.elektroda.pl/3075775300_1... W poniższym projekcie zastosowano mikroprocesor PIC18F25K20 do sterowania diodami LED Super-Flux firmy Piranha ze wspólną anodą. Urządzenie może generować kombinację kolorów na podstawie danych zapisanych w pamięci mikrokontrolera lub na podstawie ręcznych nastaw – można wybrać jeden...
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...
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...
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 .
Uczę się pracować z ADC. Procek Attiny26. Podłączenie: - Vcc = 5V - AVcc = 5V - PA0 (ADC0) - wejście - PORTB - wyjście. Program napisałem na podstawie tutoriala. Obecnie chcialem zrobić termometr na dwóch wyswietlaczach LED i LM35. Program nie działał w ogole jak powinien. Po dłuższym dochodzeniu okazało się, że przy wyłączonym procesorze na wyjściu...
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...
Witajcie, zbudowałem samodzielnie funkcję inicjalizacji zegarów i magistrali na podstawie biblioteki Standard Peripherals Library, jednak program nie rusza - na innej funkcji RCC_Configuration wszystko działa dobrze, jednak mi zależy na tym aby uC STM32L152 uruchomić przy jego maksymalnej prędkości 32MHz, a więc z użyciem pętli PLL. Podprogram stworzyłem...
No to jak nikt nie chce pisać i odpowiadać to proszę nie odpisywać. Wątpię że wszyscy się nauczyli przerwań (z którymi są same problemy podczas nauki) z internetu i książki. Oczywiście, że przeczytałem książkę i to nie jedną, i na ich podstawie robiłem swoje wielokrotne próby. No ale to było z 20 lat temu... Ja sie wszystkiego ucze sam, elektroniki,...
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 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ć....
Skorzystałem z CAN example który jest w COIDE: http://obrazki.elektroda.pl/5876838600_1... bit w rejestr MSR nie chce sie wyzerować.
Mam tak: Dodano po 48 Przerwania na pinie PD0 nie działają ale już na pinach PD2, PE0 i PE3 tak. W STM32F105_107xx Datasheet.pdf jest tabelka z pinami i ich funkcjami. Dla PD0 jest w kolumnie Main function after reset wpisane OSC_IN, natomiast w pinach, które działają jest to odpowiednio PD2, PE0, PE3. Rzeczywiście w moim programie może być coś źle...
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(){...
Jakiś miesiąc dobroci, wszyscy go zaczynają nagle bronić... (; Skoro taki był "w porządku" i "uczciwy", a tylko "coś nie wyszło", to czemu po prostu tego wprost nie napisze raz a dobrze, kończąc tym samym wszystkie dyskusje? Tylko niech ta historia będzie wiarygodna, a nie bajka z kosmosu. Przecież na kickstarterze można przyznać się do porażki. Napisać...
witamnapisalem program do zliczania impulsów i wyświetlania ilości na wyświetlaczu tid(opel) .program działa prawidłowo ale po jakimś czasie sie zawiesza.Poczytałem troche na forum i doszedłem do wniosku iż brakuje watchdog-a. Na podstawie innego programu dodałem jego obsługe i program przestał działać. Nie wiem co jest tego przyczyną, w jaki sposób...
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...
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...
Witam Config Timer0=Timer, Prescale=64 Load Timer0, 173 On Timer1 przerwanie Enable Timer1 Enable Interrupts przerwanie: Load Timer0, 173 {rozkazy wykonane w przerwaniu} Return Do odmierzania tego czasu nie trzeba używać Timera 1 - licznika 16-to bitowego. Wystarczy timer 0 lub 2. Dla Timera 1 kod mógłby wyglądać następująco: Config Timer1=Timer,...
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....
https://obrazki.elektroda.pl/6206626500_... Przedstawię tutaj prosty w użyciu moduł pozwalający na uzyskanie dodatkowych portów I/O. Jeden PCF8574 sterowany jest tylko dwoma sygnałami, a daje nam aż całe 8 konfigurowalnych wejść/wyjść razem z dodatkowym opcjonalnym sygnałem przerwania. Co więcej, dwa piny mogą wysterować jednocześnie...
Witam, chciałbym, żeby ktoś obeznany wyjaśnił mi dlaczego podane na poniższej stronie stwierdzenie jest poprawne: http://www.freertos.org/Embedded-RTOS-Bi... Think of a binary semaphore as a queue that can only hold one item. The queue can therefore only be empty or full (hence binary). Tasks and interrupts using the queue don't care...
Witam, mam do napisania program, który będzie sterował jasnością świecenia diód, konkretnie ma to być sterowanie PWM za pomocą przebiegu trójkątnego ( Chodzi ogólnie o to żeby dioda się ściemniała i rozjaśniała automatycznie). Jeden PWM ma być softwarowy (pętla w funkcji main) a drugi na podstawie wbudowanego pwma. Wbudowany pwm ma przebieg prostąkątny,...
Czegoś tu nie rozumiem. Razem z FatFS można ściągnąć gotowy, działający przykład na LPC17xx, ze wszystkimi potrzebnymi funkcjami obsługi SPI i dostępu do karty. Dlaczego go nie użyjesz, tylko próbujesz szyć coś z jakichś dziwnych łatek? Jeśli chodzi o SPI, to LPC11xx jest bardzo podobny do LPC17xx. Próbowałem z niego korzystać, a konkretnie pracowałem...
Próbuje ostatnio samemu zainicjalizować USB. Problem w tym, że niby ustawienia rejestrów są zgodne z dokumentacją, PCet wysyła paczkę SETUP (wnioskuję to na podstawie rejestru OTG_FS_GRXSTS) i w tym momencie mam problem, albo nie potrafię odczytać tego co dostaję, albo dostaję jakieś śmieci. [syntax=c]RCC_AHB1ENR_GPIOAEN_BB = SET; GPIO_Port_Cfg(GPIOA,...
Specyfikacja architektury mówi, że jeśli bit STKALIGN nie jest zaimplementowany, to procesor wyrównuje stos przy wyjątku. Jak jest zaimplementowany, to programista może wyłączyć wyrównanie. Domyślna wartość - to 1 (czyli włączone wyrównanie, ale ja nie dotarłem do jednoznacznego potwierdzenia, że tak musi być wg. ARM - tak JEST w tych procesorach, które...
Nie jestem, bo kompletnie nie znam C. To dla mnie czarna magia. Widzę, że muszę zrekonstruować program i coś pozmieniać. Znalazłem coś równie ciekawego. Procedura w Bascom opracowana na podstawie plików w ASM '---------------------------------------... 'name : TB_peda_debouncer_BP_V1.bas 'date :...
Na początku dzięki na wyczerpującą odpowiedź :) Co do schematu, to napisałem, że narysowałem go na podstawie noty : http://www.datasheetcatalog.org/datashee... , różni się tylko kondensatorem i potencjometrem. Naprawdę siedziałem nad tym dobre kilka godzin próbowałem tak jak orginalnie w helpie jest, ale po tych kombinacjach pojawiło...
Witam! Mam następujący problem... Otóż muszę przygotować sterownik serwomechanizmu modelarskiego z transmisja przez SPI. Ale wywalam się na samym początku... W swojej pracy muszę wykorzystać wewnętrzne zasoby mikrokontrolera(AT89C51RD2)... naturalnie chodzi o PWM. I tu pojawia się problem, nie wiem czy dobrze rozumiem idee PWM i serwa modelarskiego....
Hmm moglibyście spojrzeć. Napisałem coś takiego, jednak na LCD są tylko jakiej pasy. Obrazu brak. Stworzyłem bufor 2kB, i dwa wskaźniki na niego (na jego początek i środek). DMA ustawione na circular i zapisuje ciągle ten bufor. Dodatkowo zgłasza przerwania po przesłaniu połowy bufora i całego. I na podstawie tych przerwań próbuję w pętli głównej na...
Witam Próbuję postawić FreeRtos'a na LPC2141 przy wykorzystaniu Sourcery G++ Lite zmontowanego z Eclipsem. Pliki startowe Startup, vectors, lpc2141_rom ściągnięte ze strony Freddiego - dla porządku załaczone do tematu. _________konfiguracja plików startowych______________ w plikach zrobiłem standardowe kosmetyczne zmiany lpc2141_rom //ustawienie stosów...
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...
•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...
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, Posiadam płytkę DISCOVERY z STM32F4 i próbuję uruchomić USB w trybie device. Napisałem prosty program w C# do wysyłania danych i wygląda to tak, że mogę wysłać jedynie 72 paczki danych. Steruję zapalaniem diod na płytce za pomocą strzałek na klawiaturze po 72 kliknięciu transmisja się zawiesza. Ma ktoś pomysł na co powiniennem zwrócić uwagę?...
Dziękuję Wam wszystkim za odpowiedzi. Na podstawie opisu, który napisał Freddie udało mi się napisać taki kod. Niestety nie mam pomysłu jak rozwiązać czwarty punkt. Na chwilę obecną nie mam możliwości podłączenia do płytki żadnego wyświetlacza ani komputera poprzez port szeregowy. Dlatego aby zobaczyć czy kod w ogóle ma zamiar działać mrugam diodą co...
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...
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...
Witam, postanowiłem zbudować sobie miernik pojemności i indukcyjności. Znalazłem w internecie kilka rozwiązań, ale swój projekt chcę oprzeć następujące rozwiązanie: http://www.avrprojects.info/avr-projects... O ile znana jest mi metoda pomiaru i obliczenia indukcyjności i pojemności w obwodzie rezonansowym,...
Kolego Bartolini1 mi się chce zawsze... :-D . Tylko mała dygresja. Nie traktuj poniższego jako gotowy program. Choćby sprawa makr do uruchamiania przerwań. Jak wiemy możliwa jest do realizacji na wiele sposobów. Tutaj chodzi o samą idee i płynące z niej pożytki. Program piszę z głowy co nie znaczy, że to teoria. Herr Moderator zapewne się nieco zeźli...
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...
https://obrazki.elektroda.pl/3305421000_... Ostatnio trafiłem na czujnik tętna oparty o element fotoelektryczny. Testując czujnik UV z cyfrowym interfejsem Ostrzeżenie: Tego typu tanie czujniki "medyczne" nie mają nic wspólnego z prawdziwą elektroniką medyczną, prezentuję tutaj efekty własnych prób podejmowanych na własne ryzyko, osoby...
Witam. Piszę sobie sterownik temperatury w Bascom '51 i mam problem z przerwaniem. Otóż serce układu to AT89C52 do niego jest podłączony RTC DS1678. Ustawiłem RTC, aby na wyjściu INT generował co sekundę impuls. Podaję ten impuls na wejście INT0 procesora. W obsłudze przerwań dałem ustawienie zmiennej Bit na 1, na podstawie jego inicjuję w pętli głównej...
Ok, więc sprawa wygląda tak: program wpada w przerwanie lecz urządzenie nie jest nadal rozpoznawane przez komputer. Wielkości stosów zostały ustawione na 4096. Podczas debugowania tego samego kodu przez keila i Eclipse znalazłem gdzie jest problem, wyglądał on dość łatwy, dopóki nie zacząłem go rozwiązywać, a dokładniej do teraz nie mogę go rozwiązać....
Witam W swojej krótkiej przygodzie z 8051 (w zestawie zl2mcs51) zacząłem zapasy z timerami/counterami. Wszystko szło dobrze do czasu,gdy postanowiłem zmusić diodę do świecenia przez 1s co 1s. W katalogu widnieje, że częstotliwości zegara to 60MHz przy programie na wewnętrznym flashu i 40MHz przy programie korzystającym z zew pamięci. Brałem pod uwagę...
no wiec naskrobałem takie rzeczy: PWM inicjalizuje funkcją: void PWM5Init(void) { //Preskaler CCLK/PWMPR+1) PWMPR = 59; //Zgodne zbocze kasuje timer PWMMCR |= PWMMCR_Reset_on_PWMMR0; //Ustaw PWM5 jako wyjscie PWMPCR |= PWMPCR_PWMENA5; //Ustaw rejestr zakres 100 PWMMR0 = 100; //PWM= 50% PWMMR5 = 50; //Wykonaj zapis MR0 i MR5 PWMLER =...
Panuje nawet pogląd, że LPC się programuje tak jak AVR bo się używa zapisów z rejestrami. Wiele ludzi twierdzi, że są prostsze niż STM. ST upakowało naprawdę wypaśne peryferia, ale też je się da programować jak AVR:) Najbardziej śmieszy opinia o tych "mega-wypaśnych" ustawień, jak to musi być skomplikowane, 32-bitowiec, ARM, 1000-stron manual i strasznie...
Witam kolegów po fachu. Od 3 dni walczę z problemem. Tłumaczę o co chodzi. Staram się odczytać za pomocą stm32f103 szerokość impulsów PWM pochodzących z 4 kanałów odbiornika RC. Skonfigurowałem 4 przerwania zewnętrzne EXTI, na 4 kanałach , wyzwalane zboczem opadające i rosnące. Ustawiony jest również TIMER4 z przerwaniem od przepełnienia który liczy...
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...
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ć,...
Troszkę irytował mnie kod startowy jaki zaproponował KEIL dla mojego mikrokontrolera LPC2318. Postanowiłem więc okroić go do niezbędnego minimum. Z tego co poczytałem dokumentację, wynikało iż najważniejsze jest ustawienie adresów stosów dla poszczególnych wyjątków, ustawienie sterty (jeżeli takowej będziemy używać), ustawienie mapowania pamięci, inicjalizacja...
Jak się upierasz przy ASM, ale nie chcesz wszystkiego pisac od zera i cos podejrzeć "jak to jest zrobione" no i ogarniesz podstawy programu MicrochipStudio to w nim można otworzyć przykładowe programy (z biblioteki ASF) lub ściągnąć sobie gotowy przykład z -> https://start.atmel.com/#examples/touch Taki przykład mozna odpalić w MicrochipStudio w...
Tylko że Aktualnie po wyzwoleniu na każdym wyświetlaczu widać odliczenia: 1,2,3....9. Widzisz zapalone cyfry czy ich przeciwieństwo ? Witać jakieś szalone cyfry, ani to przeciwieństwo, ani logiczne wyniki. Na czas prób wyświetlania można by zmienić linię disp=(clock_second*100)+clock_millisecon... na disp=1234; //wyświetlamy 1234 by sprawdzić wyświetlacz...
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...
Procesor STM32F103ZET6 jest mikrokontrolerem ARM z rodziny Cortex M3, który jest taktowany zegarem o maksymalnej częstotliwości 72 MHz i zasilany napięciem +3,3 V z wyjścia stabilizatora napięcia LT1117-3.3 (oznaczony desygnatorem U10 ). Poniżej przedstawiam napisany przeze mnie kod pliku main.c na procesor STM32F103ZET6, który steruje steruje dwiema...
A wiec tak: Gdzie się podziało zainicjowanie licznika podczas wejścia w procedurę przerwania, drogi kolego ? oto ona: // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x40; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00;...
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>...
Po pierwsze - WSZYSTKO jest w komentarzu powyżej tej tabeli, tam jest podana postać assemblerowa - jak sobie ją skompilujesz, to otrzymasz DOKŁADNIE taki sam efekt. Ja pierniczę. Nawet przeszło mi to przez myśl, ale od razu to odrzuciłem bo nie sądziłem że ktoś inny niż ja jest w stanie coś takiego zrobić. A co dopiero Ty, zwolennik uniwersalności i...
DVD, czy w Twoim schemacie można zasilić drivery MOSFETów (TC4422/1) z 18V? Mam zasilacz z magnetowidu co daje 5V/12V/18V/25V (ostatnie wyjście niestabilizowane). Niby z datasheetu wynik, że maximum to 20V, ale wolę się upewnić niż coś zjarać: To jest wartość absolutna. Zalecane maksimum to właśnie 18V - osobiście wolałbym raczej trzymać się jednak...
http://obrazki.elektroda.pl/5752299700_1... Witam Chciałbym zaprezentować wykonaną przeze mnie półprzewodnikową cewkę Tesli. Cewka ta powstała ponad rok temu i była moim pierwszym "poważnym" projektem. :) Cewki Tesli, jak wiadomo są urządzeniami służącymi do generowania wysokich napięć (i jak widać na zdjęciach, pięknych wyładowań ;)...
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...
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...
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...
Witam! Wykorzystując interfejs I2C chce komunikować się z akcelerometrem BMA180. Interfejs I2C zrealizowany sprzętowo za pomocą kontrolera I2C0 z wykorzystaniem przerwania.Samą komunikację już zrealizowałem, ale mam problem z jej rozwinięciem. Poniżej przedstawiam kod który działa "poprawnie". Główny problem polega na tym, że chciałbym napisać funkcję...
składanie zmiennej przez |= miało pokazać co musiałbym zrobić aby uzyskać podobny kod wynikowy do tego co wygenerował kompilator. I ja tak nie piszę lecz takie coś na podstawie prostej operacji wygenerował kompilator. Tak wygląda mój kod bo widzę, iż ktoś sięciągle czepia przykładu jak mniej więcej wyglądać musiałby kod źródłowy aby uzyskać taki dziwny...
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)"...
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...
Na podstawie książki Mikrokontrolery AVR Język C Podstawy Programowania Pana Mirosława Kardasia napisałem taki program. Problem w tym że po ściemnieniu nadal widać że te ledy leciutko świecą...w jaki sposób to wyeliminować???? Oto ten kod: [syntax=c]#include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #define LED_0_ON...
Status SOLVED. Dla potomnych wyjaśniam co było nie tak. Otóż wszystko wynikało z różnicy w "prędkości działania" niektórych funkcji - konkretnie w Bascom w funkcji: [syntax=basic4gl] Sub Rf12_ready Reset Spi_cs While Spi_sdo = 0 Wend End Sub [/syntax] Czas między zresetowaniem pinu CS a początkiem oczekiwania w pętli na stan wysoki na pinie MISO jest...
1. void ReadEncoder(); #define GLUE(a, b) a##b #define LEDPORT1(s)GLUE(PORT,s) #define LEDPORT LEDPORT1(LED) #define LEDDDR1(s)GLUE(DDR,s) #define LEDDDRLEDDDR1(LED) a) Co to jest? Coś jak podprogram? Ale dlaczego zakończony średnikiem? Pierwsza linia to deklaracja funkcji, dalsze linie...
dziękuje za zainteresowanie. $crystal <Attiny2313.h> $regfile <Delay.h> #define Sw Pind.6 #define Jmp Pinb.0 #define Vcc Pinb.2 #define Clk Portb.3 #define Rst Portb.4 #define In Portb.1 #define Out Pinb.1 #define Led Portd.0 #define Buzz Portd.1 #define Prz Portb.5 #define Del 15 Char Pytanie[48] = {1 , 0 , 1 , 0 , 0 , 1 ,...
Zaciekawił mnie układ opublikowany w Edw 12/03 "zamek na karte TPSA". Zrobiłem, działa..... ale niestety czasami sie wiesza. Ponieważ to pierwsze moje spotkanie z 90s2313 i jezykiem C może ktoś mi pomoże dołożyć do poniższego kodu watchdoga, tak żeby układzik sie nie wieszał ? Bede bardzo wdzieczny. Dodam że kompiluje to CodeVision AVR C Compilerem....
Temat tego postu jest po części rozwiązany, ale mimo to chciałbym zapytać o przyczynę zaistaniałego problemu. Otóż jestem posiadaczem płytki sam7-EX256 Olimex i zaczynając przygode z programowaniem ARM-ów wykorzystuje darmowy kompilator GNUARM. Przy poszukiwaniu przykładowych programów wykorzystuje example z katalogu C:\WinARM\examples\at91sam7s64_Atmel_int...
freertos interrupt interrupt event interrupt wyłączyć
odłączenie przewodu świecy telefon grzeje ładowania przetwornica xenon działać
American DJ Revo – reset lampy, przycisk serwisowy, DMX, instrukcja Jak rozmontować obudowę mieszadła do zaprawy?