Do komunikacji z układem można wykorzystać instrukcje I2csend i I2creceive , po wykonaniu w zmiennej Err jest kod błędu: [syntax=basic4gl]I2csend 112 , &B00010000 ' I2csend adres układu, wartość I2creceive 113 , Zmienna ' I2creceive adres układu, zmienna[/syntax]
zapis writeeeprom zmienna , adres odczyt readeeprom zmienna , adres Musisz pamiętać ile bajtów zajmuje zmienna którą zapisujesz i o taką wartość zwiększyć adres przy zapisie / odczycie następnej zmiennej Jeśli zmienne typu Byte , adres zwiększasz o 1 Jeśli zmienne typu Word , adres zwiększasz o 2 Jeśli zmienne typu Integer , adres zwiększasz o 2 Jeśli...
Tutaj znajdziesz niezły opis adresowania pośredniego - Rkarcz [url=http://www.elektroda.pl/rtvforum/vi... Opcji jest kilka wystarczy poszukać :) Takie FC na szybko, myślę, że sobie coś dopasujesz.
uint32_t *napiecie; jest WSKAŹNIKIEM na zmienną typu uint32_t. Nie jest zmienną! Żeby wszystko grało, trzeba ten wskaźnik ustawić na jakiś adres, np.: [syntax=c] uint32_t *napiecie; //wskaznik uint32_t zmienna; // jakas zmienna napiecie = &zmienna; //teraz wskaznik napiecie przechowuje adres zmiennej "zmienna" [/syntax] Pozdrawiam
Nie zostaje wyzerowana, ona całkowicie znika. To co napisałeś powoduje utworzenie zmiennej lokalnej, o takiej samej nazwie jak zmienna globalna (jest ona w ciele funkcji przesłonięta). Zmieniasz więc wartość zmiennej lokalnej, która po opuszczeniu funkcji jest niszczona i tworzona ponownie po wejściu do tej funkcji. W efekcie zmienna globalna zmienna...
Witam Z tego co pamietam to by cokolwiek zapisac i odczytac z epromu nalezy podac tez adres komorki pamieci . W BASCOMIE to wyglada chyba tak : Writeeprom Tekst ,adres a potem odczytujemy Readeeprom Tekst ,adres AT90S2313 ma 128 bajtow pamieci EEPROM, wiec jest 128 komorek jedno-bajtowych komorek pamieci. Stad adres : 0-127 Nie wiem jak wyglada sprawa...
Temat odrobinę podpada pod "zaniżanie poziomu". Jeśli argumenty są w cudzysłowach, to znaczy, że są typu String. Prawda? Podstaw je pobierając z komórek lub InpuBox'a... Przeanalizuj taki[syntax=vb]Dim zmienna As String, zmienna2 As String zmienna = Range(InputBox("wpisz Np a1:g65")).Address MsgBox zmienna 'adres zakresu zmienna2 = Range(InputBox("wpisz...
uint8_t* ram, to nie jest zmienna typu uint8_t, tylko zmienna typu "wskaźnik do uint8_t". &ram odczytuje adres wskaźnika. Użyj: [syntax=c]PrintNum(ram);[/syntax] Tak samo jak chcesz przypisać coś, to musisz pisać [syntax=c]*ram = wartość;[/syntax] Jeśli odczytać wartość zmiennej spod Twojego adresu (nie adres wskaźnika): [syntax=c]Print(*ram)[/syntax]...
Do konwersji łańcucha na zmienną numeryczną wykorzystaj funkcje VAL lub HEXVAL . Mając już adres zmiennej, możesz użyć instrukcje INP do pobrania wartości. [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 80 $swstack = 80 $framesize = 80 Declare Sub Show_byte(byref Adres As String) Declare Sub Show_word(byref Adres As String) Declare...
Można zadeklarować prawidłowo zmienną eeram W ten sposób Dim Adres_er(size_t_mac) As Eram Byte At Adres_p_mac Poprzez komende AT znam adres, po jaki będzie się odwoływać zmienna eeram w pamięci. Niestety, ale z Eepromem ten numer nie przejdzie , ponieważ Bascom ignoruje etykiety w Eepromie. Deklaruje, jakie wartości powinny być zapisane w eeram...
tego typu instrukcje sa niewskazane we wstawkach, bo nie pozwalaja kompilatorowi dokonac dobrej optymalizacji. niemniej jednak akurat ta instrukcje powrotu mozna wykorzystac i nie powinno z tym byc problemow. pytanie pierwsze: mozna uzyc lekkiego helpa ze strony tworcow assemblera. nalezy najpierw zaladowac wartosc zmiennej do jakiegos tam rejestru:...
IMHO przyczyna leży całkiem gdzie indziej. Może procek się nie wyrabia. W przypadku zmiennej globalnej, na etapie konsolidacji jej adres jest znany, a więc dostęp może być przez adresowanie bezpośrednie. W przypadku zmiennej na stosie prawdopodobnie (nie wiem, domyślam się, nie chce mi się sprawdzać) zachodzi adresowanie pośrednie. Być może z dodatkowym...
(...) 0/1023)*VoltageMsmt; Vcalc = Vcalc*2.995; lcd.setCursor(0,0); lcd.print("V1="); lcd.print(Vcalc); lcd.setCursor(8,0); lcd.print("V2="); lcd.print(Vcalc); lcd.setCursor(0,1); lcd.print("V3="); lcd.print(Vcalc); lcd.setCursor(8,1); lcd.print("V4="); lcd.print(Vcalc); } (at)ElektrodaBot Wstępna ocena dostępnych informacji Pytanie dotyczy kodu na...
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...
[syntax=c]#include <ESP8266WiFi.h> #include <ESP8266HTTPClient.h> // Zmienne konfiguracyjne const char* ssid = "nazwa"; const char* password = "haslo"; // Konfiguracje dla pierwszego Sonoffa const char* sonoff1IP = "192.168.5.31"; // Adres IP pierwszego Sonoffa const int sonoff1Channel = 0; // Numer kanału pierwszego Sonoffa const int sonoff1LedPin...
Spróbuj zmienić adres tej zmiennej z %MW522 na jakiś inny być może to jakiś zastrzeżony adres lub zmień nazwę tej zmiennej na np. W_241. Jeśli żadna z tych zmian nie pomoże oznacza, że problem tkwi gdzieś indziej.
No własnie, nie ma sensu komplikować ;) procedure TForm1.MaskEdit1Exit(Sender: TObject); var wynik : string; begin Wynik:=StringReplace(' ','',(Sender as TMaskedit).text,[rfReplaceAll ... (Sender as TMaskedit).text:=wynik; //Label1.caption:=wynik; - zmienna wynik przechowuje adres IP w rozsądnym...
No chyba jest przyczyna : zmienna scrnhd jest w istocie tablicą 16 bajtową i należało adres następnej zmiennej podwyższyć o 10h.
To wiele wyjasnia, dziękuję bardzo. Korzystając z okazji chciałbym jeszcze zapytać o wyrażenie : *(int*)20000=7 Ja to rozumiem jako wpisanie do zmiennej typu int mieszczącej się pod adresem 20000 wartości 7. Samo (int*)20000 oznacza rzutowanie na wskaźnik do zmiennej typu int, zmienna mieści się pod adresem 20000, Dodanie gwiazdki * przed nawias powoduje...
ie pasuje mi brak powiązania numeru buttona z tymi zmiennymi R i I. I to jest pewnie ten problem. Zastanów sie też nad innym nieco odczytywaniem odpowiednich komórek z ramu: Powiedzmy że tak: for I=1 to 10 for R=1 to 8 ala=R*8 'Tu bedzie sie zmieniać wartość co osiem: 8, 16, 24 itd ela=ala+I Readeeprom Button_number , ela If Button_number = Register_number(i)...
przypomnę że z językiem c mam do czynienia ledwo tydzień To nie jest kwestia języka. jak na razie rozumiem tyle że wyszukuje słowa No i super. Teraz wystarczy pomyśleć. Wpisujesz adres w przeglądarce i program wyszukuje w nim "/led", "/leda", "/ledb" i "/ledc". Teraz załóżmy, że wpisałeś adres http://.../leda. Które z tych słów znajdzie w nim program?...
Istotę problemu poruszył kolega tadzik85. Kompilator pracuje na każdym pliku osobno. Później to łączy linker. Trzeba kompilatorowi wskazać, że dana zmienna jest w innym pliku i żeby jej adres zostawił do uzupełniania linkerowi. On sobie z tym radzi świetnie. To tak w skrócie. W książce opis jest na stronie 130.
spojrz powyzej odbierasz ją jako LONG jeśliby się nie dało to proponuje dim Licz as long at 120 DIM B1 as Byte at 120 overlay DIM B2 as Byte at 121 overlay DIM B3 as Byte at 122 overlay DIM B4 as Byte at 123 overlay inputbin b1,b2,b3,b4 oczywiście adres 120 jest przykładowy- wiadomo ze zmienna licz zajmuje 4 kolejne bajty
Napisz proszę czego używasz do komunikacji z ESP8266. Jak rozumiem w pierwszym przypadku jest to PC (terminal), a w drugim jakiś zewnętrzny mikroprocesor (Raspberry czy co ?). W obu przypadkach komunikacja odbywa się po RS232 z modułem ESP8266.Czy tak? Domyślam się, że chcesz ściągnąć dane o przewidywanej pogodzie poprzez API dostawcy usług wether underground....
Przeczytałeś chociaż tą linijkę? Jest tam zmienna pegasusmycode . To chyba wiele wyjaśnia? Pogrzebałem w kodzie tej wtyczki i wyszło, że za wstawienie tego kodu odpowiedzialna jest opcja JS Defer Booster Special .
No i już staje sie jasne. Przekazujesz adres zmiennej buffer ( (at)buffer ), co powoduje wskazanie wskaźnika do tablicy, nie zaś samej tablicy! Obowiązkowo masz przekazać adres pierwszego miejsca w tablicy ( (at)buffer ). Wciąż nie zmieniłeś na właściwe typów unsigned long -> longword ?
Ten sam adres przypisałeś także dla zbocza (P) w NW2, a później jako styk wybrałeś w NW3. A tak użyta zmienna jest 1 do NW poprzedzającego wywołanie jako zbocze. Zmień zbocza na zmienne M lub DB.DBX.
const int liczba=10; może niestety wiązać się z rezerwacją miejsca w pamięci. Przykład dondu był zbyt trywialny i dlatego wyszło, że oba sposoby prowadzą do tego samego. Pomiędzy define a const zmienna są istotne różnice. Np. można pobrać adres zmiennej, lecz nie etykiety. Aby oba sposoby były w miarę równoważne lepiej stosować static const zmienna....
W twojej pierwszej deklaracji jest nieszczęście. Spróbuj tak: struct TPole{ unsigned char bit_0:1; unsigned char bit_1:1; . . unsigned char bit_7:1; } bit_field; zdefiniuj dodatkowo takie coś: #define Get_bit(adr) (*( (volatile bit_field*) (adr) ) ); Teraz chcąc wyłuskać jakiś bit piszesz: zmienna = Get_bit (i tu adres właściwy bajtu na którym ci zależy...
A jak daję w f_read & przed zmienną to nic nie zmienia? Zastanów się nad tym sam... Funkcji każesz odczytać 480 bajtów. Gdzie ona je niby ma zapisać, skoro podajesz jej adres zmiennej o rozmiarze 2 bajty? To że wpisujesz tam '&' nie sprawia że nagle zmienna uint16_t staje się workiem bez dna... 4\/3!!
Za bardzo nie rozumiem, wiem jak zbudowana jest zmienna typu UINT, ale chodzi mi o to czy da się bezpośrednio odwołać do danego jej bitu (np. przy użyciu odpowiedniej funkcji ). Przykładowo mam zmienną Zmienna1 typu UINT o adresie %MW4, teraz chcę aby czwarty bit tej zmiennej "załączał" styk NO. Jeżeli jako adres styku wpiszę %MW4.3 program zgłasza...
szelus : nie w tym problem - zmienne w pamięci i tak muszą zostać zaktualizowane, chciaż dodanie volatile powinno zapewnić kolejność aktualizowania zmiennych. Bardziej obstawiał bym na błąd z czasem istnienia zmiennych - zmienna checksum jest tworzona na stosie (zmienne lokalne, których adres jest potrzebny nie są umieszczane w rejestrach), więc jej...
Nie mozna tak zrobic, bo nie masz gwarancji gdzie linker umiesci zmienna - zwykle robi to w kolejnosci deklaracji, ale wcale nie musi. Zreszta to moze sie popsuc nawet i bez ingerencji linkera - wystarczy, ze ktorys naglowek stworzy zmienna w EEPROM. Sekcje pamieci EEPROM mozna przesunac przekazujac linkerowi polecenie --section-start (pamietaj o tym,...
Jest to bitowa zmienna pomocnicza. Prosty przykład zastosowania: Załóżmy, że aby załączyć wyjście trzeba wyzwolić 3 wejscia - I I - I I - I I - ( ) adres wyjścia Q0.0 ale można zamiast adresu Q0.0 użyć markera np M0.0 i wtedy program będzie wyglądał tak: - I I - I I - I I - ( ) adres wyjścia M0.0 - I I - ( ) adres wejścia M0.0, a wyjścia Q0.0 W tym...
Port LPT jest dobrym rozwiązaniem do takiego zastosowania. Standardowy port szeregowy jest urządzeniem 16-bitowym, w którym mamy tylko 4 wyjścia i aż 12 wejść. programowałem trochę w C, prędzej w TP Procedura zapisu do tego portu (czyli sterująca diodami) jest bardzo prosta: procedure lpt_write(adr: word; zm: byte); begin asm mov al,zm...
To czy gwiazdka jest przy typie, czy przy zmiennej nie ma znaczenia. Jedni stawiają przy typie, bo gwiazdka w tym kontekście oznacza "typ wskaźnikowy na obiekt typu...". Drudzy stawiają przy nazwie zmiennej, bo np: int *a, b; to osobna deklaracja wskaźnika (*a) i zmiennej (b). Do wskaźnika można przypisać adres obiektu. Adres uzyskujesz korzystając...
nie wget maline, wget odpalasz na malinie aby pytala serwer i w zapytaniu GET wysylasz temp oraz idMalina, po stronie serwera wtedy dodatkowo masz zmienna $_SERVER Dodano po 11 jezeli nie wget bo sie boisz ze ktos bedzie tam slal glupoty mozesz takze wykorzystac dobrodzejstwa polecenia ssh :)
Zmiennej lokalnej nie dasz do DMA. Znaczy dać by się dało bo jakiś adres ona tam ma. Przynajmniej w BASCOMie który nie optymalizuje kodu a więc wszystkie dane mieli na pamięci RAM. Tym RAMem jest stos. W każdym razie chodzi o to że zmienna lokalna jest tracona po wyjściu z funkcji. Stos nie znika ale jest wykorzystywany przez coś innego. Więc miejsce...
Obiecana wersja z rekurencją i callback'iem. bool OWInitSearch(pref_uint_t pos) { pref_uint_t i; if(!OWReset()) { return false; } OWWriteByte(SEARCH_ROM); for(i = 0; i < pos; i++) { if(OWReadBits(2) == OW_DEVICE_NONE) { return false; } OWWriteBit(OWGetAddrBit(i)...
Stos nie jest ustawiany na r16. Rejestr r16 służy do zapisania w rejestrach wskaźnika stosu SPH i SPL (jeden odpowiada starszemu bajtowi, drugi młodszemu) odpowiednich wartości. RAMEND to zmienna zadeklarowana w plikach *.inc dla każdego procka. Oznacza ona ostatni adres w pamięci RAM. HIGH(RAMEND) i LOW(RAMEND) służą do 'wyciągnięcia' z tej wartości...
Ale czy dało by się prościej sterować? Np poszczególnymi pinami osobno? Ale to jest proste! Masz jezyk programowania wiec zrob sobie funkcje ktora to obsluzy. Np. robisz sobie zmienna "Stan" typu byte i na poczatku funkcji ma wartosc zero. jezeli chcesz wlaczyc ktorys z kolejnych pinow to dodajesz do niej 1,2,4,8,16,32,64,128. i ta zmienna wysylasz...
Drogi kolego , popełniłeś szkolny błąd :D W procedurze obsługi przerwania Timer0 masz ... SIGNAL(SIG_OVERFLOW0) //obsługa multipleksowania wyswietlaczy { //extern unsigned char wyswietl[7]; unsigned char licznik;//<-- ********** błąd !!!!!!!!!!! ... zmienną licznik , tyle że jest to zmienna lokalna , czyli istnieje w pamięci...
W c ten program gdzies w internecie widziałem.. Bedzie wymagał być moze małego dostosowania. Mam go ale niestety w asm pod atmege 16. ; Programowalny pilot RC5, obsługa interfejsów optycznych i pamięci EEPROM ; Rafał Baranowski (C) 2004 .INCLUDE "m16def.inc" ; SEGMENT DEKLARACJI .EQU OSC_FREQ= 1000000; częstotliwość pracy w Hz .EQU...
Witam. Rn oznacza nazwę rejestru np. R1, R2, R3. Rejestr znajduje się pod jakimś adresem w pamięci uC. MOV Rn, #dana powoduje wpisanie do rejestru o nazwie Rn danej o nazwie dana np. Mov R5, #22h. A to akumulator, symboliczna nazwa rejestru tak samo jak R1. Nie jest to zmienna Mov A, Rn oznacza wpisanie do rejestru A (akumulatora) zawartości rejestru...
Witam. Napisałem już trochę programów w życiu, ale -aż wstyd się przyznać- do dzisiaj nie rozumiem roli jaką odgrywają wskaźniki, nie potrafię ich używać, nie wiem do czego one służą, czemu z nich korzystać itd. Marcin Wskaźniki - no cóż, to takie twory, które potrafią bardzo ułatwić życie (czytaj programowanie), albo doprowadzić załamania nerwowego....
W załączniku poprawiony kod, który się kompiluje. Takie drobne uwagi odemnie: 1. Wywal te conio.h, biblioteka iostream ma wszystko czego potrzebujesz, a conio nie jest przenośne na inne systemu. 2. NIGDY nie pisz deklaracji zmiennych w taki sposób: unsigned zmienna; Unsigned nie jest typem! Jest to słowo zastrzeżone przez kompilator i oznacza że dana...
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...
unsigned int *ple=(unsigned int*)&ulamek; wszystko jest ok, bo to mówi mniej więcej tyle, co "postaw wskaźnik na unsigned int na adresie zmiennej ulamek". Jeśli tylko zadeklarowałeś 'ple' nie definiując go, to musisz zmienić wskaźnik (czyli samo ple), a nie to co pod nim jest (czyli *ple), i ten wskaźnik postawić na adresie zmiennej ułamek (czyli &ulamek)....
Cześć. W nocy ci opiszę wszystko ;) poczekasz? Dodano po 11 Po pierwsze w bloku DB musisz stworzyć strukturę. Struktura musi istnieć. W PLC siemensa istnieją zmienne o określonych typach w zależności jakie dane są w nich przechowywane bądź obrabiane. Najpopularniejsze typy zamiennych to Real (4 bajty), DINT (4 bajty), INT (2 bajty), SINT (1 bajt), BYTE...
Witam, Z wirusami jest trochę jak z granatem - z jednej strony strach to trzymać w ręku, z drugiej - jeśli obchodzić się z nimi ostrożnie, nic się nam nie stanie ;) Zaciekawił mnie ten temat, a że też bywam ciekawy (i dociekliwy), poświęciłem godzinkę na obrobienie własnym skryptem - "odszyfrowanie" - owego załącznika (jeszcze nim szanowny moderator...
To dość proste. Przy kliknięciu na link przeglądarka kopiuje odpowiedni adres URL ze specjalnie przygotowanymi danymi umieszczonymi w tym adresie i przekaże do zrealizowania jako zwykłe zapytanie HTTP. Serwer otrzymuje zapytanie (w skrócie): GET /?sw=pd5&a=0 HTTP/1.1 Host: 192.168.1.10 User-Agent: Mozilla/5.0 (X11; U; Linux i686; pl; rv:1.8.1.7)...
Nie ma potrzeby bawienia się szybkimi licznikami. W Microwinie ustalasz w wizardzie do panela kolejno wszystkie ekrany które mają być wyświetlane na panelu. W sumie jest chyba osiem ekranów głównych i każdy ma osiem pod-ekranów które wybierasz enterem. Zależy też chyba jaka wersja Microwina. Jeśli na którymś z tych ekranów wstawicz pole typu "Embedded...
Nie dziw się, że nie działa, skoro ignorujesz ostrzeżenia kompilatora. Funkcja: void LCDPutStr( char *pString , int x, int y, int Size, int fColor, int bColor) A ty wywołujesz ją: LCDPutStr(temp,95,20,LARGE,BLACK,PINK); gdzie temp to short int. O tym co się dzieje, kiedy potraktować zwykłą zmienną jako wskaźnik na łańcuch znakowy chyba wiesz. Jeśli...
https://obrazki.elektroda.pl/9462291700_... Chciałbym zaprezentować rozwinięcie eksperymentalnego odbiornika SDR, jaki opisałem ostatnio: https://obrazki.elektroda.pl/6947080100_... https://obrazki.elektroda.pl/7046555300_... Najbardziej w tym momencie interesującym fragmentem płyty jest głowica: https://obrazki.elektroda.pl/9911930900_...
Tu nie leży problem w " koernixa" -ustawienie he395: 1 adres urządzenia slawe 2 prędkość transmisji zgodna z mlog 3 ustawienie komendy 03 4 ustawienie rejestru do odczytu 5 odczyt zmiennej "intiger" 6 sprawdzenie na jakimś urządzeniu master, czy odczytujesz czujnik temperatury 7 koernixa transmisja danych do mlog (przesyła dane 485) w programie dopóki,...
Teraz nie wiem ile pamięci zajmują mi zmienne w trakcie realizacji kodu. Są jakieś proste metody na taki debuging, typu: odczytuje jakiś rejestr i wiem ile zajęte/wolne? Wiedza ile ram jest zajęte w danej chwili niewiele daje, bo po tej chwili może być wysyłana funkcja z char bufor[1000]; Istotniejsze jest jakie jest max zapotrzebowanie na...
Do obsługi Timera1 są 4 wektory i nie wiem, które aktywować, co wpisać w procedurze odwołującej się, czy w ogóle jest taka potrzebna. Czy wystarczy tylko uruchomić te przerwanie i sygnał będzie generowany automatycznie ? Tabelka jest prosta: TIMER1 CAPT Timer/Counter1 Capture Event Zdarzenie z przechwycenia licznika (zwykle przez zmianę na pinie...
Sub Write_eeprom(adres As Byte , Value As Byte) I2cstart I2cwbyte I I2cwbyte Adres I2cwbyte Value I2cstop Waitms 10 End Sub Nie wiem jak w bascomie bo w nim różnie bywa;P Ale to I to jest zmienna globalna? Dodano po 1 A jeśli nie chcesz gotowca, ale nie potrafisz, to się za to nie bierz:) A jeśli musisz, zleć komuś na odpowiednim forum albo walcz;)
Chodzi o to że zmienna temp czyli tak naprawde wskaźnik do tablicy charów będzie żyła tylko w tej funkcji. To mi nie przeszkadza bo jak już przypisze jej wartość(wskaźnik) do mojej zmiennej wskaźnikowej to mam już globalnie adres do pierwszego elementu tablicy ze znakami. Nie wiem tylko jak długo ta tablica będzie zarezerwowana w pamięci. jeżeli wywolujesz...
Jeśli zaś wywołana funkcja wywołana nawet z takiej pętli będzie miała argument bez volatile to w odróżnieniu od pętli głównej main() która nie wie co się dzieje w komórce pamięci 0x0060 - to nasza funkcja otrzyma prawidłowy adres argumentu ! i na wejściu odczyta aktualną - zmienianą w przerwaniu wartość tej komórki. Absolutnie nie. To zależy od kompilatora...
' Funkcja musi być zadeklarowana przed jej pierwszym użyciem ' ponieważ kompilator musi wiedzieć jaki jest rozmiar danych ' przesyłanych do funkcji i jaki jest jej typ wyniku ' Funkcja musi mieć zdefiniowany typ wyniku, tu Integer Declare Function Test(byval Liczba As Integer , Tekst As String) As Integer ' określenie byval przed nazwą oznacza,...
Proba zaalokowania wiecej niz jednego elementu klasy macierz konczy sie niepowodzeniem, tylko jeszcze nie widac efektow. Zmienna zadeklarowana jako class macierz **A jest wskaznikiem na wskaznik, czyli etykieta, ktora wskazuje na jakis adres w pamieci, pod ktorym przechowywany jest jakis inny adres (elementu docelowego). Inaczej jest to tez jednoelementowa...
poducz sie troche C. to co zrobiles to: uint16_t *Sekwencja unsigned int Sekwencja[45]; ... Sekwencja[0] = Data; if(Data==Sekwencja[0]) ... zaglebmy sie teraz we wskazniki. deklaracja tablicy jest defacto deklaracja wskaznika na pierwszy jej element. tablica unsigned int Sekwencja[45]; ... *Sekwencja = Data; if(Data==*Sekwencja)...
Tak się dzieje jak stosujesz instrukcje Gosub, program idzie do procedury a tam znowu stosujesz Gosub i w tej na koncu nieszczęsne Retrurn. Program idzie w "krzaki" bo przepełniasz stosy i nadpisujesz w pamięci Ram zmienne. Poczytaj o procedurach i funkcjach w pomocy Bascoma, użyj Declare Sub a potem Sub: i END SUB. Stosuj też deklaracje ramki i stosu...
Przedewszystkim zrób to inaczej... po prostu... main() { char bufor[20]; ... funkcja(bufor, ...); } funkcja(char* bufor, ...) { } I w ogóle nie ma problemu. Zmienna tmp w ogóle jest nieporozumieniem. Przecież wewnątrz funkcji możesz sobie zadeklarowac tablicę o dowolnym wymiarze... funkcja(...) { char tablica[1000]; } A pamięć możesz zwalniać gdzie...
Witam. Nie bardzo rozumiem o co ci chodzi. To jest mikrokontroler 8 bitowy i pamiec jest zorganizowana w komorki 8 bitwe. Wiec jesli chcesz zapisac np zmienna typu int robisz to tak: zapis gornych 8 bitow -> zwiekszasz adres -> zapis dolnych 8 bitow/mozesz i odwrotnie ,zalezy to od twojego zapisu notacji/ i analogicznie robisz odczyt. Ponizej...
Ad. 1. Po prostu Write(g) (możesz też w jednej procedurze podawać kilka parametrów oddzielonych przecinkami i mogą to być zarówno teksty jak i liczby w postaci stałych lub zmiennych. Ad 2. Każde odwołanie do tablicy zapisuje się poprzez nawias kwadratowy ( tablica ), gdzie tablica to zmienna typu array, a numer to wartość z zakresu indeksu (nie koniecznie...
Zmieniłem trochę. Punktem odniesienia dla działania całej funkcji jest teraz adres komórki z tekstem "Dni robocze". Function zapas(tydz, wiersz) Application.Volatile 'Excel 2k7 'Application.Volatile = True 'Excel 2k wt = Cells.Find(what:="Dni robocze", lookat:=xlWhole).Row wk = Cells.Find(what:="Dni robocze",...
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ć....
1. KIGITHUB to przykładowa zmienna zawierająca adres URL oficjalnego repo. Nic nie stoi na przeszkodzie by sobie takich zmiennych z adresami URL utworzyć ile chcesz. 2. Mechanizm zapamiętywania zmian w bibliotekach zdalnych działa lokalnie. Nie da się podać adresu URL jako docelowego. Poza tym folder musi istnieć - program go nie utworzy. p.s. Nie dubluj...
W C dawno nie pisalam wiec moge sie mylic (od razu zaznaczam). W kazdym razie odnosnie pierwszego pytania to chyba dobrze rozumujesz - ze musi byc wskaznik na wskaznik poniewaz ten "wewnetrzny" mozesz modyfikowac. I dlatego trzeba przekazywac lista** Odnosnie drugiego pytania: tego zawartego w komenatrzu w kodzie. Do funkcji WypelniajListe() przekazujesz...
To jest konwersja na ASCII, np. do wyświetlenia na LCD lub terminalu. Pytania, które zadajesz, nie dotyczą mikrokontrolerów, a podstaw języka C. p jest zmienną wskaźnikową, czyli adresową. *p ++ = x - to zapis x pod adres zawarty w p i zwiększenie tego adresu, tak, aby p wskazywała następny bajt bufora. Jedynka w apostrofach - to znak ASCII - cyfra...
Witam! A'propos "przytyku" Wszystko zawarłem w pierwszej odpowiedzi. Koledzy chyba posto-nabijacze ? A to fragment cytowanej, Twojej pierwszej odpowiedzi: 1. Pobierasz rozmiar tablicy przy użyciu scanf("%d", &rozmiar) zmienna rozmiar jest typu całkowitego. Skoro pobiera się rozmiar tablicy przy pomocy funkcji scanf od razu zakładam, że rozmiar tablicy...
Ja się z Mirkiem nie zgodzę, książek o C są tysiące. Oczywiście nie po Polsku. Podstawowy błąd jaki ludzie popełniają to założenie, że C na mikrokontrolery jest jakieś inne niż C na komputery. Nic bardziej mylnego. Zresztą dobrym przykładem jest ten wątek. Przecież gdyby autor chciał coś takiego zrobić na PC, tylko zamiast diod zrobić kolorowe kropki...
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...
Ej, nie przesadzajcie - to było 2 lata temu... Pozatym asm które pokazałeś w zasadniczej części jest identyczne i POPRAWNE: 270: e24ee004 sub lr, lr, #4 274: e92d580f push {r0, r1, r2, r3, fp, ip, lr} [...] 2d0: e8fd980f ldm sp!, {r0, r1, r2, r3, fp, ip, pc}^ 1fc: e24ee004 sub lr, lr, #4 200: e92d500f...
Mnóstwo instrukcji assemblera nie może być wykonanych w jednym cyklu zegara... w sumie wszystkie wykonywane są w tej samej liczbie i zależy ona od PIPELINE'u... pobranie instrukcji, dekodowanie, wykonanie, zapis do pamieci, akumulacja wyniku. To jest taki najprostszy pipeline i umożliwia on właśnie wykonywanie instrukcji w "jednym" cyklu zegara.......
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...
Można wyświetlać temperaturę w podmenu "wybór_Ds" ale trzeba zmienić cały program. Chyba nie jest tak trudno zapisać sobie cztery ID czujników i wiedzieć później który gdzie przypisać. Najlepiej osobno podłączać każdy czujnik i na naklejce na kablu przy czujniki zapisać jego ID. Wiedząc gdzie jakie jest ID czujnika można już mu w podmenu przypisać odpowiednią...
Oto kolejny kawałek systemu COBRA-1 zawarty w EPROMIE. Czwartą instrukcją po uruchomieniu komputera lub po resecie jest skok do procedury rozszerzającej system rozpoczynającej się od adresu C6F7 a zakończonej w adresie C72D . Procedura ta zapisuje do 15 adresów RAM poprzedzających adres początku EPROMu systemowego 4 instrukcje skoków (12 bajtów) i 4...
https://obrazki.elektroda.pl/8897833600_... Dotyczy tu opisanego modelu: https://www.elektroda.pl/rtvforum/topic3... Witam, w tym opisie przedstawię mój sposób na podłączenie popularnych na AliExpress termometrów WiFi z czujnikiem SHT30 do Home Assistant oraz zmianę zasilania na akumulator 18650. Główną przyczyną zmiany zasilania...
Komplikacje z utworzeniem zmiennej. (Microchp Studio, AVR128DA32) Pokrótce: Odmierzam czas . Wynik wpisuję do EEprom-u , wartość 24 bity Chcę edytować w/w wartość, wpisuję ja do zmiennej "wartosc32" i błąd : zmienna "wartosc32" umieszczana jest pod adresem 0x940C Gdy zaglądam do pamięci- nic nie jest nadpisane ( czyli "??" ) Odczytanie wartości z EEpromu...
Pisałem już o tym MAC adresie. Mój modowany TPLINK (jakiś tam WDR3600) właśnie miał problem - w ogóle nie dostawał komunikacji, mimo, że wydawało się, że to śmiga. Oni mają tak to zrobione - po moich rozeznaniach. W momencie uruchomienia odpalany jest skrypt fcgi. Ten skrypt przede wszystkim operuje na pliku settings.py. Łączy się on pod adres econet.plumlan.pl...
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...
https://obrazki.elektroda.pl/3654117300_... Nie jest to nic odkrywczego - wręcz idea takiego wykorzystania elektrodowego gadżetu (D1 mini) nasuwa się od razu. Więc zaczynajmy: Założeniem było wykonanie czujnika zapylenia i przy okazji innych parametrów atmosferycznych. Czujnik miał być umieszczony na balkonie i zostać połączony jak...
Ja zrobiłem tak:(procek atmega 16 bo jak będzie mało eprom to wystawie mega32) Mierze sobie napięcie z przepływki ADC(0)- mam od 0 do 1023 Tak samo mam pwm od 0 do 1023 konfiguracja , im mniejsza liczba w rejestrze COMPAREA tym krócej trwa stan niski, korekta za pomocą przycisków + - i zapis do eeprom Adc=pwm to działanie liniowe , na którym auto po...
(at)majsterxxl A próbowałeś konfiguracje wysłać tak jak to jest w instrukcji czyli pierwszy bajt z D/C=0 a kolejne z DC=1. Napisz z palca taka inicjalizacje bez funkcji. (D/C# = 0, R/W#(WR#)= 0, E(RD#) = 1) unless specific setting is stated Single byte command (D/C# = 0), Multiple byte command (D/C# = 0 for first byte, D/C# = 1 for other bytes) Obecnie...
https://obrazki.elektroda.pl/1570592100_... Witajcie, zapraszam na relację z konstrukcji zegara na PIC18F2550 napisaną w formie tutoriala, wszystko krok po kroku. Pokażę tu jak i z czego tworzyłem prosty projekt DIY na prośbę jednego z czytelników. Wykorzystamy tu wyświetlacze 7-segmentowe, rejestr przesuwny, obsłużymy przyciski a...
https://obrazki.elektroda.pl/3748425200_... Przedstawię tutaj potężne lecz bardzo proste w użyciu narzędzie pomagające diagnozować wyjątki na ESP32 w PlatformIO. Normalnie w momencie napotkania wyjątku ESP wyświetla w konsoli jedynie mało mówiące nam wartości rejestrów i stos adresów, ale na szczęście pokazane tu rozwiązanie to zasadniczo...
https://obrazki.elektroda.pl/2635305000_... Poniższy projekt to stacja pogodowa oparta na module z układem ESP8266. Nie byłoby w niej nic szczególnego, co wyróżnia ją na tle innych tego rodzaju konstrukcji, gdyby nie optymalizacja systemu pod kątem minimalizacji poboru prądu. Wykorzystany mikrokontroler nie jest zbyt energooszczędny,...
To nic nie zmienia. Popatrz na Offset w DB, pierwsza zmienna bool w Twoim Struct będzie miała adres DB?.DBX0.0.
https://obrazki.elektroda.pl/3743484600_... Witajcie moi drodzy Przedstawię tutaj mojego shielda (nakładkę) na Arduino UNO opartego o układ ENC424j600. Shield ten pozwala podłączyć Arduino do internetu bez żadnego lutowania, a nawet bez użycia kabelków i płytek stykowych. W temacie dam jedenaście pełnych przykładów jego użycia z moimi...
http://obrazki.elektroda.pl/2645142000_1... Sterownik diod LED został wykonany w celu automatycznego lub zdalnego sterowania oświetleniem LED w zależności od jasności w danym pomieszczeniu. Układ sterowania oparty jest o mikrokontroler ATmega16/ATmega32 firmy Atmel, który w zależności od oświetlenia w danym pomieszczeniu steruje jasnością...
https://obrazki.elektroda.pl/3711757000_... Witajcie, dzisiaj przedstawię uruchomienie układu AS1115 z Arduino w oparciu o gotową bibliotekę. AS1115 to kontroler wyświetlacza 7-segmentowego (do 8 cyfr) oraz klawiatury (do 16 klawiszy) z interfejsem I2C, oferującym dodatkową linię-przerwanie dla zdarzeń pochodzących od klawiatury. Temat ten...
https://obrazki.elektroda.pl/3934534200_... Ostatnio sporo się bawię w domu z urządzeniami opartymi na ESP8266, i czasami się zdarzy że zmienię nazwę sieci i następuje problem, bo urządzenie trzeba wyciągnąć i podać nowe dane, i schować. Bywa to irytujące lekko mówiąc, więc wpadłem na pomysł że napiszę prosty programik który przy uruchamianiu...
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...
1. Wstęp Projekt bardzo prostej stacji pogodowej opartej o ESP32 DevKit V1 i sensor BME280. Odczyt wartości jest dostępny poprzez interfejs sieciowy w sieci lokalnej, do której jest podłączona. Całość jest zasilana za pomocą zasilacza impulsowego 5V ze względu na powszechność i łatwą dostępność tego typu urządzeń. 2. ESP32 Moduł ESP32 DevKit V1 jest...
Witam, dzisiaj zabrałem się za zabawę z pamięcią EEPROM. Pierwszy z problemów jaki napotkałem to adresowanie pamięci EEPROM. Znalazłem w internecie 2 polecenia które mnie interesują: eeprom_write_byte (adres, zmienna); x = eeprom_read_byte (adres); Problem w tym, że jak zrobię tak jak podano w tym wątku: http://www.elektroda.pl/rtvforum/topic18...
Witam ponownie Dorobiłem jeszcze w programie odtwarzacza jeszcze trochę usprawnień ułatwiających korzystanie z niego (na dotychczasowy mikrokontroler). Jednym z nich jest przyspieszenie przewijania w poziomie długich nazw plików i podkatalogów nie mieszczących się w całości na LCD podczas wyświetlania listy tychże. Dotychczas były przewijane one w tempie...
Moze mi ktos powiedziec dlaczego taka operacja dziala ( zmienna Adres daje poprawny wynik) : #define ADR_0 !(PIND&(1<<5)) #define ADR_1 !(PIND&(1<<6)) #define ADR_2 !(PIND&(1<<7)) Adres=ADR_0+ADR_1*2+ADR_2*4 ; a ta nie działa : Adres=((~PIND)>>5)&ADRES_MASK; gdzie ADRES_MASK= 0b00000111; Juz nie mam pomyslow ..
winavr zmienna adres adres komórka zmienna adres komórki zmienna
bluebus fotokomórki awaria elektryki zapalarka elektryczny
megaman zarowka megaman zarowka
Renault Laguna 2 - trudne wchodzenie biegów i sprzęgło do oporu Błąd A5 w zmywarce Indesit - przyczyny i rozwiązania