Spróbuj do każdej wartości dodać znak % na końcu: [syntax=basic4gl]Data 7848% , 7748% , 7652% , 7559% , 7468% , 7380% , 7294% , 7211% , 7129% , 7048% [/syntax]
Dlaczego pokazuje -1 na wyświetlaczu a nie np 255 jak jest dla zmiennej typu Byte. Bo Integer to zmienna ze znakiem, FFFF to właśnie -1. Byte jest zmienną bez znaku (zawsze dodatnią). Dwubajtowa zmienna bez znaku to w Baskomie "Word". Na wyświetlaczu po resecie będzie wówczas 65535. 2. Czy taki zapis eeprom będzie poprawny przy pierwszym sprawdzeniu...
Takie coś działa zawsze: Niekoniecznie. Ale generalnie sprawdzilem tez na gcc "pc-towym" i tez tak jest - ale trzeba jednoznacznie rzutować na unsigned (podejrzewam że wystarczy aby zmienna po lewej stronie byla unsigned ale zapomnialem sprawdzić). Tak ze podejrzewam ze mozemy przyjać ze operatory bitowe w gcc sa bitowymi bez wzgledu na typ integera.
Może zbyt szybko chcesz odczytać liczbe z eeprom. Wydłuż czas od zapisu do odczytu. Zapisanie w eeprom najlepiej to 10mS.
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...
Prosiłabym o wyrozumiałość i pomoc w nakierowaniu mnie na rozwiązanie problemu. Spróbuję nakierować :) Jeśli zapis ID do eeprom ma być jednorazowy, w kodzie programu deklarujesz (wcześniej innym programikiem i LCD odczytane) ID $eeprom Termometr2: 'nr seryjny termometru 1 Data 40 , 25 , 0 , 133 , 2 , 0 , 0 , 196 Termometr1: 'nr seryjny termometru...
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ą...
Nie za bardzo mi to wychodzi.. powiedziałbym, że nawet wcale :( uint8_t adr __attribute__((section(".eeprom"))); (...) eeprom_write_byte(&adr, zm); i zm=eeprom_read_byte(&adr); -dziala, jednak zalezalo mi na nieco wiekszej wartosci
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ć....
https://obrazki.elektroda.pl/8545401100_... Zapraszam na drugą część przygody z płytką Wemos D1 ESP8266 i czujnikiem temperatury/wilgotności DHT11. W tej części rozwinę swój program o zapis wyników w pamięci Flash ESP8226, wykorzystam do tego bibliotekę o wdzięcznej nazwie EEPROM . Dlaczego klasa do zapisu we Flash nazywa się tutaj...
Pisze sobie program i mam problem z jedną sprawą, niby trywialną bo chodzi o przyciski. Na pewnym etapie program ma zapisać wartości z ADC do eepromu po zwolnieniu przycisku (sygnał z przycisku pochodzi z transoptora), więc musi to byc jednorazowa pewna reakcja. Przyznam, że dopiero niedawno wziałem sie z programowanie i mam jeszcze pewne problemy nawet...
passing argument 1 of '__eewr_float_m8' makes pointer from integer without a cast Pierwszy parametr powinien być wskaźnikiem do zmiennej (możesz podać &uiAddress).
Dim zmienna2 As Eram Integer At 10 Dim zmienna3 As Eram Integer At 20 Dim zmienna4 As Eram Integer At 30 Dim zmienna5 As Eram string * 10 At 40 dim zmienna as integer do gosub zapis gosub odczyt loop zapis: zmienna2 = zmienna return odczyt: zmienna=zmienna2 return zapis_text: zmienna5= " czesc " return i analogicznie odwrotnie......... na początek wystarczy,...
Witam Program to termostat który wyświetla dane na wyświetlaczach 7 segmentowych LED i problem polega na tym, że wyświetlacze zaczynają migotać gdy dołożę zapis ustawianej zmiennej do eeprom. Pętla główna [syntax=basic4gl]Do If F4ms = 1 Then Reset F4ms If Ust = 0 Then Wysw = T Else Wysw = Tu Gosub Wyswietl_zmierz End If If F100ms = 1 Then Reset F100ms...
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 Chciałbym zapisywać liczby z zakresu 200 - 400 w pamięci EEPROM 24C02. Mam zestaw EVB4.3 i tam pamięć ma nogi A1, A2 do +5V, A0 do GND. Na początek chciałem ustalić, czy dobrze obliczyłem adres - korzystając z Datasheet'a - strona 11 1 0 1 0 A2 A1 A0 R/W R/W R- 0, W -1 1 0 1 0 1 1 0 0 odczyt 172 1 0 1 0 1 1 0 1 zapis 173 Czy organizacja pamięci...
Witam serdecznie Jest to pojekt z tego linku: http://www.elektroda.pl/rtvforum/topic11... I stamtąd też pochodzi kod, zmodyfikowałem jedynie maksymalną temperaturę zadaną z 30 do 99. [syntax=vbnet] '***************************************... '#######################################... '# # '# Autor: klops_mops...
Do czego to doszło ;p Może od nowa, wersja z i2c chce dopiero teraz wprowadzić jak na razie jest po Bożemu znaczy sie wyswietlacz ze sterownikiem znajduje się na 2pietru kamienicy układ wykonawczy i wyłącznik (countera) znajduje się w piwnicy. Z i2c to dopiero mam zamiar zrobić bo zależy mi na dwóch wyswietlaczach jednym w piwnicy drugim na 2pietrze....
Dodaje kod do zapisu daty i czasu w PCF8563 [syntax=basic4gl] '********************* Funkcja ustawiająca zegar PCF8563 Sub Settime_pcf Ssek = Makebcd(s) 'sekundy Mm = Makebcd(m) 'minuty Hh = Makebcd(h) 'godziny Dday = Makebcd(day) 'dni Wwk = Makebcd(wk) 'dni tygodnia Mmonth = Makebcd(month) 'miesiace Yyear = Makebcd(year) 'lata I2cstart 'warunek startu...
Witam, jeszcze proszę praktyczne rozwiązanie takiego problemu, gdyż program jest praktycznie ukończony, ewentualnie drobne poprawki kosmetyczne:), ale w obecnej wersji odczyt i zapis wykonywany jest z poleceniem "wait", przez co wskazywane temperatury nie są czasem poprawne - wyskakuje BRAK ds'a. Już nie mam pomysłu jak to zrobić, proszę tylko o jakieś...
Sporo tego ( obsługa SD, PCF8563 + menu do ustawiania daty, obsługa PCF8574 w przerwaniu INT1 )- ale nie ma problemu - zmieniła się tylko zawartość podprogramu Pomiar była taka, jak w pierwszym poście oraz wyłączyłem w wyświetlanie na LCD tych wartości wskazań z DS18B20, oczywiście dostosowałem pozycje wyświetlania do LCD 4*20 - załączniku spakowany...
Witam. Zbudowałem urządzenie z wykorzystaniem atmega32 jest w nim ok 2kb kodu napisanego w bascom. Urządzenie wykonuje cykl pracy bazując na kilku zmiennych odczytanych z eeprom wewnętrznego. Maszyna posiada licznik cykli i za każdym razem przy 17 cyklu wyskakują na wyświetlaczu krzaki a po następnym atmega sie resetuje. Wykluczam tu zakłócenia - układ...
Witam Mam płytkę Loggera GPS + SD + PCF8563. Jeśli chodzi o GPS i zapis na SD wszytko jest OK. Problemem jest ( i to pierwszy raz się z czymś takim stykam ) odczyt danych z z układu PCF8563. Otóż dla pewnych wartości sekund, odczytana wartość czasu - godziny jest większa o 40 ( czterdzieści ). Czyli jeśli czas jest 22:40:02 to jest wyświetlany poprawnie,...
Dodaje poprawnie listing programu. [syntax=basic4gl] 'OSTATNIE ZMIANY 08,10,2014 'Problem z blednie wysylanymi danymi 'Problem z wylaczaniem sie sterownika $regfile = "m32def.dat" $crystal = 7372800 $baud = 19200 $include "Config_MMC.bas" $include "CONFIG_AVR-DOS.Bas" $hwstack = 128 $swstack = 128 $framesize = 128 '**************KONFIGURACJA LCD*****************...
Hej, Próbuję zrobić menu ustawień swojego sterownika i kompletnie mi to nie wychodzi :( Menu ma być sterowane pilotem NEC (pilot działa poprawnie) Jak ja to sobie wymyśliłem: 1. ekran główny (tu jest OK) - przycisk strzałka w lewo przełącza ekran na zegar "MAXI" - przycisk strzałka w prawo przełącza na ekran główny - przycisk strzałka w górę blokuje...
Witam. Jak zwykle kiedy nie mogę sobie z czymś poradzić muszę zaczerpnąć porady na forum. Tak jest i tym razem. Otóż zbudowałem sterownik co który między innymi steruje też zaworem c.w.u. Zaworem "kręci" silnik dc a za rozpoznawanie pozycji odpowiadają dwie krańcówki mechaniczne zwierające do masy. Silnik ma hamulec który po odłączeniu zasilania zwiera...
Witam serdecznie. Mam mały problem z zapisem/odczytem eepromu. Przykładowy kod: temp_dol_k1 = eeprom_read_byte(1); ............. ............. ............. eeprom_write_byte(1,temp_dol_k1)... Niby wszystko ok ale kompilator mowie że: ../cos.c:2054: warning: passing argument 1 of '__eerd_byte_m32' makes pointer from integer...
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...
Już sobie poradziłem z tym, przekaźnikiem. I mam jeszcze jedno pytanie, chciałbym zrobić tak, że: w trybie MANUAL jeśli temperatura przekroczy 80'C to automatycznie włączy się przekaźnik pompy, a wyłączy przekaźnik elektrozaworu. Bo jak zrobię warunek na te 80'C i gdy przy 80 wyłączy elektrozawór to zaś warunek płomienia go co sekundę załącza a ten...
Oczywiście to że się poddałem było żarcikiem primaaprilisowym ;-) Dziękuję za wskazówki odnośnie roku przestępnego itp. póki co ich nie zastosowałem, wrócę do tematu po stworzeniu "rdzenia" programu. Mało miałem ostatnio czasu, ale zoptymalizowałem trochę kod dodając procedury. Dodałem w menu opcję wyboru czy programujemy zegar czy już gotowe nastawy...
Poniżej kod sterownika: $regfile = "m8535.DAT" $crystal = 8000000 Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.3 , Db6 = Portc.2 , Db7 = Portc.1 , E = Portc.5 , Rs = Portc.6 Config Lcd = 20 * 2 'Sterownik pieca C.O. 'zależności: 'Tp < Tn & Tp > 20st.C to zal. PK1 'Tp > 20st.C to zał. PK2 'Tb < Tp to zał. PK3 'Tk > Tb o dT1 pompa...
Zbudowałem układ, który mierzy temp. z trzech ds18b20 i wyświetla na lcd. Problem zaczyna się gdy włączę przerwania od timera0 (który tylko w tle odmierza sobie odcinki czasu po 8ms), a mianowicie mierzona temperatura jest nie prawidłowa a później zaczyna się krzaczyć lcd. Ma to być sterownik pieca CO więc potrzebuję odliczać krótkie odcinki czasu na...
Mam sobie niżej pokazany programik w bascomie ale niestety nie wiem jak dopisać obsługę pilota :| Programik jest na 89c4051 ;) $large Config Lcd = 16 * 2 Config Timer1 = Timer , Gate = Internal , Mode = 1 Config Sda = P3.1 Config Scl = P3.0 Dim Licz As Byte Dim I As Byte Dim Nast(5) As Byte Dim St As String * 7 Dim W_reg As Integer Dim Wielk1...
Po wlaczeniu funkcji MUTE na calym wyswietlaczu zostaje wyswietlony tan napis kilkakrotnie. Czy mozna zmienic jakos kod programu aby ten napis byl wyswietlony tylko raz i na srodku?? Kod: $large Config Lcd = 16 * 2 Config Timer1 = Timer , Gate = Internal , Mode = 1 Config Sda = P3.1 Config Scl = P3.0 Dim Licz As Byte Dim I As Byte Dim Nast(5) As Byte...
Witam Prosilbym o pomoc ludzi znajacych sie na programowaniu. Mam przedwzmacniacz i w procesorze sa wolne 2 wyjscia. Pod jedno chcialbym podlaczyc odbiornik podczerwieni zeby moc sterowac wzmacniaczem z pilota a pod drugie przekaznik ktory zalaczal by glowne trafo w wzmacniaczu. Prosilbym o odpowiednie zmodyfikowanie schematu i programu do sterowania....
A może skorzystasz z biblioteki eeprom.h? Jest tam procedura eeprom_write_byte (uint8_t *addr, uint8_t val); - do zapisu [nie rozumiem tylko dlaczego adres jest 8-bitowy - przecież np. ATmega8 ma 512 bajtów EEPROMU...] oraz uint8_t eeprom_read_byte (const uint8_t *addr); - do odczytu bajtu. (Jest też fajna procedurka eeprom_read_word(..) / eeprom_write_word(..)...
"Too many arguments" angielski na tyle znam, że nie potrzebowałem translatora na to wyrażenie, jednak fakt, nie znam opisu tej biblioteki ;/ Jeszcze jedno - jak zostawiłem "block" program się kompiluje i niby jest ok. W symulatorze eeprom_write_block(&i, &i_ee, sizeof(i)); ta linia zapisuje do pamięci, jednak jak program wróci...
Mała poprawka zwykły procek AT98c2051 i zapis do pamięci AT 24c04 zmiennej typu integer (temperatura) Teraz chyba jest dobrze Proszę o pomoc :cry:
Nie ma tam oddzielnej funkcji do zapisu, wszystko robi obsługa żądania http. Jak już pisałem i jest w dokumentacji: conf.handleFormRequest(&server); Spróbuj w ramach ćwiczenia dodać sobie pole o nazwie "robo" typ liczba całkowita (odpowiedni INTEGER) zobacz czy ci się pojawi na stronie, zmień ją z przeglądarki, zapisz, wyłącz wszytko, włącz i zobacz...
Bardzo przepraszam za odkopywanie tematu. Ale mam pytanie Czy tak samo można robić ze zmiennymi single -> integer i odwrotnie. Czy konieczne jest do tego typu operacji angażowanie kolejnej zmiennej ? Czy istnieje inny sposób ?
Udało mi się w przerwie świątecznej posiedzieć trochę nad radyjkiem. Projekt wciąga :) - dołożyłem czcionkę DotMatrix - edytowałem plik BDF czcionki Spleen tak aby mieć polskie litery i przekonwertować go na format U82G - w załączniku gdyby ktoś chciał sobie dodać Co prawda w zakresie 33-255 da się wkodować tylko ISO-8859-2 i Windows-1250 ale zawsze...
Wcześniej zapodałem o zapisie ale to chodzi o odczyt z pamięci, przepraszam za pomyłkę. Podam całą procedurę odczytu z eeprom, jak powinna wyglądać: ' procedura odczytu Sub Odczyt(adres As Integer , Wartosc As Byte) I2cstart I2cwbyte Adres_upz I2cwbyte Adres I2cstart I2cwbyte Adres_upo I2crbyte Wartosc , 9 I2cstop Waitms 20 End Sub
Cze ! Nie widzę potrzeby stosowania tablic w tym projekcie. Wszystko da się ładnie upchać w pętle For...Next. Co do obliczania adresu w EEPROM to też jest bardzo prosty sposób: nrobrazka=0 For polowka=0 to 1 'ustaw polowka LCD For strona=0 to 7 'ustaw strona LCD For kolumna=0 to 63 'ustaw kolumna LCD adresEEPROM=nrobrazka*1024+polowka*512+s...
Tak zgadza się tylko jak szukałem materiałów to trafiłem na A1. ________________________________________... Witam problem z zapisem zmiennej do pamięci EEprom typu string lub innej zmiennej rozwiązałem tak: 'Parametr opcjonalny AT pozwala na umieszczenie zmiennej 'w ściśle określonej komórce pamięci lub rejestrze. 'Gdyby...
Niestety - chyba wszystkiego nie zrozumiałem. To mój kod (wycinek) [syntax=c]float sredn = 0.5; // średnica drutu 0.25 - 1.25 float *wsk_sredn = &sredn; uint8_t *w8_sredn; w8_sredn=(uint8_t*) &sredn; Tu ERROR Tak mam zamiar kopiować do EEPROMu for(int n=0;n<4;n++) { EEPROM_write((10+r),(w8_sredn+n)); r++; } [/syntax] Lecz kompilator wyrzuca...
Sprytnie poradziles sobie z laczeniem 2 bajtow w calosc ... Jeśli masz na myśli tę ... Function Ile_wpisow() As Byte Local Ids As Integer Local High_adr As Byte , Low_adr As Byte Readeeprom High_adr , 1 Readeeprom Low_adr , 2 If High_adr > 0 Then Ids = High_adr + Low_adr Else Ids = Low_adr End If Ile_wpisow = Ids End Function ... funkcję...
Witam! Mam problem z prawidłowym zapisem danych do pamięci 24c32. Poniższy program teoretycznie powinien zapisać dane w 9 kolejnych bajtach, adres jest zwiększany o 10. Ale tak nie jest. $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3...
Cześć Temat wraca jak bumerang, chociaż mój problem polega raczej na brakach w C. Ale do rzeczy. Zapisuję i odczytuje dane z pamięci EEPROM. Wszystko działa. Ale ponieważ nie lubię warning-ów, to próbuję je wyczyścić. Są takie linijki w programie do odczytu kolejnych komórek z pamięci EEPROM i wrzucanie ich do odpowiednich zmiennych: [syntax=c] volatile...
układ będzie się buntował, bo zmienna nie ma przypisanej wartości Zmienne typu liczbowego (integery) właściwie nie mają "nie przypisanych wartości", EEPROMowe mają same binarne jedynki, w RAM mają zera Zapisywana zmienna - zawsze liczba dodatnia, całkowita, z przedziału 0 – 65535. W takim założeniu pozbawiasz się wykrycia "nie zainicjowana". Moze warto...
Tak jeszcze pójdę tym tropem. Faktycznie w pdfie jest napisane że adresujemy dwoma słowami 8 bitowymi. Próbuje napisac procedure która by mi rozbiła licznik zapisu do eeprom(w postaci dziesiętnej) bedący integerem np komórka nr 500 na dwie liczby 8 bitowe bedące adresem zapisu. Niestety samo rozbicie na dwie 8 bitowe potrafie zrobić ale niestety ten...
Jak zapisuje się do EEPROMU w Atmedze liczbę typu integer? Zaznaczam, że nie chcę korzystać z gotowych funkcji (eeprom_read_word). Poniższy kod oparty o dokumentacje Atmegi32 bez problemu zapisuje zmienne 8-bitowe. [syntax=c] void ZapisDoEpromu (unsigned int adres, unsigned char dane) { ATOMIC_BLOCK(ATOMIC_FORCEON) { while (EECR & (1<<EEWE));...
integer eeprom zapis odczyt eeprom zapis eeprom xmega
przestawić pasek podłączyć podwójny włącznik lampa wyłączać uśpić
przerywacz kierunkowskazów schemat przerywacz kierunkowskazów schemat
ESP8266 odbiór Server-Sent Events (SSE) jako klient – implementacja, kod, porady Wyłączenie weryfikacji cyfrowego podpisu sterowników Windows 7