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...
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...
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...
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...
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...
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:...
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...
(...) 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 chyba jest przyczyna : zmienna scrnhd jest w istocie tablicą 16 bajtową i należało adres następnej zmiennej podwyższyć o 10h.
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....
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)...
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...
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
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...
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....
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!!
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...
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,...
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 :)
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...
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...
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)....
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...
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...
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...
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...
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)...
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...
winavr zmienna adres adres komórka zmienna adres komórki zmienna
licznik 93s56 nvidia geforce4 mx440 system cofania
goodram pendrive wzmacniacz antenowy schemat
Nowy piec Beretta - zimna woda mimo ustawienia 50°C Wymiana płytki z mikrofonem w Nokii 3.1 TA-1063