Witaj. Spróbuj: [syntax=dos](at)echo off set "s1=$m='[DllImport("user32.dll")]public static extern Int32 SwapMouseButton(Int32 bSwap);" set "s2=public static void SwapMB(){ int isright=SwapMouseButton(1); if (isright != 0) { SwapMouseButton(0); } }';" set "s3=add-type -name Import -member $m -namespace Dll; [Dll.Import]::SwapMB();" set "ps_swapmousebutton=%s1%%s2%%s3%"...
Prosty program w C# , odbieranie i wysyłanie przez port LPT. W załączniku: - Program.cs - wystarczy utworzyć nowy projekt na konsoli w C# i skopiować zawartość, - inpout32.dll - biblioteka, należy skopiować do katalogu "Debug" projektu, - LPT.exe - gotowy program, jeśli podłączycie diodę pod jakiś pin LPT D0-D7 to będzie migać. [syntax=csharp]using...
Zmienna static w pliku nagłówkowym? WOW. extern poczytaj...
[syntax=csharp] using System; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; namespace TabEdit { public partial class Form1 : Form { private const int EM_SETTABSTOPS = 0x00CB; [DllImport("User32.dll", CharSet = CharSet.Auto)] public static extern IntPtr SendMessage(IntPtr h, int msg, int wParam, int[] lParam); public...
Nie sprawdzałem czy działa, exe jest tutaj http://mmm777.kilu.de/temp/MonitorOn.exe Źródło: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; namespace MonitorOn { public partial...
https://obrazki.elektroda.pl/4046511300_... CH341 to popularny interfejs USB, który umożliwia komunikację z urządzeniami SPI, I²C, UART oraz bezpośrednią kontrolę pinów GPIO. Dzięki temu modułowi można np. programować pamięci Flash, czy odczytywać dane z różnych czujników. Tutaj pokażę, jak można go samodzielnie obsłużyć z poziomu...
Warning: Sector header check failed. Format this sector (0x00000000). Warning: Sector header check failed. Format this sector (0x00001000). Warning: Sector header check failed. Format this sector (0x00002000). Warning: Sector header check failed. Format this sector (0x00003000). Warning: Sector header...
W czym rozwiazanie z zamiana *.c na *.inc oraz warunkowa kompilacja w pliku types.common.c jest lepsze od warunkowej kompilacji kazdego pliku types_xxx.c z osobna ? type1.c: [syntax=c] #ifdef TYPE1 //tutaj wszystkie funkcje #endif [/syntax] type2.c: [syntax=c] #ifdef TYPE2 //tutaj wszystkie funkcje #endif [/syntax] Jak chcesz bardziej wyszukanego rozwiazania...
U mnie (Katowice) z DCF77 nie ma problemu, oczywiście zdarza się, że przez jakiś czas nie działa, ale przecież nie musi - wystarczy że złapie sygnał od czasu do czasu. Z tego co zauważyłem, to strasznie przeszkadza w odbiorze DCF77 komputer. Kiedy miałem zasilane układy przez USB to generalnie był problem, gdy je zasilałem osobno - z sieci lub z baterii...
[syntax=c] DCB PortDCB; COMMTIMEOUTSCommTimeouts; HANDLE hPort; const unsigned short const_bufo=256; //maksymalna iloϾ danych odczytywana jednorazowo z portu const unsigned short const_bufn=1024; //wielkoϾ bufora nadawczego const unsigned short const_stos=65535; //wielkoϾ Stosu odbiorczego (maks 65535) const unsigned...
nieulotna to volatile ... Jesteś pewien, że "nieulotna"? oczywiście, że ulotna - mój czeski błąd - słuszna twoja uwaga Dodano po 10 volatile - obojętnie gdzie to tylko wskazówka dla kompilatora, aby nie optymalizować no pewnie, że masz rację że można dać obojętnie gdzie słówko volatile jeśli chodzi o zmienną - tylko nie mów, że wszędzie je dajesz?...
Hmm... Co do sh_link, to poniżej fragment mojego skryptu, który tego problemu nie ma (przynajmniej u mnie takie "przestawienie" pomagało) . = ALIGN(4); __exidx_start = .; PROVIDE(__exidx_start = __exidx_start); .ARM.exidx : { . = ALIGN(4); *(.ARM.exidx* .gnu.linkonce.armexidx.*); } > rom AT > rom /*...
https://www.nxp.com/downloads/en/softwar... Rzeczywiście nie rozpisali się w tym doku odnośnie sterowania GPIO za pomocą tej biblioteki, ale to nie jest jakaś tajemnica. Wystarczy zajrzeć do kodu odpowiedzialnego za gpio. [syntax=c]/* gpio_13xx_1.h * (at)brief LPC13xx GPIO chip driver for LPC13(15/16/17/45/46/47) families *...
Wstęp Poradniki pomagające w tworzeniu oprogramowania na mikrokontrolery skupiają się głównie na wykorzystaniu peryferiów samego mikrokontrolera, co jest zrozumiałe, ale niestety rzadko skncentrują się na części programu, która wykonuje się przed funkcją main. Poniższy poradnik ma na celu przybliżenie tej części programu na podstawie GNU ARM toolchain...
(at)tarwirdur, nie badałem jeszcze problemu z nagrzewaniem się LN882H i nie wiem, czy mój jest gorący, czy nie, z doświadczenia wiem, że musisz włączyć PowerSave 1, aby zmniejszyć ogrzewanie. Mamy zaimplementowany PowerSave na różnych platformach, zobacz nasz poradnik: [youtube]https://www.youtube.com/watch?v... W skrócie jest to...
Cóż, udało mi się uzyskać natywny WS2811 działający na LN882H poprzez wyłączenie tłumaczenia, ale czasami przestaje działać. Chip również robi się dość gorący. Prawdopodobnie zrobiłem coś źle. Nie jest to też dla mnie priorytet. Potrzebujesz spiled dla innego chipa? commit 5a702ce796142bbde38aa30b4ffdc761811345ea Author: NonPIayerCharacter <18557343+NonPIayerCharacter(at)users...
(at)pkaczmarek2 , właśnie znalazłem coś dziwnego i mogłem wyjaśnić wiele problemów. wygląda na to, że skrypt nie bierze pod uwagę niektórych pustych systemów. Oto przykład, który zmodyfikowałem w poleceniu DeepSleep, aby uniknąć pętli rozruchowej. (podejrzewałem, że system wykona skrypt przed zakończeniem rozruchu) static commandResult_t CMD_DeepSleep(const...
Da się, przy czym trzeba użyć funkcji samego windows. Dodajesz w klasie importy: [syntax=csharp][DllImport("kernel32.dll"... static extern IntPtr GetConsoleWindow(); [DllImport("user32.dll")] static extern bool ShowWindow(IntPtr hWnd, int nCmdShow); const int SW_HIDE = 0;[/syntax] Następnie, w metodzie Main, na samym początku, dodajesz [syntax=csharp]var...
http://obrazki.elektroda.pl/1699057700_1... Witam! Chcę przedstawić niewielką konstrukcję co pozwala bardzo wolno, z określoną prędkością przesuwać kamerkę/telefon podczas nagrywania wideo/zdjęć z w trybie 1 klatka na sekundę czy na kilka sekund. http://obrazki.elektroda.pl/1699057700_1... http://obrazki.elektroda.pl/5900873100_1...
To było pisane "z palca" na poczekaniu, nie wymagaj za wiele. Skoro naparza ten klawisz w kółko, to tak widocznie sobie życzył autor tamtego zapytania. Udaje wciskanie klawisza do momentu, aż ten piksel nie powróci do stanu pierwotnego. Jak będzie miał kolor startowy, to przestaje udawać i napis "piksel został zmieniony" znika. [syntax=csharp]using...
Nie widzą bo nie ma w innych plikach extern a w pliku gdzie się znajdują jest static przy deklaracji. Generalnie ostatnio się dowiedziałem że używanie extern przy rozbudowanym projekcie w C jest błędem. Powinno się właśnie utworzyć prosty interfejs czyli funkcje robiące get i set dla konkretnych danych w strukturach, żeby nie było bałaganu jaki powstaje...
Windows nie jest systemem czasu rzeczywistego, a już na pewno nie jest nią platforma .NET :) Jest raczej nastawiony na obsługę zdarzeń. Sam pomiar czasu czy porównanie dwóch czasów zajmuje ileś-tam mikrosekund, więc raczej nie zrobisz super-dokładnego zegara, który się nie będzie rozjeżdżał z czasem. W mikrokontrolerach można sobie wyliczyć ilość cykli...
Tworzenie aplikacji użytkownika w C++ ma wiele zalet, więc nie jest zaskakujące, że język ten staje się coraz bardziej popularny wszędzie, w tym w systemach opartych na małych mikrokontrolerach. Projekt „mbed” jest w pełni skoncentrowany na tym języku. Wiele RTOSów zapewnia warstwę kompatybilności z C++, ale w przeciwieństwie do „dużych”...
C# syntax
Używasz Dllimport-a. Masz tu przykład innej dll jak to się robi: [DllImport("user32", EntryPoint = "SendMessageA")] protected static extern int SendMessage(int hwnd, int wMsg, int wParam, [MarshalAs(UnmanagedType.AsAny... object lParam); pozdrawiam
Dowolny serwis GSM albo komputerowy zrobi to pewnie Koledze za grosze, jak Kolega pójdzie z płytką myszy i zakupionymi przyciskami. A jeśli chce się to jednak zrobić "aby było", to można sobie zamienić te przyciski miejscami. Ten prosty programik to zrobi: [syntax=csharp]using System.Runtime.InteropServices; using System; class SwapMouse { [DllImport("user32.dll")]...
dzieki wlasnie tez do tego doszedlem a dla tych ktorzy szukaja to [DllImport("kernel32.dll&qu... SetLastError = true, CharSet = CharSet.Ansi)] private static extern bool WriteFile(uint hCommDev, byte[] lpBuffer, uint nNumberOfBytesToWrite, out uint lpNumberOfBytesWritten, ref OVERLAPPED lpOverlapped); [DllImport("kernel32.dll&qu...
Trochę czasu minęło od momentu, kiedy postanowiłem zbudować własny inerface I/O na USB. Po wielu godzinach studiowania różnych przykładów z internetu zrobiłem układ oparty na przykładzie z Microchipa. napisałem prostą aplikację w C# sterującą PIC-em. Obecnie działa mam opanowane włączanie i wyłączanie LED-ów z poziomu aplikacji. Problem mam natomiast...
http://obrazki.elektroda.pl/5748352100_1... Dostałem do naprawy ledowe światełko Stage Lighting SPD018. W wyniku obdukcji pacjenta okazało się że procesor P89V51R82FN nie daje oznak życia. Klient chciał żeby jak by się dało reagował na dźwięk lub na DMX z obsługą 3 kanałów. Część DIY dotyczy właściwie samego oprogramowania. Jako że...
Ostatnio pisałem autokliker do myszki w C# z wykorzystaniem systemowej biblioteki user32.dll Dołożenie przycisków z klawiatury nie powinno być problemem. Do kompilacji polecam darmowe Visual Studio Community. A poniżej proof of concept dla myszki. Polecam testować np. na hodowanku piesełków :) [syntax=csharp] using System; using System.Collections.Generic;...
Dzięki, wchodziłem wcześniej na tą stronkę, ale myślałem że jest tam tylko w C++. Myliłem się :) Żeby nikt nie musiał szukać napisze krótko. Wystarczy ściągnąć plik "inpout32.dll" i umieścić go w folderze projektu (w debug, lub relase), a w kodzie programu dodać klasę: public class PortAccess { [DllImport("inpout32.dll", EntryPoint="Out32")] public...
Przepraszam, pomyłka z pośpiechu: Poprawka: Dodano po 2 Coś mi nie działa to importowanie bibliotek z przykładu: Dodano po 4 Poradziłem sobie z zmianą czasu... A jest możliwość pobrania czasu z sieci (internetu) do okna aplikacji w C# ?
To, że monitorowałbym cały czas uchwyt i stan okna. W zależności od wywołania skierowałbym np. stan po zminimalizowaniu na DEVMODE/DEVCON z SDK by szybko zmienić rozdzielczość przy pomocy API i w trakcie maksymalizacji czy trybu pełnoekranowego wrócić do niższej. Część kodu dla otwartego notatnika już mam - dla minimalizacji z dowolnego stanu: function...
Cześć! Po kilku małych projektach opartych na Nucleo i Discovery postanowiłem wykonać trochę bardziej skomplikowany i praktyczny projekt - odtwarzacz plików WAV z karty SD i... zwracam się do Was z prośbą o pomoc 😄 Projekt oparty jest o STM32F103RCT6 do którego podłączone jest gniazdo kart microSD i DAC (PCM1780). Za pomocą FatFs odczytuję plik WAV...
hhhm więc tak: znalazłem takie dwa importy: [DllImport("advapi32.dll&qu... CharSet = CharSet.Unicode, EntryPoint = "RegOpenKeyEx")] private static extern int RegOpenKeyEx(IntPtr keyBase, string keyName, IntPtr reserved, int access, out IntPtr keyHandle); [DllImport("advapi32.dll&qu... CharSet = CharSet.Unicode,...
Witam, Mógł by ktoś sprawdzić czy mój kod jest prawidłowy? Ponieważ nie mogę odebrać danych z Esp przez protokół UART. * * uart.c * * Created on: 11 lut 2021 * Author: admin */ // uart.c #include "prj.h" volatile char uart_buf[MAX_UART_BUF_SIZE]; volatile char uart_rsp[MAX_UART_BUF_SIZE]; volatile int uart_buf_idx =0;...
Dzięki za szybką odpowiedź. Wcześniej były podejmowanie próby uruchomienia dll-ki w C#, sama funkcja command (nota bene jedyna udostępniania przez bibliotekę) byłą wywoływana lecz pojawiał się inny problem w dalszej pracy z dll-ka. Jednak na podstawie sposobu podpięcia funkcji command w c# można wnioskować, że rzeczywiście typy TLnId i TStatus to są...
Cześć! Poszukuję wsparci gdyż powstał mętlik w głowie. Mam program, który komunikuję się z modułem GSM, używa wielu globalnych tablic, funkcji operujących na strumieniach typu strcpy, str n cpy, strstr, strtok, poniżej wklejam większość deklaracji dużych zmiennych: Dodano po 1 Przeniosłem deklarację StackPoint z .int1 do .int3 i program zaczął wyświetlać...
Dzięki wielkie za odpowiedzi. Sposób marcinj12 działa jak najbardziej. Włączenie procesu trwa jednak chwile, krótką, ale jednak. Sposób antekone także działa, ale natychmiastowo po wywołaniu funkcji [syntax=csharp] using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Text; using System.Windows.Forms;...
Hej, Nigdy się nie bawiłem portem LPT. Kiedyś (parę lat temu) napisałem prosty programik w TurboPascalu komunikujący się z portem dżojstika (w karcie dźwiękowej). Do portu podłączone były 2 druciki, który to następnie dołączony były do 2 blaszek a całość umocowana w framudze drzwi. Druga blaszka przyczepiona była do drzwi i w momencie gdy drzwi zostały...
https://obrazki.elektroda.pl/9798266800_... Zwykle przy przeglądaniu nagromadzonych skarbów w postaci części el. przychodzą mi do głowy pomysły ich wykorzystania. Tak było i tym razem. Z jakiegoś starego projektu została mi para nadajnik/odbiornik 434MHz OOK, attiny13 i kilka DS18B20, pomyślałem że na tej bazie zmajstruję prosty bezprzewodowy...
W takim razie wygląda na to że SoundStream nie da się zatrzymać jeżeli jest w trybie PlaySycnc(). Możliwe rozwiązania: 1. Sprawdź czy dostajesz to zdarzenie https://msdn.microsoft.com/pl-pl/library... po zakończeniu grania poprzez .Play() wtedy przerabiasz wszystko na tryb asynchroniczny, czyli ładujesz...
Witam. Mam problem, którego nie mogę rozgryźć. Do kodowania wykorzystuję C# .net 4. W programie głównym tworzę piaskownicę (AppDomain), która ma uprawnienie typu SecurityPermissionFlag.UnmanagedCode. Ładuję w piaskownicy plik assembly, który do pracy wymaga uruchomienia procedury z pliku DLL (setupapi.dll). Deklaracja w skrócie wygląda tak: "Attempt...
Musisz niestety troszkę się pouczyć C. Includuje się pliki .h, które zawierają: [syntax=c]/* definicje i makra */ #define STRSIZE 50 /* deklaracje typów */ typedef struct { int a; float f; double d; char c[STRSIZE]; }mytype; /* deklaracje funkcji ale bez definicji (czyli "ciała") */ int foo(int,int, mytype *); /* ddeklarcje extern - zmiennych zdefiniowanych...
Okej, zatem spróbujmy przystosować bibliotekę, którą mi podlinkowałeś do moich ćwiczeń ;-) Skopiowałem pliki EVE.h, EVE_commands.c, EVE_commands.h, EVE_config.h, EVE_target.c, EVE_target.h do odpowiednich folderów w projekcie. Teraz tak: W pliku EVE_target.h trzeba wybrać i włączyć jedną z konfiguracji. Jeśli dobrze myślę to mnie interesuje ta konfiguracja,tak?...
Trzeba dodać funkcję: [/code] caddr_t _sbrk (int size) { extern char __heap_start; extern char __heap_end; static char *current_heap_end = &__heap_start; char *previous_heap_end; previous_heap_end = current_heap_end; if (current_heap_end + size > &__heap_end) { errno = ENOMEM; return (caddr_t) -1; } current_heap_end += size; return (caddr_t) previous_heap_end;...
Pliki nagłówkowe zazwyczaj tworzy się, aby umożliwić współdzielenie - typów danych, funkcji, czy zmiennych globalnych - pomiędzy oddzielnie kompilowanymi plikami źródłowymi. Z tego powodu deklarowanie zmiennych globalnych czy funkcji w plikach nagłówkowych jako static z reguły nie ma sensu, bo chodzi nam o to, aby te zmienne były współdzielone, czyli...
Witam serdecznie. Niżej kawałek kodu z pliku main.c W tym kodzie odczytuje sekundy z zewnętrznego układu RTC po I2C. Jak widać stworzyłem sobie funkcję "odczytaj_sekunde" w pliku "main.c" przed funkcją główną: unknown type name I2C_HandleTypeDef Co oznacza, że funkcja nie wie czym jest "I2C_HandleTypeDef" i to jest dla mnie jasne. Próbowałem zainkludować...
Chcę móc dynamicznie alokować pamięć, której rozmiar jest z góry znany, a nie ograniczony stosem. Oczywiście coś jest nie tak, bo nigdy nie dostaję NULL, a przy większej liczbie alokowanych liczb procek się zawiesza (A mój debuger ma dziś fochy i nie odpala ;-( ) W skrypcie linkera za sekcją bss mam: [syntax=c] _heap_size = 256; SECTIONS { ... . = ALIGN(4);...
Ramka z kamery ma 160*120*2 = 38400 bajtów. Poniżej pokazuję strukturę jaką chcę właśnie przechowywać w pamięci. [syntax=c] extern char _fb_base; static struct framebuffer { int w; int h; int bpp; int ready; mutex_t lock; uint8_t pixels[]; }*fb = (struct framebuffer *) &_fb_base; [/syntax] gdzie _fb_base = 0xD0000000 No i ramkę obrazu wrzucam za pomocą...
Witam nie rozumiem do końca takiego fragmentu kodu. Co jest tworzone w pamięci, jakiej wielkości tablica pixels będzie? Co robi "& _main_ram_start;"? W kodzie linkera jest linijka: _main_ram_start = 0x20000000; [syntax=c] extern char _main_ram_start; static struct framebuffer { int w; int h; int bpp; uint8_t pixels[]; }*fb = (struct framebuffer *) &...
Dzięki za wszystko i cierpliwość. Tu wychodzą moje braki w programowaniu, wskaźniki, przydziały pamięci statyczne i dynamiczne, mapa pamięci uC etc etc...i jeszcze wiele etc... W assemblerze programowałem jeszcze na Commodore 64 (jakies proste gierki w hi res), ale to bylo ze 20 lat temu.Ostatnio proste rzeczy w AVR i od pół roku STM32. No ale do przodu...małymi...
Zaprojektowałem i zbudowałem płytkę wyposażoną w procesor STM32F107RCT6 oraz dekoder popularny MP3 VS1003. Jest to kolejna wersja starszego projektu na PIC32, który przenoszę na nowy mikrokontroler. Większa część projektu PCB pochodzi ze starej wersji. Do komunikacji z VS1003 używam popularnej biblioteki Andy'ego Karpova, którą już wcześniej przeportowałem...
Po ludzku czyli tak: 1. Zmienne/stałe są TYLKO I WYŁĄCZNIE w plikach źródłowych (*.c, *.cpp, itd.) 2. Jeśli chcesz aby zmienna była prywatna dla danego pliku jej definicję poprzedzasz słowem "static" - teraz każdy plik może mieć zmienne o takiej samej nazwie, ale nie będą się one nakładać, nie ma też możliwości udostępnienia ich "zewnętrznie" wg punktu...
Witam Napisałem sobie procedure dla ATmega2560, która w zalożeniu ma zwracać liczbę wolnej pamięci jaką może zająć stos. Niestety nie działa do końca tak jak bym sobie tego życzył... Nie rozumiem dlaczego wartosć __stack nie ulega zwiększeniu (a w zasadzie zmniejszeniu zgodnie z kierunkiem rozrastania sie stosu) wraz z alokowaniem porcji danych. Algorytm...
No ale co to zmienia? zrobisz ją static w przerwaniu, czyli będzie miała zasięg lokalny. Teraz, żeby z reszty programu coś widzieć zrobisz globalną flagę, która - uwaga - musi być extern volatile. Gdzie tu sens?
Kwestie napięcia weryfikowałem tak piszesz już wcześniej na UNO. Tam odczyty w ogóle są - i wykrywa urządzenia, na NANO nie wykrywa. Na każdym z czujników taki sam. Wynalazłem też standardowy DS18B20 (nie na przewodzie, na nóżkach) i też działa na UNO, zarówno pod 5V jak i 3V jak i z zewnętrznym zasilaniem. U mnie akurat wpisanie 2 skutkuje miganiem...
Witam, Mam potencjalnie banalny problem z odczytem stringa z przerwania UART w pętli głównej programu. Kiedy przesyłam przez UART ciąg znaków są one odbierane, jednak przy próbie wyświetlenia ich na wyświetlaczu którego obsługa znajduje się w pętli głównej programu zamiast przesłanego stringu widzę losowe śmieci z pamięci (np. fragmenty danych poprzednio...
Witam. Tworzę projekt oparty na mikrokontrolerze ATTINY414. Powstaje on w środowisku Microchip (Atmel) Studio. Program ma wyświetlać aktualną temperaturę z czujnika oraz średnią kroczącą temperatury z ostatnich 24 godzin. Dane chciałbym wyświetlić na małym wyświetlaczu OLED, 128 x 32, sterownik SSD1306 (komunikacja przy pomocy I2C). Mikrokontroler ma...
Witam, próbuje od paru dni przypisać statycznej metodzie obsługę zewnętrznego przerwania. W przypadku gdy statyczna metodę umieszczę bezpośrednio w obsłudze przerwania wszystko działa poprawnie: [syntax=cpp] class GPIO { public: static void EXTI_0(void); private: }; void GPIO::EXTI_0() { } extern "C" void EXTI0_IRQHandler(void) { if(EXTI_GetITStatus(EXTI_Line0)...
caddr_t _sbrk_r (struct _reent *r, int incr) { extern char end asm ("_end"); /* Defined by the linker. */ extern char ram_end asm ("_ram_end"); static char * heap_end; char * prev_heap_end; if (heap_end == NULL) heap_end = & end; prev_heap_end = heap_end; if (heap_end + incr > &ram_end)...
Jakiś fizyczny sposób załączenia przerwania timera przerwaniem od INT0 . Szukam i nie mogę znaleźć żadnych przykładów ani bardziej szczegółowego opisu jak to ugryźć , we wcześniejszych odpowiedziach nikt nie napisał dlaczego nie można używać delay w przerwaniu a w prostej wersji programu nie wpływało to na działanie. Teraz mam bardziej rozwinięta wersje...
http://msdn.microsoft.com/en-us/library/... Niestety to u mnie nie działa, a powód może być taki: This code example defines the following: Platform invoke declarations for the native methods in Windows Embedded CE. A structure to pass to and receive from the native methods. A managed method named ShowMemory, which displays the available memory....
Podaję się, nie mam pojęcie czemu to nie działa: [syntax=c]#define F_CPU (1000000) #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #define LED_DATA PORTD #define ANODY_PORT PORTC #define CA1 (1<<PC0) #define CA2 (1<<PC1) #define CA3 (1<<PC2) #define CA4 (1<<PC3) //const unsigned char cyfry[]...
Mój program przedstawiam poniżej, widać że komunikacja i2c działa bo 2CSlaveBuffer I2CWriteLength = 2 zamiast I2CWriteLength = 3. Kiedy miałem 3 otrzymywałem same zera - nie rozumiem przecież zgodnie z tym co pisałeś wysyłam adres 0xD0, adres poczatku pamięci 0, i ponownie adres 0xD0 + 1 czyli 3 ośmiobitowe dane.
Szanowni Forumowicze, Mam problem z Virtual Port COM. Używam procesora STM32F103VBT6. Na nim chcę zrobić taki sterownik uniwersalny kilka wejść wyjść oraz USB do wysyłania komend i odczytu stanu wejść i wyjść. Chcę zrobić to tak że np mam wyjście powiedzmy PA0 i jest tam podłączona dioda i po wysłaniu komendy "LEDON" włączy się. Niestety mając do dyspozycji...
Korzystam z GuiBuildera i emWin na STM32F429i DISC1. Chciałbym automatycznie odświeżać napis (zmienna array) na polu TEXT. Tekst odświeża się po kliknięciu przycisku ale już automatycznie nie wiem jak zrobić. Kod z obsługą zdarzeń od kliknięcia itd. [syntax=c]/*****************************... * * * SEGGER Microcontroller...
W każdym temacie odpowiadam to samo ostatnio, to pewnie dlatego, że nikt nie szuka przed zapytaniem. http://www.elektroda.pl/rtvforum/topic13... Jeden i drugi przykład zawiera stosowne definicje dla heap - __heap_start, __heap_end oraz __heap_size. malloc() z newlib jest niezbyt dobry dla mikrokontrolerów moim skromnym zdaniem - zajmuje ~1.2kB...
(at)krzysiek_kutno Odszukaj w kodzie, który masz odwołań do pionu IO. Zwykle są to pojedyncze instrukcje. One na sztywno mają jakąś maskę, odzwierciedlającą położenie pinu. Tę maskę zamień na zmienną globalną, którą będziesz modyfikował w swoim kodzie. Gdyby załącznik był w zip to bym sobie go podglądnął, ale jestem zbyt leniwy na rozpakowanie rara...
Witam Posiadam wyświetlacz LCD 4x40 ABC040004A00 Piszę w Keilu w C. Mój problem polega na tym, że wyświetlacz nie działa tak jak powinien. W głównej pętli programu wykonuję sekwencję [syntax=c]sprintf(Linia,"----"); lcd_locate(0,2); text_down(Linia); sprintf(Linia,"texttext"); lcd_locate(0,3); text_down(Linia); sprintf(Linia,"----"); lcd_locate(0,0);...
Pewnie to coś banalnego przeoczyłem ,ale nie jestem przyzwyczajony do korzystania z bibliotek, zazwyczaj staram się pisać wszystko od początku. Masz rację - przeoczyłeś. Musisz sam określić w jaki sposób enkoder/dekoder będzie zgłaszał błędy kompresji pliku. W tym celu musisz zdefiniować sobie funkcje i struktury odpowiedzialne za reakcję na wystąpienie...
Jeżeli chodzi o pierwszy warning w tej bibliotece dotyczy SIG_USART_TRANS w sekcji __AVR_ATmega169__ [syntax=c] /* * FreeModbus Libary: AVR Port * Copyright (C) 2006 Christian Walter <wolti(at)sil.at> * - Initial version + ATmega168 support * Modfications Copyright (C) 2006 Tran Minh Hoang: * - ATmega8, ATmega16, ATmega32 support * - RS485 support...
Mam wrażenie, że do tego jest GOT - moje rozwiązanie: [syntax=c]__attribute__ ((used,section(".header"))) void start() { extern int __bss_start__, __bss_end__, __got_start__, __got_end__; int *ip, ads, gec; static /* const */ int icoa=(int)&icoa; /* icoa = "int containing own address" * &icoa is real address, icoa contains linker address * cannot...
Temat pewnie trochę nie do tego działu, ale prawdopodobnie w dziale Automatyka, nikt nie będzie w stanie mi pomóc w tym temacie. Jakiś czas temu ktoś napisał bibliotekę Settimino.h do komunikacji Arduino z PLC Siemens. Przy połaczeniu ethernetowym korzystam z UNO czy Mega wraz z modułem ethernetowym W5100, jeżeli korzystam z ESP32 to łączę się przez...
Cześć, próbuję właśnie napisać obsługę interfeju USB z użyciem FreeRTOSa (to moje pierwsze spotkanie z RTOSem na mikrokontrolerze). Stworzyłem sobie wątek czekający na semafor ustawiany w przerwaniu, wykonujący kod biblioteki USB. Kod wygląda tak: [syntax=c]#include "stm32f0xx_hal_pcd.h" #include "FreeRTOS.h" #include "task.h" #include "semphr.h" #include...
Słowo kluczowe extern nie oznacza ze coś będzie widoczne w innym pliku, tylko ze pamięć na to będzie zadeklarowana w innym pliku. W pliku .h powinieneś zdefiniować strukturę, natomiast w pliku .c powinieneś dołączyć plik .h i zadeklarować pamięć na nią plik.h ////////////////////////////////////////... #ifndef plik_h #define plik_h /* tutaj wstawiasz...
Witam wiec tak wpisałem to co mi kolega przesłał i wyskakuje teraz taki błąd Arduino:1.6.9 (Windows 10), Płytka:"Arduino/Genuino Uno" In file included from sketch\output\scanner.cpp:1:0: C:\Users\TOSHIBA\Documents\Arduino\libra... error: 'Arduino' does not name a type Arduino.h ^ In file included from C:\Program Files\Arduino\hardware\arduino\avr\cores...
Witam! Próbowałem napisać jakiś prosty program wykorzystujący zmienne dynamiczne, niestety program przestawał działać w momencie wywoływania funkcji malloc bądź sprintf. Podobne przypadki były już tu omawiane, jednak ten jest trochę inny: syscalls.c #include <sys/types.h> #include <errno.h> #include "uart.h" caddr_t _sbrk(int...
Dane przesyłane do tej kolejki są z funkcji TickHook, a wygląda to tak: [syntax=c]char *pcMessage = "Status: PASS"; xHigherPriorityTaskWoken = pdFALSE; xQueueSendFromISR( xLCDQueue, &pcMessage, &xHigherPriorityTaskWoken );[/syntax] Funkcja TickHook jest wykonywana z każdego przerwania systemowego, natomiast dane przesyłane kolejka są raz na określona...
Tak to ja, dołączam kod - main.c: [syntax=c]#include "main.h" #include "fatfs.h" SPI_HandleTypeDef hspi2; TIM_HandleTypeDef htim2; UART_HandleTypeDef huart2; void send_string(char* s) { HAL_UART_Transmit(&huart2, (uint8_t*)s, strlen(s), 1000); } volatile uint16_t Timer1=0; uint8_t sect[512]; //char buffer1[512] ="Selection of VAM is set by the previous...
michalko12: Zmieniłem xHandleTaskLED1, xHandleTaskLED2 na static, ale nic to nie pomogło. xLastFlashTime nie można: error "initializer element is not constant". W keilu żadnej tej zmiennej nie miałem jako static a program działał więc podejrzewam, że nie tu jest problem. Dodano po 4 Smashing: Jak wrzucam Twój program do Eclipsa to się nawet nie kompiluje...
W skrypcie linkera zmieniłem rozmiary stosów : __main_stack_size = 2048; __process_stack_size = 2048; Do projektu dołączyłem biblioteki gcc: #include <errno.h> #include <sys/types.h> oraz funkcję _sbark: caddr_t _sbrk (int size) { extern char __heap_start; extern char __heap_end; static char *current_heap_end = &__heap_start;...
Od jakiegoś czasu nie importuję gotowych rozwiązań bibliotek C, tworząc własne - o dużej gęstości informacji, co przypadkiem przekłada się na wydajność i wyliczony koszt zużytej energii/funkcję. Wymaga to dużego nakładu pracy - to prawda. Przepisywanie rejestrów nie jest czasochłonne, po jakimś czasie zdefiniowanie jakiegoś procesora zajmuje pojedyncze...
Według mmnie masz problem w innym miejscu i bo static tam nie jest potrzebny. Sam na to nie wpadłem, że przy tej zmiennej powinien być static. Ogólnie to były czasy FreeRTOSa w wersji 5.xxx (2007 rok) i do tej pory w necie krąży sporo przykładów z modyfikatorem static przy tej zmiennej. Rzeczywiście w obecnym projekcie nie używam już statica przy tej...
Mam trochę problemów z tą platformą a szczególnie z jedną rzeczą która mnie mocno denerwuje - brak jakiegokolwiek wsparcia !!! Czekam na odpowiedź z Propoxu i wiem że niedługo się doczekam, ale dzisiaj poruszę to na forum. Mam nadzieję że ktoś rozwiązał problem , który mnie dręczy a mianowicie: - chciałbym sterować portami z częstotliwością rzędu 200...
Mam problem z kompilacją syscalls.c. Projekt dotyczy LM3S6965. syscalls.c wygląda jak poniżej: syscalls.c:27:5: warning: ISO C forbids nested functions syscalls.c:27:31: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'asm' cs-make: *** [gcc/syscalls.o] Error 1 Co może być powodem? Brak jakiegoś...
Próbuję zrozumieć zasadę działania timera0 w normalnym trybie pracy, ale niestety mój kod i sposób rozumowania najprawdopodobniej jest zły, ponieważ dioda nie miga. W związku z tym chciałbym poprosić kogoś o weryfikację kodu oraz mojego rozumowania, bo może coś robię źle. W kodzie zamieściłem stosowne komentarze więc nie będę ich dublował. Częstotliwość...
1. Jak wspomniałem komendy gdb wziąłem z innego projektu, a że nie znam dobrze gdb więc konfiguruję wszystko metodą prób i błędów. Zamieniłem zatem soft_reset na reset_halt i tez działa. Zostawię tak jak poleciłeś. 2. Kod startup'a nie jest mojego autorstwa, był razem z paczkami od Luminary (albo z dema FreeRTOSa). //**************************************...
http://obrazki.elektroda.pl/3438606900_1... Kurs: C mamy typy: -podstawowe: typy znakowe, całkowite i rzeczywiste -pochodne: wskaźnikowe, tablice, struktury, unie. Typy i zmienne całkowite http://obrazki.elektroda.pl/5522476200_1... Rozmiary zmiennych danego typu http://obrazki.elektroda.pl/7250805900_1... Użycie...
Próbowałem, nadać tej funkcji taką samą nazwę, lecz wtedy wyświetla mi błąd wielokrotnej definicji. Poszukałem też implementację funkcji _sbrk z newlib i wygląda ona tak: caddr_t _sbrk (int incr) { extern char end asm ("end");/* Defined by the linker. */ static char * heap_end; char * prev_heap_end; if (heap_end ==...
Udalo mi sie napisac dzialajaca bibloteke. Problem byl jedynie z obsluga urzadzenie, jego statusu, configu. Jednak dla mnie to nie byl maly problem i ciesze sie ze w koncu to rozwiazalem. Oto kod i krotki film: https://filmy.elektroda.pl/51_1352475444...
Kolego, C to C niezależnie, czy na mikrokontrolery, czy na PC. Więc ponowię radę - kup książkę do nauki C i ją przeczytaj, zanim zaczniesz coś pisać. Z twojego opisu wynika, że robisz babol na babolu, w dodatku bez zrozumienia co i po co się stosuje. Może to brutalne, ale prawdziwe. AVR Studio używa avr-gcc (czyli WinAVR) do kompilacji projektów w C,...
Hej Freddie, tym razem to już mam poważny problem i proszę Cię o pomoc. Problem mam cały czas z przerwaniami. Nigdy mi w sumie tak naprawde nie zadziałaly na tym projekcie od stm. Przerobiłem Twoją tablice wektorów przerwań: /** \file vectors.c * \brief STM32 (STM32F101 - STM32F103) vector table and __Default_Handler() * \details STM32...
1. Biorę przykład projektu ARM (akurat ten dla STM32, bo posiadane przezemnie LPC2103 ma za mało pamięci flash na te okrutne funkcje printf()) z mojej strony - http://www.elektroda.pl/rtvforum/topic13... 2. Wrzucam do main() następujący kod: #include <stdio.h> #include <math.h> #include <errno.h> #include <sys/types.h>...
Witam, Wszystkie tablice w moim kodzie większe niż 10 elementów ma jako zmiemme globalne. W funkcjach nie tworzę tablic wiekszych niż parę elementów. Oto przykład takich tablic: #define MB_MAX_QUEUE_SIZE 1024 #define MB_MAX_FRAME_SIZE 256 #define MB_MIN_FRAME_SIZE 5 typedef struct _MbPbFrame { unsigned char MBRxQueue[MB_MAX_QUEUE_SIZE];...
ENKODER.H To raz. Dwa - nie ma nigdzie sei(); Trzy - jak jest otwarty kolektor to trzeba zrobić pullup na linii wejścia. Napisałeś też push pull więc w sumie nie wiadomo jakie jest wyjście z enkodera. 1) Ile mam błędów? Dlaczego mi to nie zadziała? ( : 2) Czy wyjscia A i B mogę podłączyć zgodnie ze schematem? Czy muszę dodać oporniki? Co to znaczy...
W kernelu masz pod GOODiX GT9271 s1033x-kernel-c63da2f.140805.111347.tgz\... sterownik: gt9xx.c /* drivers/input/touchscreen/gt9xx.c * * 2010 - 2012 Goodix Technology. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free...
Tak jak przypuszczałem - już następny problem ze wskaźnikami: Jak przekazywać wskaźnik ? To skrócony do minimum kod: [syntax=c] flagi.h //*********************************** static struct wire{unsigned char fc; unsigned char serial[6]; // nr serial unsigned char crc; char text[9]; // opis urz. unsigned char sub_zero; //...
[syntax=text]Witam książkowy program trochę przerobiony do swoich potrzeb i wyskakują takie błędy jak w temacie. Proszę o jakieś wskazówki. Bo właśnie się poddałem (brakuje mi pomysłu brak wiedz z c), szukałem i w google ale nic nie znalazłem. Zaczyna przygodę z c i się uczę dobra kod programu[/syntax] [code][syntax=c] plik LED4_Plex.c #include <avr/io.h>...
Chyba tak jest, tutaj plik startup_stm32f10x_md.c [syntax=c]/** ****************************************... * (at)file startup_stm32f10x_md.c * (at)author Coocox * (at)version V1.0 * (at)date 12/23/2009 * (at)brief STM32F10x Medium Density Devices Startup code. * This module performs: * - Set the initial SP * - Set...
progmem extern static routing stm32 static
scenic alternator wymiana łożysk silnika schemat wiertarka stołowy
zakłócenia magazyn energii terma gazowa
Bezpieczniki Linde E18 – lokalizacja, wartości, wymiana, typy MEGA/MIDI, ATO/ATC KEMET R76 A/MKF B1 – parametry kondensatora foliowego, zakres pojemności i napięć