A jak jest zadeklarowana zmienna? Jako uint16_t?
Składnia: rezultat = LOW( zmienna ) Przeznaczenie: Zwraca młodszą cześć (bajt MSB) podanej zmiennej. gdzie: rezultatzmienna do której zapisana będzie młodszy bajt zmiennej, zmiennazmienna której młodsza część ma być określona.
Bynajmniej nie chciałem urazić w poprzednich postach, jednak, moim zdaniem, dopiero przedostatni post autora tematu konkretnie wskazał problem. Nie znam za bardzo arduino, ale bazując na [url=http://codebender.cc/]kompilatorze online, obsługa eeprom w arduino jest identyczna jak w c. Przykład: [syntax=c]#include <avr/eeprom.h> typedef struct {...
Należę do osób, które za wszelką cenę starają się same pogłówkować i znaleźć rozwiązanie Jedyna prawdziwa informacja, jaką przekazałeś tym zdaniem, to taka, że masz wysokie mniemanie o sobie. Gotowiec dla leniuchów: [syntax=c]static EEMEM uint8_t emode; //rezerwujemy bajt w eeprom ... uint8_t mode=0; //zmienna przechowująca kopię danej z eeprom //odczyt...
Nie wiem dokładnie czy bascom dokonuje konwersji typu string na byte w tym może być problem. Spróbuj zmienna nm zadeklarować jako 'byte' może pomoże.
Dim Zmienna As Eram Long Używasz tego jak zwykłej zmiennej.
Małe pytanko a obsługa wyświetlania multipleksowanego jest wykonana w przerwaniu czy w pętli programu po ustawianiu zmiennej F4ms? EDIT: Nie rozumiem, zapis do eepromu wykonuje się 20 razy (zmienna Autoret = 20)
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)...
I co Dawid udało się coś odczytać z eepromu, bo ja próbuję identycznym sposobem i zapisać się da, ale odczyt to bzdury. I nie jest ważne, czy zmienna "temp_dol_k1" jest jako zwykła, czy EEMEM. Coś jest źle. Próbowałem, też wg. kodu z datasheeta i też nic. Pozdrawiam.
Mój sposób nr 1: -zakładasz w jednej lub dwóch komórkach wskaźnik do bieżącej struktury roboczej, składającej się z licznika zapisów (3 bajty) oraz rejestru przechowującego zmienną (o dowolnym rozmiarze), -następnie tworzysz funkcje do zapisu oraz odczytu zmiennej. Fun do odczytu ustala za pomoca wskaznika poczatek struktury w EEPROM, a nastepnie odczytuje...
Najlepiej nigdy, przenigdy nie rób takich rzeczy ;) Argumentem tej funkcji powinien być wskaźnik ale ty stosujesz tu rzutowanie i na własną rękę numerujesz komórki pamięci w EEPROM. To doprowadzi cię kiedyś do zagłady ;) jak już to najpierw zdefiniuj sobie zmienną w pamięci EEPROM: unsigned char zmienna EEMEM; a potem np: mem_year = eeprom_read_byte(...
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...
Do odbioru kodu Rc5 nie jest potrzebny Eeprom. Chyba że to nowa sprawa ? która Ciebie interesuje. odczyt z eepromu - Readeeprom zmienna , 1 zapis do eepromu - Writeeeprom zmienna , 1 te rozkazy dotyczą eepromu wbudowanego w ATtiny2313
Może za szybko zapiszujesz albo niepełny ten zapis? ;ldi r18,128 clr r16 cli ;eeprom_zapis: ;out eear,r16 ;adres w eeprom ;out eedr,r16 ;zmienna w eeprom ;sbi eecr,2 ;ustawienie EEMWE ;sbi eecr,1 ;impuls EEWE ;test: sbic eecr,1 rjmp test ;inc r16 ;cpse r16,r18 rjmp eeprom_zapis sei ;sprawdz czy adres rowny Jak widać służyło do zapisania kolejno...
NIE wolno robić czegoś takiego żeby zmienna co chwile była zapisywana do EEPROM-u dlatego że on ma określoną ilość zapisów minimum 100.000 / + . Ja bym si polecił jakiś SRam na i2C albo SPI z podtrzymaniem bateryjnym może być nawet zegar RTC PCF8583 . Co do karty i komunikacji z PC tu [url=http://www.dharmanitech.com/2009/01...
a jaką wartosć musi mieć zmienna ad
Dzielenie zmiennej int16 na dwie mniejsze możesz zrobić tak:[syntax=c]int 16_t zmienna, zmienna1; int8_t mala_zmienna, mala_zmienna1; mala_zmienna = zmienna >> 8; //przesuniecie bitowe skopiuje 8 bitów starszych mala_zmienna1 = zmienna; // skopiuje tylko 8 bitów najmłodszych zmienna1 = (mala_zmienna << 8) + mala_zmienna1; [/syntax]
dondu coś o tym wiem ;P -kiedyś też tylko definiowałem, a tak naprawdę fusebity to ustawiają. Jest to trochę mylące (ustawianie za pomocą #define), ale jak na razie nie skupiam się nad częstotliwością pracy.. Panowie często mnie się zdarzało tak: program nie działa choć powinien, po resecie+ nowy projekt oraz skopiowaniu kodu działa- i tym razem tak...
Czy jeżeli w Bascomi-e, w przerwaniu, umieszczę procedurę zapisu do pamięci EEPROM (jednokrotny zapis-jest flaga) a owe przerwanie od timera jest wywoływane co ok. 3,5ms, to czy owy zapis przebiegnie poprawnie ?(czas zapisu to ok. 4ms). Co w tym czasie będzie robił program - zostanie zatrzymany (także kolejne przerwania aby nie przeszkodziły), czy zapis...
Najprościej to użyć overlay w sram. Single to 4 bajty w pamięci. dim zmienna_single as single dim bajt1 as byte at zmienna_single overlay dim bajt2 as byte at zmienna_single+1 overlay dim bajt3 as byte at zmienna_single+2 overlay dim bajt4 as byte at zmienna_single+3 overlay Potem zapisujesz bajty do eeprom, odczytujesz kiedy chcesz i masz wynik w single.
No właśnie jeśli w programie przed pętlą główną nadam wartości zmiennym w eeprom np. zm_eeprom = "jakis tekst" to po resecie program wystartuje od nowa i zapisze z powrotem wartości początkowe w programie do eeprom ? W takim przypadku, po każdym resecie zmienna będzie nadpisywać nową ( taką samą ) zawartością. Jeżeli przewidujesz 1 reset co kilka dni,...
MAM TAKI PROBLEM : DLACZEGO W PAMIECI EEPROM TEGO PROCESORA MOGE ZAPISAC TYLKO ZMIENNA TYPU BYTE INNYCH NIE ZAPAMIETUJE.:cry:
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...
Siemka! A ja mam troszkę inną propozycję dla Ciebie. Nie zapisuj numerów czujników w pamięci programu. Poza tym lepiej jest mieć uniwersalny termometr gdzie jak uszkodzi się jeden czujnik, to z łatwością można zastąpić go innym. Zadeklaruj sobie takie zmienne: dim dsid(40) as eram byte ' zmienna tablicowa (EEPROM) dla 5 czujników dim...
Sprawdziłem dla pewności jeszcze raz, char pomoc Ponieważ Twoja funkcja void konwert2(char tekst nie dodaje znaku '\0' w tablicy tekst . Elementy Twojej tablicy to tekst i tekst (nie mylić z '\0'), a jaka będzie wartość komórki, która znajduje się za tablicą to czysty przypadek. Z kolei instrukcja LCD_WriteText(pomoc); będzie wyświetlać kolejne komórki...
Piszę program który w założeniu ma posiadać pamięć ustawień. Dokładniej jest w nim 11 zmiennych oraz 128 możliwości ich ustawień (128 banków pamięci dla tych 11 zmiennych). Każda zmienna jest 8bitowa. No i dostaje od kompilatora (WinAVR ) dziwne komunikaty: warning: pointer targets in passing argument 1 of 'eeprom_read_byte' differ in signedness W kodzie...
Witam. Jak zapisuje się dane do eeprom w avrgcc? W bascomie wystarczyło zadeklarować zmienną jako zmienna typu ERAM, później zapis w programie wyglądał tak: zmienna_eeprom = zmienna analogicznie odczyt: zmienna=zmienna_eeprom Czy da się posługiwać zmiennymi tak jak powyżej w avrgcc? Wiem, że można użyć min.: eeprom_write_byte ( *adres, val) - zapisuje...
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...
Witam, Proszę o podpowiedź jak zapisać zmienną typu single, konkretnie wartość np. 1.23458 do komórek pamięci eeprom. Chodzi o zapis w Bascomie. Jeżeli wpiszę dim zmienna as single zmienna= 1.23458 Writeeeprom zmienna , 1 to przy odczycie Readeeprom zmienna , 1 na lcd ukazuje się 1.234580037
Z EEPROM jest wiele zabawy. Najprościej nie zapisywać co 1-2m dystansu, jak miałeś w programie, czy co 1s, jak się zrobiło gdy przeniosłem Ci to do loop. Masz odmierzanie czasu tym nieszczęsnym delay 1000, to definiuje najmniejszą jednostkę czasu w tym programie. Naucz się millis() i usuniesz to ograniczenie. Ale tu też można coś wyrzeźbić, po tym delay...
Zrób tak: Dim Temp As Byte Dim Reserved As Eram String * 8 Dim Zmienna As Eram Byte Dim Status As Eram Byte If Status <> 123 then Reserved = "Reserved" Zmienna = 100 'Ustawienie wartości po programowaniu Status = 123 End If Temp = Zmienna 'Odczyt zmiennej z EEPROM'u do RAM Temp = Temp + 22 'Modyfikacja Zmienna = Temp 'Zapis nowej wartości...
Przejrzystosc w kodzie przede wszystkim. :D Pozniej latwiej jest zlokalizowac ewentualne bledy i samo poruszanie sie w kodzie jest znacznie latwiejsze. W kazdym razie wracajac do tematu to ja osobiscie nie lubie etykiet wiec wolalbym to rozwiazac np. w ten sposob: Sub Czytaj_id_klucza() 'tutaj wstawiasz kod odczytu End Sub i pozniej tylko: Call...
[syntax=c] (...) static EEMEM uint8_t histereza = 3; //zmienna do pamieci EEPROM int main(void) { (...) uint8_t histereza = eeprom_read_byte(&histereza); (...) [/syntax] Zgadnij dlaczego nie działa ? Podpowiedź - nazwy.
itoa jak wejście przyjmuje liczbę całkowitą, a zwraca char (Int TO Ascii). A z tego co widzę, to twoja zmienna aaa jest typu char.
A jaki może być schemat - rezystory podciągające do + od SCL i SDA , i na Piny oznaczone SCL i SDA . Atmega32. Problem wygląda tak że - Daję kod z zapisem do eepromu zmiennej , (właśnie teraz np. zmienna jest w epp. Potem kasuję kod z uP i daję kod z odczytem z eepromu - i NIC - wyświetla 0 albo 255.
Proszę uprzejmie Kolegów o pomoc w rozwiązaniu trudnego dla mnie problemu. Jeżeli jest to dla Was banalna sprawa, to proszę o wyrozumiałość – ostatnim i jedynym językiem programowania z jakim miałem do czynienia był BASIC na „komputerze” ZX81. Innych „grzechów” na tym polu nie pamiętam. Teraz pradziadek został zobligowany do wykazania się wiedzą i umiejętnościami...
Witam, Jeszcze przy okazji niejako, może mi ktoś wyjaśni, bo spotkałem się z dwiema metodami zapisu i chciałbym zrozumieć, czym różni się taki zapis eeprom_write_byte(&zmienna, wartosc); od zapisu takiego eeprom_write_byte((uint8_t *)zmienna, wartosc); zakładając, że uint8_t to unsigned char? Jeśli używasz &zmienna, to zapisujesz...
Oki rozumiem, napisałem tak: [syntax=c]//zapis do eeprom twistart(); if ((TWSR & 0xF8) != (TWINT)) ERROR(); else { twiwrite(0b10100000); twiwrite(2); //adres twiwrite(123); //wartosc twistop(); _delay_ms(200); }[/syntax] No i wchodzi w if-a i wyrzuca komunikat o błedzie. Czyli co mam zła funkcje twistart(), tak.?? EDIT: Zauważyłem jeszcze ze przy zakomentowaniu...
Z tym, że tablice musiałbym wcześniej wpisać w program, a mi chodzi o to, by "uczyć" tego robota danego zadania. Jeśli zmieniłbym odległośc punktu A od B i znowu postawił przeszkode, w którą by robot uderzył, to wtedy ponownie musiałby zapamiętać nową trase. Przy czym jeśli działałbym w obrębie pamięci RAM, kasowałbym ją po prostu resetem zasilania....
o ja myślałem że to tak działa z założenia? Wyświetla starą konfigurację i daję możliwość zmiany wybranych? tak działa Wyświetla starą konfigurację i daje możliwość zmiany IP .DNS itp chwiałbym jeszcze na stronie www wyświetlić swój tekst i zmienną tylu bool i string. w html trzeba to zmienić w WebConfig.cpp ? "<div id='main_div' style='margin-left:15px;margin-right...
Witajcie. Napisałem programik zliczający energię w kWh. Super działa do czasu wyłaczenia z prądu - wtedy się resetuje i od nowa prawidłowo nalicza. Są wbudowane funkcje w eeprom.h które próbuję zmusić do działania i nic z tego nie wychodzi - ciągle kompilator wywala błędy. Zapisywanie do EEprom chcę zrobić funkcją eeprom_write_float ../main.c:387:5:...
Komenda Print nie wyświetli ci zmiennej na lcd :) 'Program wykonujący zapis do pamięci EEPROM Sub Write_eeprom(byval Adres As Byte , Byval Value As Byte) I2cstart I2cwbyte Addressw I2cwbyte Adres I2cwbyte Value I2cstop Waitms 10 End Sub 'Program wykonujący odczyt z pamięci EEPROM Sub Read_eeprom(byval Adres As Byte , Value As Byte) I2cstart...
W taki/przedstawiony/ nawet poprawiony sposób szybko wykończysz pamięć bo ma ona ograniczoną ilość zapisów. W Tiny85 z kilkoma nogami to dużego ruchu nie ma, ale nawet tu są sposoby lepsze i gorsze. Jednym z lepszych byłoby po każdym naciśnięciu przycisku odliczanie Timeout`u i dopiero , na przykład, po trzech sekundach od nieaktywności przycisku zapis...
Jak wyliczyłeś te 10..20 słów dla zapamiętania czasu? Tak naprawde to jedna zmienna bedzie zapisywana co 1 sekunde druga co 60 sekund, reszta losowo ale z pewnoscia nie co sekunde tylko raz na 5-10 sek tak mniej wiecej, Czas ze stopera / timera + te zmienne w sumie bedzie ich 10-20 tak mniej wiecej. Zresztą, skoro to jest stoper, to zapis ostatniej...
To poleciłbyś jakąś sprawdzoną pamięć FLASH bądź EEPROM SPI, powiedzmy tak z przedziału 32 kbajty do 128 kBajtów? No i tanią oczywiście?
To że raz działa raz nie to raczej nie przypadek. Rzutowanie nic nie zmieniło. Mnie to wygląda na to że timer się sypie (ale mogę się mylić, bo jestem początkujący w AVR). Załączam cały kod. EDIT. Problem (narazie) rozwiązany. Wystarczyło po zapisie do EEPROM dodać 1 linijkę: high = 1; Zmienna HIGH określa czy aktualnie na INT1 (analizuje sygnał z odbiornika)...
Nie zaznaczyłem bitu. Gdzie to się robi? Do programowania używam USBasp-a i AVRDude odpalanego z Atmel Studio. Z zapisem do EEPROM, nie mam problemu, chodzi mi o wartość inicjującą zmienną. Dopóki nie zapiszę czegoś w EEPROM to mam tam 65535 zamiast 270, a chciałbym, żeby 270 było tam od razu po zaprogramowaniu mikrokontrolera (o ile to możliwe). To...
Zmienna typu word jest dwubajtowa , więc nie ma możliwości bezpośredniego zapisu do komórki 1bajtowej. Spróbuj najpierw ją podzielić na dwa bajty i wtedy zapisywać. Powodzonka. Waldek.
Nie do końca rozumiem...ale... help? writeeprom, readeprom? dim zmienna as byte at xram *czy coś w ten deseń*...
...Ps. Tak, już dla ścisłości to skoro do tej pory nie używałem tej pamięci to czas to zrobić. A przy okazji to czy zmienną typu STRING też tak samo łatwo tam zapiszę...? To działa ze zmienną dowolnego typu :D Ijeszcze jedno podejście do tematu.. Napisałem kod z uwzględnieniem Twoich uwag Piotrek tzn: Dim x As Eram Single Kod się skompilował i jest...
Pomyliłem się w pierwszym poście. Pierwsza zmienna ma wartość 0-3, a druga i trzecia 0 lub 1. Ze strukturami nie miałem nigdy do czynienia, w jaki sposób mogę dodać ją jako jeden z elementów buforu do zapisu w pamięci?
Witam, Mam problem z zapisem i odczytem do EEPROM łancucha zmiennych typu char Atmega162, avrgcc, program symuluje w winavr + hapsim + virtual port kit char ipaddress[16]; char ipaddress_odczytany[16]; char portnumber[6]; char portnumber_odczytany[6]; char phonenumber[11]; char phonenumber_odczytany[11];...
Niestety nic mi to nie mówi.. Case z krokami jest potrzebny do zapisu położenia po zmianie pozycji serwa, bez tych kroków zapis nastepowal by cały czas bez sensu i ze szkodą dla pamięci eeprom. Kilka bajtów, no właśnie. Program zajmuje 99%, tu toczyła się bitwa o te kilka bajtów. Już jest i działa.
A przypadkiem twoja zmienna "adres" to nie jest zmienna typu byte ? w takim przypadku liczy tylko do 255, a ty dodałeś 248 + 16 = 264.
ok a jak teraz ułożyć te dane do zapisu i odczytu po I2C mając taki kod [syntax=basic4gl]I2cstart 'warunek startu I2cwbyte Adres_save 'wyślij adres układu I2cwbyte 8 'wyślij adres w pamięci EEPROM I2cwbyte zmienna A 'wyślij daną I2cwbyte zmienna B I2cstop 'warunek stopu Waitms 50 'czekamy 10mS ponieważ EEPROM potrzebuje czasu na zapisanie danych w pamięci...
Zapis: zmienna1 = 1244 Odczyt: zmienna_RAM = zmienna1
Ok napisałem taki kod i działa: [syntax=basic4gl]$regfile = "m16def.dat" 'wybór procesora $crystal = 8000000 Config Porta = &B00000000 Config Portb = &B00000000 Config Portc = &B00000000 Config Portd = &B00111111 nop Porta = &B11111111 Portb = &B11111111 Portc = &B11111111 Portd = &B11000000 nop S1 Alias Pinc.3 'przycisk zmniejszania liczba o 1 S2 Alias...
Tak jak, to któryś z przedmówców powiedział należy odwoływać się do pamięci EEPROM. Zacząłbym od poczytania manual'a z avr-libc podajże są tam przykłady jak należy poprawnie wykorzystywać funkcje zapisu i odczytu do wewnętrznego EEPROM'u. Zdefiniuj sobie w programie: uint8_t eeprom_zmienna __attribute__( (section(".eeprom")...
xdata char eep_var_Delta; //zmienna eeprom data char del; //zmienna w programie char EEPROM_zajety_z () //wskaznik EEPROM gotowy/zajety { if (EECON & 0x02) return 0; else return 1; } // ZAPIS // void EEPROM_zapis_Delta() //zapis Delty { EA = 0;//wylaczenie przerwan EECON |= 0x04; //wybor pamieci EECON |= 0x08; //aktywacja EECON |= 0x10; //zapis...
Witam, korzystam z WinAVR oraz AVR Studio. Napisałem dwie proste funkcje: void zapisz( uint8_t pozycja, uint8_t wartosc ) { eeprom_busy_wait(); eeprom_write_byte(&pozycja,wartosc... } char odczyt(uint8_t pozycja) { eeprom_busy_wait(); return eeprom_read_byte(&pozycja); } Wiem, że ATmega...
Witam Mam następujący problem: używając polecenia $eeprom lub $eepromhex tworzę pliki z wartościami które chcę wgrać do eeprom problem jest w tym, że podczas kompilacji w tych plikach nie są zapisywane poprawnie wartości np 500 (zmienne integer). Po przejrzeniu skompilowanych plików widać, że zapisywany jest tylko młodszy bajt. Natomiast w samym programie...
(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...
Mam w swoim urządzeniu taki patent jak proponuje lotnick. Atmega8 na wewnętrznym oscylatorze 8MHz, dioda schotky za stabilizatorem 5V i kondensator podtrzymujący 100uF. Przy zaniku napięcia wywoływane jest przerwanie w którym zapisuję do eeprom cztery bajty (zmienna typu single). Nie przeprowadzam jakichś dodatkowych zabiegów programistycznych ograniczających...
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...
W jaki sposób trwale zapisać wyniki kalibracji ADC w ESP32, bez konieczności ponownej kalibracji po każdym restarcie ESP32? Można zapisać wyniki kalibracji ADC w tzw. pamięci niestandardowej (ang. non-volatile memory, NVM). W przypadku ESP32 pamięć niestandardowa to EEPROM (ang. Electrically Erasable Programmable Read-Only Memory), która jest bardzo...
witam, dobry przykład obsługi eepromu zamieszczony jest w dokumentacji od atmegi i wygląda to tak : void EEPROM_write(unsigned int uiAddress, unsigned char ucData) { while(EECR & (1<<EEWE)); EEAR = uiAddress; EEDR = ucData; EECR |= (1<<EEMWE); EECR |= (1<<EEWE); } unsigned char...
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...
Posiadam eeprom szeregowy 32 kb 24c256 firmy Atmel któy ma organizacje 64 bajty na bank. Problem mam taki że zapisuje w nim czas (3bajty) załóżmy od komórki 0 i banku 0. Zapisuje się poprawnie od podanego adresu ale ten sam zapis dubluje od innego adresu w pamięci który zawsze jest przesunięty o 24576 bajtów. Np jeżeli zapisze 3 bajty załóżmy że(122030)...
Generalnie jak załączysz obrazek schematu to każdy może kliknąć miniaturę i ma podgląd w przeglądarce. Kiedy zamieszczasz PDF to trzeba go ściągnąć i otworzyć co zmniejsza szanse na to że komuś będzie się chciało czego jestem żywym przykładem. Gdybym widział schemat to bym o kondensatorach nie pisał - wniosek jest prosty - nie patrzyłem przed odpowiedzią...
Czy wie ktoś jak zapisać dane do pamięci eeprom, i jak je z niej odczytać? Chodzi mi o to iż mój program ma monitować stan jednej nużki i kiedy na nużce zniknie sygnał to ma zapisac dane do pamieci a jak się pojaw to ma je wczytać spowrotem. Zapisywanie trwa bardzo ułamek sekundy wiec kobry kondensatorek powinien chuba wystarczyć na to aż zmienna będzie...
Witam, program ograniczyłem do procedurki (pomijając ustawienia): Pamiec: I2cinit Adres1 = High(zmienna) Adres2 = Low(zmienna) I2cstart 'generate start I2cwbyte 160 'slave adsress I2cwbyte Adres1 'address of EEPROM I2cwbyte Adres2 I2cstart 'repeated start I2cwbyte 161 'slave address (read) I2crbyte Wartosc , Nack 'read byte...
Help BASCOM-a mówi : ERAM Most AVR chips have internal EEPROM on board. This EEPROM can be used to store and retrieve data. In BASCOM, this data space is called ERAM. An important difference is that an ERAM variable can be written for a maximum of 100.000 times. So only assign an ERAM variable when it is needed and not in a loop Co oznacza że raczej...
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,...
Mam jeszcze jeden problem Ponieważ napisałem coś takiego i wyświetla mi tylko litere d: A="dyzio" B=A Lcd chr (b) A to zmienna string B to byte Myślałem że te b to poprostu za mała zmienna ale jak wybieram zamiast byte np. Word to wyskakuje mi error 242. Co muszę zrobić by to zadziałało? (Wyśwetlało mi sie dyzio na ekranie. Oczywiście musi być ta zmiana...
Nie rozumiem do czego służy ta dodatkowa zmienna 8 bajtów na początku pamięci. Tak naprawdę to 9 bajtów (8 bajtów zmiennej typu string + bajt 0 jako znak końca string'a). To pominięcie początkowego obszaru EEPROM, który jest najbardziej narażony na błędy zapisu podczas resetów uC. Możesz też dodać w programie: [syntax=vbnet]Reserved = "Reserved"[/syntax]...
Mam pytanko co do zapisu eeprom . Mam do zapisu cztery zmienne [syntax=basic4gl]'''''''''''''''''''''''... Readeeprom Cena , 1 ' zmienna typu string Readeeprom Waga , 8 'zmienna typu string Readeeprom Z , 16 ' zmienna typu word Readeeprom Przep , 24 ' zmienna typu word ''''''''''''''''''''''''''''''''zapis...
Dzień dobry. Czy ktoś mógłby wytłumaczyć gdzie popełniam błąd w programowaniu kości eeprom? Według opisu, kość AT24C256 posiada 512 stron, każda po 64 bajty danych. Próbuję zapisać na każdej stronie wartości float - czyli zmienna o wielkości 4 bajtów. Szybka matematyka - mogę wsadzić tam maksymalnie 16 takich zmiennych. Dla ułatwienia próbuję wpisać...
Nie napisałeś nic, co mogłoby pomóc rozwiązać problem. Nie wiadomo jakiego typu jest zmienna ramka2, co zwraca funkcja USART_Receive(). Może być to zmienna ośmiobitowa, a jeśli tak jest, to taki token się w niej nie zmieści, choćbyś nie wiem jak się starał. Jeśli token ma długość 6 bajtów, to musisz je odczytać, zapisać np. do tablicy i tą tablicę zapisać...
Najlepiej to powołaj sobie nowy typ: [syntax=c]typedef struct { uint8_t id; uint8_t behavior; uint8_t items_in_menu; Menu_Entry *sub; Menu_Entry *parent; char cText[17]; FuncPtr call_me; } TMENUENTRY;[/syntax] a następnie w kodzie zdefiniuj już sobie pięknie zmienną w EEPROM ;) [syntax=c]TMENUENTRY Menu_Entry EEMEM; // ta zmienna będzie w EEPROM[/syntax]...
Witam Chciałem poszerzyć pole swojego działania w ATMEGA8 o zapis i odczyt danych z pamięci wewnętrznej uC EEPROM. Otóż znalazłem na 20 i 21 str. manuala ATMEGA8 funkcje w C zapisu i odczytu danych z EEPROM uC. Oto one: Zapis do EEPROM: void EEPROM_write(unsigned int uiAddress, unsigned char ucData) { /* Wait for completion of previous...
Witam, Ważna uwaga: typ long jest całkowity, nie ma części ułamkowej, trzeba użyć single lub double. Mała wskazówka z helpów (polski ubogi pełny po angielsku w programie) Pamięć ERAM. Większość procesorów serii AVR posiada wbudowaną pamięć EEPROM. Pamięć ta może przechowywać dane nawet po wyłączeniu zasilania. Jak podaje producent nawet do 10 lat. Pamięć...
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...
Mógłbym prosić o kod (lub wskazówki) który:...... Kodu gotowego nie dostaniesz bo przestałem pracować ………… (za darmo!), ale masz poniżej przykład, w którym jest wszystko zawarte czego potrzebujesz; a nawet więcej, bo jest wprowadzona symulacja zmienności przykładowej (nie twojej) zmiennej i później jej wpisywanie do EEPROM zgodnie z życzeniem - długim...
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.
TMF: ;-) ;-) ;-) Tym razem Ty jedziesz po inżynierach z Atmela. Jego funkcje to przykłady Atmela z DS z wyciętymi komentarzami. Pozdrawiam. Albert Ale funkcje są ok, mnie chodziło o coś innego. W C raczej niewielki jest sens zapisywania danych pod konkretne adresy EEPROM - od tego mamy kompilator i linker, żeby się tak niskopoziomowo babrały. Oczywiście...
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)....
Witam, Nie miałem okazji przedtem pobawić się EEPromem zawartym w Atmega16, aż do dzisiaj. Pogrzebałem po necie i napisałem taki oto programik: [syntax=c] #include <avr/eeprom.h> #define ASRES1 1 #define ADRES2 5 #define ADRES3 10 uint8_t zmienna1, zmienna2, zmienna3; int main(void) { zmienna1= eeprom_read_byte ((uint8_t*)ADRES1); //czytanie z...
To musisz używać jakiegoś beznadziejnego środowiska bo jest ich tutaj ogromna ilość: https://obrazki.elektroda.pl/5777279800_... Dodano po 2 Spodziewam się, że zostanie wczytana wartość czas, a następnie dodana do niej wartość 1 A w następnej pętli? Znowu zostanie wczytana wartość i dodana 1? Czyli zmienna czas zawsze będzie miała wartość...
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ć....
Napiszę o co mi chodzi... Mam impuls cyforwy z czujnika trwający od 0,5 do 1sek, co 1...5sek. Sygnał może być zakłócony dlatego zdecydowałem się na częste sprawdzanie impulsu a nie tylko raz czy nawet kilka razy. Muszę mieć prawie 100% gwarancji na zarejestrowanie impulsu, żadnego nie mogę przeoczyć. http://obrazki.elektroda.pl/4623690400_1...
Zapis po puszczeniu przycisku jest napisany poprawnie, problem był z tym, że przyciski są dwa, a była jedna zmienna pomocnicza, dodanie drugiej dla każdego przycisku rozwiązało problem. A odnośnie tego podciągania transoptora, to tak może zostać czy usunąć dajmy na to podciąganie zewnętrzne? Któryś jest lepszy/pewniejszy w przypadku transoptora?
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),...
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...
ja procedurke do zapisu to mam i ona dziala bez problemu eeprom_write_byte(adres, wartosc) Problem polega na tym ze chce zadeklarowac zmienna jak np w asm51: CSEG czy DSEG i AT 0x60 (to taki przyklad) chce to samo zrobic w C, w c dla 51 bylo to tak: at 0x100 code unsigned char ZMIENNA a jak to zrobic w C dla AVR?? Rozumiesz, potrzebuje umiescic zmienna...
Ja robię to np tak: Lcd "Zapis danych !!!" Writeeeprom Hist , 1 Writeeeprom T_pompy , 2 Writeeeprom Hist_pompy , 3 a odczytuję tak: Rem * * Odczyt Konfiguracji * * Readeeprom Hist , 1 Readeeprom T_pompy , 2 Readeeprom Hist_pompy , 3 Jak narazie działa bez problemu, nie wiem do końca czy jest to poprawne użycie tej funkcji. Nie należy zapisywac pierwszego...
Witam Chciałbym skonsultować temat. Adesy i komendy klawiszy w kodzie RC5 mam zamiar przechowywać we wbudowanej eeprom mikrokontrolera Atmega16. Czy (po odebraniu kodu RC5) w celu porównania odwoływać się za każdym razem do danej zawaetej w EEPROM (oszczędność pamięci ram, krótszy, łatwiejszy kod, ale za to częsty odczyt pamięci EEPROM) czy stworzyć...
up, pamiec 24xx oraz max232 bedzie chyba najlepszym rozwiazaniem. mozesz zapisac wszystkie nr kart i przyporzatkowac im nr 0-255 (co zajmie jeden bajt) date i godzime mozesz zapisywac w postaci ilosci sekund ktore uplynely od 01-01-2000 (w bascomie jest zmienna typy long - 4 bajty, ktora zapisuje czas w ten sposob),takze zapis do eepromu zajmie 5bajtow....
Zmien x na byte i zapisz go raz w eepromie. Potem juz nie bedzesz musial za kazdym razem wpisywac jego wartosci. Nastepnie dorób sobie jeszcze jedna zmienna. Przypisuj jej wartość zmiennej x w momencie jego zmiany oraz zapisuj do eepromu. Na poczatku daj warunek: If x <> zmienna then readeeprom zmienna, 0 x = zmienna end if X juz nie musisz do...
Ale co ci nie dziala? Napisalem ci, ze niezaleznie jaka to liczba musisz zapisac cala zmienna long, a nie tylko pojedyncze bajty, bo nijak z tego potem nie wynika jaka to byla liczba. Tu masz tutorial jak sie poslugiwac EEPROMEM: http://www.avrfreaks.net/index.php?name=...
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();...
zmienna string zapis eeprom bascom zapis zmienna zapis zmienna flash
dioda selenowa indesit instrukcja pralka pendrive odzyskanie partycji
ekspres naprawa żarówka szeregowo
Migająca dioda w telewizorze JVC 32 cale - przyczyny i rozwiązania Przedwzmacniacz Sony TA-E2000ESD nie włącza się