W twoim przypadku zupełnie nie warto i nie rozumiem czemu obawiasz się tak tego odczytu z eeproma.
lucas234 to Ty jesteś programistą i Ty decydujesz jakiego typu jest zmienna i gdzie ona ma być zapisana, w której pamięci w zależności od założeń urządzenia które programujesz i tego co chcesz osiągnąć, tak dla przykładu: deklaracje zmiennych w których pamięciach maja się znaleźć: [syntax=c] uint8_t a; // zmienna w pamięci RAM uint8_t EEMEM b;// zmienna...
Witajcie, właśnie się bawię pamięcią Flash w STM32F0DISCOVERY (chcę się nauczyć obsługi). Efekt? Chyba zablokowałem możliwość zapisu... Kod (dopiero się uczę, więc komentarze mogą zawierać błędy): [syntax=c]#include "stm32f0xx.h" #include "stm32f0_discovery.h" int main(void) { RCC -> AHBENR |= RCC_AHBENR_GPIOCEN;//LEDY GPIOC -> MODER |= GPIO_MODER_MODER8_0...
Witam Pomocy panowie bo juz tydzien sie z tym mecze. Prubuje napisac zapis do Flash. Odczyt mi dziala ok Natomiast cos niebardzo chce zapisac . Pisze w keilu procedura wyglada tak : void AT91F_Flash_Write( unsigned int Flash_Address ,int size ,unsigned int * buff) { unsigned int i,status; unsigned int * Flash; AT91C_BASE_MC->MC_FMR =...
Walczę już kilka dni próbując różnych podejść i niestety się nie udaje, więc postanowiłem spytać, może ktoś miał coś podobnego. Mikrokontroler stm32F407VGT6, potrzebuję zapisać bajt w pamięci flash pod określonym adresem. Mam 2 funkcje do zapisu i odczytu jednego bajtu w sektorze 2 pamięci flash: void flash_init(void) { FLASH_PrefetchBufferCmd(ENABLE);...
Z tym rzutowaniem to wolę jednak "ręcznie" to robić....jakoś tak wydaje mi się bezpieczniej. U mnie akurat sizeof zawsze będzie mniejsze niż 256 gdyż jest to po prostu ilość bajtów do zapisania jednej zmiennej/tablicy/struktury i nie zamierzam robić większych :wink:. Biblioteki z ST są zakręcone..niestety. Zaletą mojego pomysłu jest to że struktura...
Jak masz jakieś pojęcie o programowaniu to nie powinno być problemu. Najlepiej zrobić to na timerze i przerwaniach. Sam program byłby dosyć prosty w działaniu. Ja zrobiłbym tak. Przerwanie z timera przychodzi jakieś 100 000 razy na sekundę. Robisz 1 zmienną na liczenie przerwań i porównujesz z 2 zmienną która określa jasność świecenia. Przez wszystkie...
Znalazłem specjalnie dla Ciebie jeszcze kilka bajtów :D ahahahahaha Bascom stara się być "ignorantoodpornym" czyli jak ktoś może czegoś nie wiedzieć to on to, na wszelki wypadek, robi za niego. W języku C każdą zadeklarowaną zmienną najczęściej inicjuje się jakąś wartością ponieważ po reset nie można być pewnym, że w niej znajduje sie zero lub potrzebna...
W tytule dałeś Arduino a tu się okazuje, że używasz ESP8266 :D Chcesz zapisać 200 pomiarów * 60 sekund * (4 + 4 + 4 + 1 bajtów) = 156 kB? Na wstępie można zoptymalizować trochę zmienne, np. do zapisania milisekund w 60 sekundach nie potrzebny ci int a wystarczy jakaś zmienna 2bajtowa (uint16_t?). Pomiar adc może lepiej będzie zapisać w wartości adc...
Szanowni koledzy, chciałbym zrobić projekt, w którym mikrokontroler będzie generował pewne określone wartości napięcia analogowego za pomocą DACa (16 bit, podłączony przez SPI). Rozdzielczość czasowa jednego okresu sygnału wynosiłaby 2^12 (czyli 4096) próbek na okres. W sumie, na jeden okres spróbkowanego sygnału potrzeba 8kB pamięci. Mikrokontroler...
a tu przesyłam zawartość pliku który mi działa (i to musi być w oddzielnym pliku zapisane właśnie): /***** RAM FUNCTIONS ****/ #include <stdio.h> /* I/O Functions */ #include <AT91SAM7S256.H> /* AT91SAM7S256 definitions */ #include <lib_AT91SAM7S256.H> /* AT91SAM7S256 definitions */ #include <inttypes.h> #include "Board.h"...
Dzięki wielkie! W końcu coś zadziałało, po tak długim czasie! Nie rozumiem tylko dlaczego zerujesz ostatni element bufora?: [syntax=c]__buff[BUFFLEN -1 ] = 0;[/syntax] Nie da się tego zrobić bez bufora? Niestety z RAM jestem na bakier i każda zmienna na wagę złota. Najwyżej podzielę komunikaty na krótsze o wiele. I tak jest już dobrze, w końcu coś ruszyło!
Brak mozliwosci zapisu sugeruje uszkodzenie fizyczne miejsca, w ktorym zmienna ma byc zapisywana. czy bedzie to proba zapisu przez program nakladki, ktory tego nie robi, czy to przez samodzielna edycje jakiegos pliku, ktorego nie bedziesz w stanie zapisac po dokonaniu zmian. "reinstalacja software" [czyli w tym wypadku Windows CE] wskazana jest WYLACZNIE...
Bazując na https://obrazki.elektroda.pl/4178510200_... https://obrazki.elektroda.pl/8769073400_... main.c [syntax=c] /* Virtual address defined by the user: 0xFFFF value is prohibited */ uint16_t VirtAddVarTab[NB_OF_VAR]={0}; uint16_t Virtval[NB_OF_VAR]={0}; uint16_t VarValue= 0; int main(void) { HSE_init(); //systick_init();...
Dokładnie jak napisał przedpiśca. :) Składnia w IAR to np: unsigned int __flash zmienna = 123; //(2 x "_" przed flash) Dokładny opis znajduje się w Help -> C/EC++ Compiler Reference Guide, strona 37.
EEPROM jest zapisywany przy programowaniu, gdy użyjesz dyrektywy $EEPROM. Polecenie DIM zmienna as ERAM Byte jest instrukcją dla µC (jest zapisywane w pamięci Flash) która tworzy zmienną w EEPROM.
Już zgłupiałem. Niemniej jednak fizyczny zapis dokonywany jest po 4 bajty na raz jeśli ustawiłeś zapis 32-bitowy. Więc: mam w buforze daną o wartości 0xAB <- 1 bajt. Zapisuje ją pod adres = 0, więc komórki od 0 do 3 zawierają 0x000000AB tak? Następna zmienna powiedzmy 0xCD zostaje zapisana pod adres 4. I komórki od 4 do 7 zawierają 0x000000CD. Więc...
Poniższy bardziej rozbudowany przykład zaczerpnięty po części z "Help'a" MikroC też nie daje oczekiwanego rezultatu (dalej widzę we wskazanych niżej komórkach tylko wartości 0x3FFF). Dodałem też na pinie RB7 diodę LED migającą co sekundę aby sprawdzić czy uC działa poprawnie - i działa ok: Dodano po 12 Rozwiązałem powyższy problem. Na stronie Microchipa...
(at)paluszasty Właśnie sprawdzałem jak wygląda kwestia dostępu do FLASH i jest tak jak pisałem. Definiujesz stałą z const i automatycznie ląduje ona we FLASH, a z programu masz do niej dostęp bez żadnych specjalnych udziwnień. Czyli definicja: const char tmpchar1 Chyba że z jakiegoś powodu chcemy umieścić zmienne zadeklarowane jako const w RAMie, jak...
Udało mi się wreszcie zapisać i odczytać 16 bitów w eepromie, zrezygnowałem z funkcji, oraz uprościłem instrukcje do niezbędnego minimum: [syntax=c]//reklaracja zmiennych uint32_t address = 0x8080014; //adres eepromu, poczatek jest pod adresem 0x8080000, ten adres to 0x8080000 + 20 uint16_t data_read = 0; //dane do odczytu dwa bajty uint16_t data_write...
Nie przeczytałeś noty aplikacyjnej i dalej marudzisz. Po pierwsze zauważ więc, że nie ma obowiązku używania ARMów, Cortexów, STM32 czy ogólnie emulowania EEPROMu - jeśli masz przy tym cierpieć takie katusze, to przecież nie ma sensu męczyć siebie i nas. To jest ten najważniejszy punkt. Jeśli nie sprawia Ci to przyjemności, a wręcz sprawia "egzystencjalny...
Witam po krótkiej przerwie, Pozmieniałem nieco czasy zmiany stanów linii !CS i pamięć działa - na razie na kabelkach i na prędkości zegara 10 kHz :D. Dodanie szeregowo rezystora 100 Ω na linię zegarową (SCK) niczego nie zmienia - te zakłócenia od linii zegarowej dalej przenoszą się na linię SO. Poniżej kod źródłowy samej obsługi pamięci flash SPI:...
Jeżeli chodzi o ffconfig.h to próbowałem różnych ustawień a z desperacji ;) nawet zupełnie kosmicznych ich kombinacji. Jeżeli chodzi o ustawienia kompilatora to -O0 -> prawie najnowszy bleeding edge toolchain. Przed każdym buildem robię clean'a. Dodam, że dzieje się to na dwóch różnych kartach. Próbowałem też z różnymi typami zmiennych a uchwyt systemu...
Co oznacza to że mam czegoś szukać we flagach - co to flagi? Niestety nie poradziłem sobie jeszcze z zapisaniem zmiennej na stałe w pamięci. [syntax=c]short int d; short int *c = &d;[/syntax] [syntax=c]if((GPIOA->IDR & 0x1) == 0) { //FLASH->WRPR; //Ochrona zapisu jest standardowo nie włączona. Więc nie dotykam jej. //************ Czyszczenie...
Obecnie korzystam z STM32F030F4P6. No to nie masz dużego wyboru. Jeśli masz tych zmiennych nie więcej niż kilkadziesiąt, to wystarczy jeśli zajmiesz na eeprom dwa obszary 1k. Czyli stronę 14 i 15 a PAGE_NB_PVP ustawisz na 1. Jeżeli chciałbym, by EEPROM zapisywał mi od strony załóżmy 15, to wtedy ta linijka kodu przyjmie taką postać?: #define EEPROM_START_ADDRESS...
Wolałbym zapis: Dobry wniosek (tak sądzę). Skąd kompilator ma wiedzieć jaką wartość ma zmienna i ?
tak samo jak wgrywasz flash z programem możesz wgrać zawartość pamięci eeprom pomiń tylko komórkę z adresem 0h bo bywa że się przypadkiem zapisze przy starcie układu reszta do twojej dyspozycji ;) w zakładce programatora memories masz w górnej linijce ścieżkę do wyboru pamięci flash a w kolejnej ścieżce wpisujesz ścieżkę do pliku z zawartością eeprom...
Nie rozumiemy się, ponieważ projekty z którymi Ty pracujesz mają zapewne inne wymagania niż moje. U mnie nie ma żadnej "struktury" - każdy parametr konfiguracyjny jest zupełnie niezależny od pozostałych. I teraz może być tak, że parametr "X" jest zmieniany raz w tygodniu (np. zmienna która odpowiada za przyporządkowanie przycisku do jakiejś funkcji),...
Analizuję od początku, uwzględniając wcześniej nabyte informację. TestFor123 1. wyłączenie przerwań 2. odczytywanie znaku z UART, pakowanie do zmiennej bstatus 3. wysłanie odebranego kodu znaku po uart (coś w rodzaju echo?) 4. Jeśli 5 razy po UART napłynie znak inny niż 123 lub 124 uP zostanie zresetowany 5. Gdy napłynie znak 123 lub 124 zmienna bkind...
Z tych czterech tylko punkt D jest niekiedy prawdziwy. A. dotyczy Flash i EEPROM. B - odczyt z Flash dużo łatwiejszy niż z szeregowego EEPROMu, np. przez bezpośredni dostęp do danej/struktury. C. "Oddzielna przestrzeń adresowa" - to ewidentna wada rozwiązania. Jednolity dostęp do wszystkich danych jest znacznie wygodniejszy. D - przeszukiwanie Flash...
przeanalizuj sobie dobrze ten kdzik poniżej bo on jest dobrze napisany - naprawdę ;) ja wprawdzie kiedyś przy okazju swojej wytrawiarki też zrobiłem sterowanie w Bascomie 2 odbiorników przy 75 krokach ale dałoby radę więcej kroków i jeszcze kilka odbiorników. Z tym, że już nie pamiętam dokładnie zagadnienia więc trudno mi się teraz znowu w to wgryzać....
Witam, poczytałem sporo informacji nt. skryptów linkera, ale niestety jednej rzeczy nie mogę zrozumieć. Mam przykładowy zapis (sam napisałem): [syntax=c] .text : { . = ALIGN(4); __text_start__ = .; /* zmienna zawierająca początek sekcji text */ *(.text) /* kod wykonywalny aplikacji */ *(.text.*) *(.rodata) /* dane tylko do odczytu przechowujemy we flashu...
Kwestia się wyjaśniła. Rzeczywiście problem był ze zmienną Address. Jest typu int, a nie typu wskażnikowego jak zmienna mem. Zatem inkrementacja nie skutkowała przesunięciem o 4 bajty. Kod poprawiłem na poniższy i wszystko działa jak należy. [syntax=c] void writeFlash(void){ mem = returnPointerToFirstEmptyAddressInSector... Address = (uint32_t)mem;...
https://obrazki.elektroda.pl/7245713600_... BK7231 zazwyczaj programujemy przez UART - pozwala na to wgrany przez producenta bootloader. W wyjątkowych sytuacjach jednak możemy niechcący ten bootloader nadpisać - wtedy musimy użyć trybu programowania SPI by odratować zablokowany układ. Tutaj opiszę, jak działa tryb SPI w BK7231 oraz...
Mówisz masz. Ten kod jest prawidłowy dla AT45DB161 więc musisz pozmieniac niektore parametry jak by co. Nie wrzucęci tutaj całego kodu ale tylko niezbedne fragmenty. Zresztą całego nawet nie mogę umieścić :D. Właściwie to interesuje cie tylko zapis więc: unsigned char act_buffer=1; // zmienna globalna void write_to_flash(unsigned char flash_data) {...
K_o_n_r_a_d, jeżeli masz trochę czasu to przedstaw mi swój sposób zapisu/odczytu danych do/z EEPROM. Z góry dzięki. Ja to robię tak mniej więcej: Dim pomocnicza As single At 700 Dim X As Eram Single At 100 X=pomocnicza 'zapis do eeprom pomocnicza=X 'odczyt z eeprom Zrobiłem już dużo sterowników i innych urządzeń ale jeszcze nigdy nie używałem zmiennych...
hmm czyli kompilator tłumaczy to na asembler pózniej rozdziela to co będzie w pamieci ram a co w flash nie jest tak że linijka po linijce trafia do flash kompilator rozdziela co trafia do ram a co do flash??? Dodano po 16 int zmienna=5; po kompilacji postać jest zapisywana w pamięci flash i to samo w pamieci ram na stosie dobrze pojmuje?
Muzyka jest najbardziej uniwersalnym sposobem ekspresji. Niezależnie od języka, kultury czy wieku pewne idee przekazywane przez muzykę się nie zmieniają. Można bezpiecznie założyć iż każdy lubi muzykę - taki czy inny jej rodzaj. Każdy zna to uczucie gdy podczas słuchania naszego ulubionego kawałka nóżka sama lata do rytmu albo ręką przebiera po niewidzialnym...
Co to będą za próbki? Jak często będą zapisywane i odczytywane? Jeżeli dość często będzie zapis - zajeździsz pamięć... ma tylko 10.000 cykli. Zewnętrzna pamięć jest chyba nieunikniona. Dodano po 2 Albo "większy" procesor. Dodano po 1 Co do Twojego pytania - nie wiem, PIC-ki to nie moja specjalność. Może taka porada będzie pomocna - poszukaj w helpie...
Przepraszam , że nie dokończyłem wczoraj ale przysnołem. Nie poszło tak prosto bo nie otrzymuje zapisu na kartę , cały program kompiluje się mi w porządku tzn otrzymuje hex -a, zadaniem poniżej przedstawionego programu jest tylko odczyt jednej wartości z wejścia adc1 oraz zapisanie jej na karcie do pliku o nazwie plik, poniżej przedstawiam listing z...
Mam problem .... a przebiegi powinny być takie same i nie wiem gdzie mam błąd. Kod pilota podany wprost do zmiennej działa a odczytany z Flash tylko częściowo. Nie było by problemu gdyby nie mój upór na tiny 13 (64b RAM) . Może się nie da a ja za bardzo kombinuję . Za wszelką pomoc Dziękuje :) Próbowałem jeszcze zapisać kod jako liczbę binarnie a potem...
Cześć, mam zadanie do rozwiązanie a nie wiem czy się da. Mianowicie mam w programie jakąś zmienną np. : int cena =0; ... Program się wykonuje "coś się dzieje" - przychodzi komenda zmiany cena =100; po czym zasilanie jest odłączone i płytka nie jest zasilana w żaden możliwy sposób. Po uruchomieniu układu oczekuję, że zmienna "cena" będzie równa 100 a...
Przeczytaj mojego posta wyżej. Jeśli chcesz sobie brnąć dalej w pola bitowe, to proszę bardzo. Traktuj moje posty jako ostrzeżenie dla szerszej publiczności, która na podstawie dwóch spojrzeń będzie sobie sama mogła zdecydować czy woli kod który używa jednego bajtu mniej i zajmuje więcej flash (a do tego najeżony jest problemami data race), czy może...
Zaczynam powoli rozumieć o co chodzi z rejestrami, aktualnie bawię się PIC12F1840 (7KB flash, 256B RAM, 256B EEPROM, PDIP8). Czy moje poniższe ustawienia są poprawne ? [syntax=c]// PIC12F1840 - ustawianie rejestrów (czy poniższe ustawienia są poprawne?)// // RA0(AN0) jako analogowe wejście, RA1 jako wyjście cyfrowe dla diody LED // // kod ma działać...
Mówiłem, że działa tylko na AVRach, przypadkiem. Powodem jest to, że AVRy mają Hardwardzki model pamięci i tam uzyskanie stałej w pamięci flash jest mozliwe jedynie poprzez makra PGM. Uwierz - bufor to wskaźnik zainicjalizowany na STAŁĄ. Wrzuć ten kod na MSP430, PICa, ARMa to się przekonasz. Poprawnym rozwiązaniem jest napisanie: char bufor char *bufor...
Cześć p.kaczmarek2! Fragment kodu, którego użyłem do zapisania zmiennej generującej, służy celom programistycznym. Użyję Twojego kodu, gdy już skończysz. Na razie po prostu upewniłem się, że użyto właściwych pozycji pamięci, więc jest on wstecznie kompatybilny z ostatecznym kodem. Mogę potrzebować pomocy w zsynchronizowaniu Twojego repozytorium z moim...
Hmm ;) Wykonuje sie te polecenia dokladnie tak samo jak np "Otworz w IE" czy inne tego typu :) Ja osobiscie Flash Geta nie uzywam, ale sporo programow mam w taki sposob podlaczonych do Operki, i nie zmienia tutaj niczego fakt, ze pracuje w linuksie :) Owszem, troszke trzeba poczytac, zeby poznac skladnie plikow konfiguracyjnych Opery oraz mozliwe do...
W skrypcie linkera po prostu stwórz nową sekcję umieszczoną w konkretnych miejscach. Tutaj przykład z wydzielonymi dwoma ostatnimi stronami pamięci: MEMORY { rom (rx) : org = 0x08000000, len = 128k - 2k rom_p126 (r): org = 0x08000000 + 126k,len = 1k rom_p127 (r): org = 0x08000000 + 127k,len = 1k ram (rwx)...
Jakby co to całość programu znajduje się $regfile = "2313DEF.dat" $crystal = 10000000 Dim Eaddress As Eram Byte At 2 'adres pilota Rc5, zosatał umieszczony pod adresem 2 gdyż z doswiadczenia wiem, że komórki 0 i 1(szczególnie 0) pamięci EEPROM potrafią się skasować przy nagłych skokach napięcia zasilania Dim Epamiec(16) As...
Witam, dzisiaj miałem czas na zgranie kodu i wyrzucenie z niego tego co nie dotyczy tematu: Dodano po 7 Przepraszam za dziwne znaki w komentarzach ale przerzucałem z Windowsa na Linuxa i nie konwertowałem kodowania. Będę wdzięczny za pomoc. Sławek
Spojrzał by ktoś fachowym okiem? Program ma porozumiewać się po one wire z ds18b20 mierzyć temp i gdy temp mniejsza od 40stopni to włączać grzałkę, gdy większa wyłączać ją. Chodzi mi o sprawę samego kodu. Jeszcze raz wielkie dzięki za poświęcony czas. [syntax=asm];***************************... ;* This stationery...
https://obrazki.elektroda.pl/1533250900_... BK7231T/BK7231N to popularny SoC WiFi i Bluetooth, szeroko stosowany w produktach Tuya Smart. BK7231 można znaleźć w inteligentnych gniazdach, inteligentnych żarówkach LED, inteligentnych przełącznikach itp. BK7231 zwykle występuje w postaci modułów, które są pin-to-pin kompatybilne z modułami...
Cześć Co do tego co napisałem wcześniej( będą strony z data sheet do Twojego procka): Jak program odwoła się do obszaru pamięci UNDEFINED(ABORT)str.18,19 to generowany jest wyjątek "data abort", procesor wchodzi w tryb "ABORT MODE" i skacze pod adres 0x00000010 a adres powrotny zostaje zapisyna w rejestrze R14_ABORT,str41. Adres niezdefiniowanej pamięci...
1. Standard to sektor 512B, ale jest to zapisane w strukturach dysku jako zmienna więc są możliwe inne rozmiary. 3. Aby stworzyć plik musisz: - znaleźć wolną jednostke alokacji w tablicy FAT - zaznaczyć ją jako zajęta - (jeśli rozmiar pliku > rozmiar jednostki alokacji to utworzyć w tablicy FAT odpowiedni "łańcuch" jednostek alokacji - uaktualnić...
Arduino - platforma - mikro kontroler - ATmega328 Problem polega na tym że kod: root.ls(LS_DATE | LS_SIZE); wysyła bezpośrednio na rs dane i nie wiem jak np. zapisac je do zmiennej, ewentualnie może jest na to inna funkcja lub nawet inna potrzebna biblioteka, piszę tutaj , bo może ktoś coś podobnego robił. oto kod programu (jest tam sporo deklaracji...
Mam taki problem który męczy mnie od dawna, ale dziś mam potrzebę ogarnięcia tego. Mam taki kod testowy, ale ta sama sytuacja występuje na kodzie sterownika: if(wykrytoFram == true){ zapis do fram } Jak to można zauważyć, wywala esp na próbie zapisu. 13:10:40.689 -> ets Jun 8 2016 00:22:57 13:10:40.689 ->...
Witam, Mam proste pytanie. Zastanawia mnie, w jaki sposób obsługiwane są przez kompilator i następnie w procesorze, zmienne, którym podczas pisania programu przypisuje się konkretną wartość. Istnieje spory zasób informacji o procedurach czytania wartości z obszaru pamięci programu, jednakże przecież przy zwykłym [syntax=c]unsigned char zmienna[2][2]...
Najczesciej Rejestr jest jakby podzielony jest na czesc zapisana na stale w ROM, mozesz ja sobie zbackupowac, ale ponownemu zapisaniu podlega TYLKO pdczas wgrywania od nowa Firmware (nie mylic z zawartoscia pamieci residentFlash) Druga czesc Rejestru jest zmienna i zapamietywana w ten sam sposob jak pliki na Flashu - jak zmodyfikujesz, tak bedziesz...
https://obrazki.elektroda.pl/5694434400_... Moduły zasilaczy warsztatowych, takie jak DPS5005, dostępne są od dłuższego czasum.in. na AliExpress. Doczekały się wielu recenzji, w większości pozytywnych. Jednakże często wskazywanym problemem z tymi modułami jest kiepskiej jakości oprogramowanie – interfejs użytkownika pozostawia...
Ok, problem rozwiązałem poprzez zapis do flasha, na pierwszy rzut oka, działa dokładnie tak jak chciałem, ale może jest coś o czym nie wiem - nieporządane efekty czy cos. [syntax=cpp] const uint16_t CFlashSignature::SIGNATURE = 0xFFFF; bool CFlashSignature::isFristRun() { return *(uint16_t*)&SIGNATURE; } FLASH_Status CFlashSignature::setSignature()...
Jeśli zadeklarowałem zmienną prog_char data=10; wewnatrz funkcji main to sledząc tą zmienną okazało się że został jej przydzielony rejestr R24. Wyłącz optymalizację to też dostaniesz błąd. Kompilator "stwierdził", że zmienna nie będzie "widziana" spoza main(), ma wolny rejestr i w niczym nie przeszkadza używanie tej zmiennej jako rejestru (być moze...
https://obrazki.elektroda.pl/5371288300_... Tutaj pokażę Ci krok po kroku jak skonfigurować urządzenie TuyaMCU, jak uzyskać listę dpID, jak zmapować dpID na kanały i opublikować je w Home Assistant oraz jak stworzyć niestandardową stronę dla urządzenia. W tym temacie omówię tematykę TuyaMCU od strony praktycznej, tak abyś mógł łatwo...
Ze zmiennymi trzymanymi we flashu nie ma tak łatwo, do ich odczytu musisz korzystać z odpowiednich funkcji. Tak jak w pokazanym kodzie dajesz funkcji uart_write_txt ciąg znaków teraz musisz podejść do tego inaczej. Musisz zadeklarować zmienne prezentujące ciągi znaków w sposób: char temp[3] PROGMEM = {'a','b','c'}; , PROGMEM spowoduje iż zmienna będzie...
Drodzy koledzy zwracam się z prośbą o pomoc gdyż temat był wielekrotnie poruszany i obszernie opisywany lecz wszystkie posty dotyczą środowiska WinAvr. Sprawa wydaje się być widziana w innym świetle gdyż przeczytawszy manuala pt. "AVR IAR C/C++ Compiler" stwierdzam, że nie ma tam mowy o bibliotekach które są potrzebne do umieszczania danych we flashu...
Witam, Jako że jestem początkujący w dziedzinie STM32 napotkałem problem nie do przejścia. Moim zadaniem jest wysyłanie inkrementowanej zmiennej "Dane" która jest wysyłana przez USART i odczytanie jej przez terminal. W konsekwencji wyrysowując otrzymane wartości powinienem uzyskać coś podobnego do piły o amplitudzie od 0 do 255. Bez DMA wszystko pracuje...
Przecież ten wyświetlacz pozwala zapalić i zgasić dowolny pixel. Tylko, że ram X adresujesz co 8 bitów, czyli na raz operujesz 8 pikselami. Jeżeli wyświetlacz ma w X 400 pikseli, to adresy w ram są od 0 do 49. Nie musisz się też ograniczać do znaków o szerokości będącej wielokrotnością 8 bitów. Możesz rozważyć drukowanie znaków proporcjonalnych do...
ten kod działać działa ale nie do końca tak jak bym chciał działa jak ustawie godzinę na 10:00 godzinę załączania na 9:01 a godzinę wyłączania na godzinę 10:01 to od godziny 9:01 do 10:01 jest załączona a od 10:01 do 9:01 jest wyłączona ale jak dam godzinę załączania na 10:01 a godzinę wyłączania na godzinę 9:01 to dioda jest cały czas załączona dopiero...
Wydaje mi się, że nieprawidłowo liczysz adresy. Zauważ, że rekordy 02-05 zawierają różnie zapisany adres, który powinieneś odczytywać, a nie zakładać, że przestrzeń adresowana jest liniowo. To ma znaczenie w kodzie, gdzie przesuwasz segmenty, albo tworzysz własne segmenty w pamięci (w BASCOMie tego chyba nie ma, więc możesz się z tym problemem nie spotkać)....
Dzięki wszystkim za opinie. Oddałem dziś projekt został oceniony na 5;] Dokonałem kilku zmian w programie więc wrzucam nową wersję: http://obrazki.elektroda.pl/8149391200_1... Jeśli już eliminujesz drgania styków programowo i w dodatku z użyciem timera, to mogłeś się pokusić o tak samo zrealizowane opóźnienia. Mnóstwo pamięci pożera...
Co to dokładnie oznacza? Nie wchodzi do przerwania, nie wychodzi? Masz sprzętowy debuger? (na jakim środowisku procujesz i jaki programator) I może dodaj sobie diodę do debugowania. Albo wykorzystaj LCD do debugowania. Aby dowiedzieć się do którego momentu program dochodzi. Np,wyświetla się napis HOT ON? A tak swoją drogą to co to ma być? while(!(SPR_GORA)...
Witam Chciałbym zapytać, czy zapis: [syntax=vbnet] Toggle Alarm1.4 [/syntax] można zastąpić np. takim zapisem [syntax=vbnet] Toggle Alarm1.dzien [/syntax] przy założeniu, że zmienna Dzien typu Byte nie przekroczy wartości 7. Mam taki kod: [syntax=vbnet] If Sekundy = 0 Then If Alarm1_status = 1 Then ' gdy alarm 1 wlaczony If Czas_minuty = Alarm1_minuty...
[syntax=c] //Załączenie pliku nagłówkowego #include"LCD.h" //Funkcja ustawiająca linie danych LCD jako wyjścia void output_LCD(void) { DDR(D4_PORT)|=(1<<D4); DDR(D5_PORT)|=(1<<D5); DDR(D6_PORT)|=(1<<D6); DDR(D7_PORT)|=(1<<D7); } #if RW_M==1 //Funkcja ustawiająca linie danych LCD jako wejścia void input_LCD(void) { DDR(D4_PORT)&=~(1<<D4);...
http://obrazki.elektroda.pl/6035825200_1... Witam, w chciałbym się podzielić moim ostatnim tworem jaki powstał z chwili potrzeby. http://obrazki.elektroda.pl/2685746200_1... http://obrazki.elektroda.pl/2820438100_1... http://obrazki.elektroda.pl/1850987000_1... http://obrazki.elektroda.pl/4784630600_1...
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...
Ta tablica nie jest potrzebna - ona jest tylko do celów demonstracji (jak zwykle w przypadku ST bardzo głupiej). Nieprawda. Tablica ta jest kluczowym elementem przy przepisywaniu zmiennych z jednej strony FLASH do drugiej, gdy pierwsza z nich jest już pełna. Procedura EE_PageTransfer() musi wiedzieć apriori ile najbardziej aktualnych wartości zmiennych...
Dzien dobry. Piszę bootloader do procesora atmega32. Bootloader ma dzialać w terminalu więc konwersja ascii -> hex jest przeprowadzana w mikrokontrolerze. Po uruchomieniu, program ładnie się przesyła, wszystko wydaje się być OK. Po resecie jednak nic się nie dzieje. Skopiowałem całą zawartość pamięci i zauważyłem, że drugi bajt jest nieprawidłowo...
Witam nie wiem jak rozwiazac problem z wyswietlaczem 7 segmentowym 4 cyfry a mianowicie wszystko bylo proste jak katody wyswietlacza byly podłączone do całęga portu wtedy stosowalem [syntax=c]PORTC = pgm_read_byte( &cyfry[cy1] );[/syntax] ale niestety w tym układzie co złożyłem pinologia jest następująca segmenty: A -> PORTD3 B -> PORTD1 C...
No i przedobrzyłem Dokonałem optymalizacji kodu, oszczędzając kilkanaście procent pamięci FLASH, ale... sygnał z pilota NEC ( takie małe płaskie na baterie pastylkową ) przestał być odbierany - brak jakiejkolwiek reakcji na naciśnięcie przycisku w pilocie. Poniżej kod: Print Command w przerwaniu Infrared , żeby sprawdzić, czy coś odbiera - reakcji brak,...
Coś się dzieje z tablicą i nie rozumiem :| [syntax=bash] char O_view[5]; uint8_t i_ =0; [/syntax] [syntax=bash] Data_ = 125; for (i_ = 5; i_ > 0; Data_ /= 10, i_--) { O_view[i_ - 1] = (Data_ % 10)+0x30; } O_view[0]=O_view[1]; O_view[1]=O_view[2]; O_view[2]=O_view[3]; O_view[3]= 0x2E; if(O_view[0]==0x30){ O_view[0]= 0x20; if(O_view[1]==0x30){ O_view[1]=0x20;...
1. Bascom jest bardzo dobrym językiem, znacznie lepszym niż Arduino. 2. "a:10.0" "a:10.0 " ":10" "10 " Ten temat jest zamknięty, dostałeś 2 przykłady. Pierwszy napisałem do składni ramki jaką podałeś w pierwszym poście, później zmieniłeś konstrukcję rami to napisałem kolejny przykład, można jak dobrze naliczyłem jeszcze 9 innych metod zastosować by...
twoja teoria jest zla - bin bedzie zajmowal tyle ile bedzie mial potrzebe zajmowac. jesli dasz na koncu pamieci zmienna (a w zasadzie stala), to bedzie on obejmowal caly obszar pamieci flash. jesli nie, to po co ma zajmowac wiecej? wartosci 0xFF (zreszta niezawsze takie) w pamieci znajda sie same, dzieki operacji kasowania ukladu - nie ma potrzeby (a...
Z całym szacunkiem Panowie, ale odnoszę wrażenie, że nie czytacie tego co piszę. Rozwiązaniem nie jest ani wymiana uC, ani opóźnienie załączania zasilania napędu. Problem leży w pozycji początkowej serwomechanizmu vs. zmienna wysyłana przez program. Serwo pozostawione w jednej pozycji, po włączeniu zasilania pomalutku podąża do pozycji drugiej. Serwo...
w 2051 nie ma takiej mozliwosci, mozesz albo zadeklarowac stałą we flashu i wtedy po resecie wartosc bedzie taka sama (ale tez nie mozesz jej w programie zmieniac) albo zapisac ja do pamieci ram i wykonywac na niej działania ale wtedy po resecie zmienna sie wyzeruje jesli chcesz by wartosc zmiennej po wykonywaniu na niej działań byla zapamietywana po...
Witam moje pytanie jest proste ale efektywnej odpowiedzi nie znalazłem, programuje procesor atmega8 w jezyku C w kompilatorze avrstudio, napisałem sobie podprogram generujacy znaki na wyswietlaczu LCD, problem w tym że musze wywoływać "piszznak(tu numer znaku)"dla każdej literki co przy komunikatach długosci 10 literek gmatwa strasznie program...mógłbym...
Jeden masz z BCS drugi z DAHUA Pomieszały mi się pliki myślałem o jednym a pisałem o drugim. Oczywiście chodziło ci o plik który dostałeś i o ten z FTPa BCS już pomijając ten od DAHUA. U mnie wywala błędy nagłówka... Przy : General_31xxH_Eng_N_V2.608.0000.7.R.2017... mam błąd nagłówka Install.lua a przy CONFIG_NSS błąd nagłówka custom-x.cramfs.img...
Niestety próbowałem: memcpy(Tablica_RGB[0], Tablica_R[0], 64); memcpy(&Tablica_RGB[0], &Tablica_R[0], 64); memcpy(&Tablica_RGB, &Tablica_R, 64); memcpy(Tablica_RGB, Tablica_R, 64); i wszystkie generują taki sam błąd. Umieściłem przykład ze znaczkiem "(at)', bo taki wydawał mi się najbardziej poprawny (taki był na wielu stronach z embeddedrelated). Może...
Witam, Ściągnąłem sobie aż 80GB filmów zachecony jakością HD ale nie zwróciłem uwagi na format wideo w którym są zapisane a mianowicie F4V. Próbowałem oglądać je na Adobe media Player ale nie daje się bo strasznie tnie. Zmieniłem ich rozszerzenie na mpg4 i w cinema player jakoś jeszcze obraz płynnie idzie ale brak synchronizacji z audio i ciężko to...
słuszna "opieprzka" , Freddie :))) a więc wygląda to tak : #include "stm32f10x.h" #include "TouchPanel.h" #include "systick.h" #include "LCD/LCD.h" #include "SD_Card/sdio_sd.h" #include "FATFS_V0.08A/src/ff.h" #include "usb_lib.h" #include "hw_config.h" #include "usb_pwr.h" #include "stm32f10x_usart.h" #include <stdio.h> #include "Rtc/RTC_Time.h"...
Przepraszam że nie potrafię tego wyjaśnić ale to nie ja pisałem ten program. Mam taki kod: http://obrazki.elektroda.pl/4548415200_1...
Wybacz Kolego ale można się załamać - nie znasz podstaw programowania! Weź sobie jakąkolwiek książkę do C i przeczytaj chociaż KILKA PIERWSZYCH ROZDZIAŁÓW... Bardzo uprzejmie proszę. Forum nie jest od nauczania C, nawet na przykładach! Najprostszy program ma postać: #include <stdlib.h> #include <stdio.h> int main(void){ sleep(1);...
https://obrazki.elektroda.pl/4441619200_... Oto krótka prezentacja 3-fazowego licznika energii Tuya oferującego dostęp do pomiarów przez Internet. Przetestuję tu jego aplikację, a potem zmienię mu firmware tak by uruchomić go bez chmury i połączyć z Home Assistant. Będzie to wymagać analizy jego protokołu komunikacji TuyaMCU, który...
Mam mały problem z odtwarzaniem plików na at128. Mam taki program: http://obrazki.elektroda.pl/1942480700_1... i fusebity: http://obrazki.elektroda.pl/9041330800_1... Głośnik w obu procesorach podpinam bezpośrednio do pwm i masy. Powyższy program działa doskonale na at32 ale na at128 wogule. Dodam jeszcze że próbowałem...
Okej ale dlaczego nawet gdy zdefiniuje tablice: int zmienna[20]; to pamieci flash nie ubywa po tym procesie wyświetla cały czas 118bytes tak jak na zrzucie powyżej zaciekawiło mnie to ponieważ zdefiniowałem tą instukcją miejsce 40 bajtów dla 20 zmiennych typu int w pamieci flash . zapisywałem nawet jakimiś wartościami te miejsce: int zmienna[20]={30000};...
Potrzebuje przechwytywać do tablicy nazwy plików wydobytych z FAT32 na karcie SD :) Tak więc FLASH nie wchodzi w grę :( Wygląda to tak: w pętli program odczytuje dane z sektorów -> funkcja wyodrębnia istotne informacje i zapisuje do zmiennej (która z każdym powtórzeniem pętli zmienia swoja zawartosć)-> zmienna(z nazwą) ma zostać zmagazynowana w tabeli...
Sorry, wydawało mi się, że będzie czytelniej. [syntax=c]/* USER CODE BEGIN Header */ /** ****************************************... * (at)file : main.c * (at)brief : Main program body ****************************************... * (at)attention * * <h2>© Copyright (c) 2020...
Czy proces 1 może byc przerwany przez kolejną transmisję i co wtedy ma się dziać z niezakończonym procesem 1 ?? proces-1 - jest automatem satnów zależnym od zmiennej stanu "IOSTATE", odpowiedzialnym za odpowiednie zachowanie się układu na odbierane pakiety, inicjuje pakiety do wysłania, oraz podejmuje decyzje co zrobić z odebranym pakietem, (czyli...
1. SE T610 2. Komenda AT+CNMI=2,3,0,0,0 ustawia przesłanie sms bezpośrednio do telefonu w formacie +CMT: <TEKST>, <DŁUGOŚĆ> <CR><LF> <TRYB PRACY> .Po wykryciu komendy na buforze odczytuje konkretne informacje i wykonuje dane działanie. 3. Patrz punkt 2. 4. Napisz na PW. Kod będzie przepisywany na C więc aktualnego nie...
A teraz pytanie o to kiedy używać PROGMEM "tutaj": const unsigned char data[] TUTAJ= { 0x2E,0x73,0x6E,0x64,0x00,0x00, Bo program ruszył bez tego? Chyba ma to znaczenie przy optymalizacji kodu? Mam nadzieje że używasz PROGMEM, to słówko wywołuje to że twoja tablica zostanie zapisana w pamięci programu czyli we flashu, a nie gdzieś w RAMie....
Przepisałem kod z książki tmf'a, ze strony 231 dotyczący wyświetlania multipleksowego. Z początku miałem kłopot ze skompilowaniem przykładu w ATMEL STUDIO bo kompilator sygnalizował błąd Error 1 variable 'DIGITS' must be const in order to be put into read-only section by means of '__attribute__((progmem))' Rozumiem to w ten sposób, że zmienne DIGITS...
Napisałem wersję "new core" dla tego projektu. Niestety zajmuje 82 procent flasha w Atmega8 Dlatego w załączniku jest skompilowane archiwum. W przyszłości planuję napisanie programu, który w łatwy sposób pozwalałby edytować dane w EEPROM, czyli zmieniać treść SMS i numery telefonów. [syntax=vb]'****************************...
flash zmienna zmienna flash bascom zapis zmienna
router uderzenie piorun parametr maszynowy myphone dzwonki
łucznik naprężacz sprinter podłączenie webasto
Szarpanie silnika w BMW E87 - przyczyny i diagnostyka Mini wieża wyłącza się po 20 minutach - przyczyny