Przy zapisie eepromu należy brać pod uwagę że przez 1-5 ms trwa zapis i nic wtedy nie odczytasz/zapiszesz. A tutaj gotowiec: https://github.com/jnk0le/AVR-I2C-libs/b...
Próbowałem 200kHz, 100kHz, 50kHz. Za każdym razem efekt ten sam. To może spróbuj zajrzeć do PDF-ka tej pamięci i zainteresuj się mechanizmem PAGE WRITE, bo to on jest źródłem Twoich kłopotów.
Jakiś użytkownik też miał z tym kiedyś problem, rozwiązał to w taki sposób: Pinb.0 = 0 ' pin RW Waitms 100 Initlcd Nie sądzę, że jest to potrzebne, gdy pin został skonfigurowany w config lcdpin . Co z tą częstotliwością? W symulatorze raczej jest podany czas wykonywania kodu (sprawdź bez $sim ). Nie podałeś, jaki masz kod, ile się wykonuje na mikrokontrolerze,...
Przy zapisie do EEPROMU w Bascomie nie musisz wyłączać przerwań. Funkcja WRITEEEPROM robi to sama, ale READEEPROM już nie wyłącza przerwań :)
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...
Poza tym funkcje Readeeprom i Writeeeprom są chyba niezbędne? Wypróbuj propozycje zmian i sam się przekonasz.
Czy jeżeli w Bascomi-e, w przerwaniu, ............ ......... czy zapis będzie trwał, a procesor w tym czasię będzie już wykonywał inne rozkazy? Zapisywana jest zmienna bajtowa. Wpis wartości zmiennej do EEPROM nie odbywa sie samoczynnie, jak powiedzmy przesączanie wody przez lejek(!). Tego wpisu dokonuje processor; nie ma tam pośrednika (chyba jedynie...
Nie jestem pewny o co tak naprawdę koledze chodzi. Czy to jakoś pomoże? Dim tekst as eram string*30 Najprostszy sposób na zapis stringa w pamieci eeprom. pozdrawiam Tomek
Skoro program utyka w jakimś miejscu to znaczy że czekasz w pollingu na stan, który się nie pojawia. Po pierwsze dodałbym time out, który przerwie pętlę oczekiwania zanim układ zostanie zresetowany przez watchdog. Dodatkowo w przypadku wystąpienia takiego timeoutu trzeba by obsłużyć jakoś błąd magistrali: http://obrazki.elektroda.pl/2162467700_1...
http://www.elektroda.pl/rtvforum/topic14...
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]
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.
Konwersje byte->string otrzymuje się przy użyciu funkcji Str. W drugą stronę działa funkcja Val.
...Nawiązując do sugestii kolegi wrzuciłem linijki do programiku i na nieszczęście nawet wyświetlacz lcd przestał wyświetlać, a tylko mruga pierwsza linijka. Nie no , jasnowidzem to nie jestem :D Poza tym , to tylko "pomysł na ..." , a nie gotowiec.Pokaż(załącznik) cały kod , to może cosik się zaradzi :D Piotrek
Dim zmienna As long ,long1 as byte at long overlay, long2 As Byte At long + 1 Overlay, long3 as byte at address + 2 overlay, long4 as byte at address +3 long=1 do WRITEEEPROM long1 , 1 WRITEEEPROM long2 , 2 WRITEEEPROM long3 , 3 WRITEEEPROM long4 , 4 loop end
Po prostu deklarujesz zmienne i robisz tak: Dim Eeprom(128) As Eram Byte 'i potem zapis o odczyt: Eeprom(1) = 123 Jakas_zmienna = Eeprom(128)
Witam, ilość odczytów nie ma znaczenia, mam układ gdzie 8 komórek 24C02 jest odczytywane cyklicznie co kilka milisekund w termometrze od ponad 7 lat i jeszcze nic się nie zmieniło. Nigdy nie spotkałem się z informacją o ilości cykli odczytu a jedynie zapisu do EEprom.
Chodzi o zewnętrzny eeprom na i2c. A dokładnie na 24CXX, kostki te są naprawdę w świetnej cenie, kusi mnie aby je wykorzystać. Przyznam się szczerze ze przy wyborze AVR-ów do wcześniejszych projektów kierowałem się przede wszystkim ilością pamięci na program a nie np ilością portów i/o i natrafiłem przypadkiem na te układy. Mógł by ktoś umieścić jakiś...
Są oczywiście takie moduły zespolone z pamięcią. Mozna tam zapisywać i czytac po bajcie, ale można też sekwencyjnie całe łańcuchy i tablice nawet serializatorem. Dwie pierwsze funkcje podpowiem. Wygląda na to ze działaja ;) Możnaby dodać jakieś zabezpieczenia na wypadek braku komunikacji. https://obrazki.elektroda.pl/8549538400_...
Wazniejszy będzie odczyt na początku i stwierdzenie które dane są aktualne Robisz sume z bufora 1 i porownujesz z zapisana w buforze 1 , tak samo dla drugim buforze i ten z wadliwa suma odrzucasz , gorzej gdy oba maja poprawna sume to wtedy albo na podstawie analizy danych stwierdzasz które są nowsze albo na podstawie indeksu dodanego do danych tylko...
Czas zapisu Eepromu wynosi typowo 2,5-4ms. W tym czasie nie powinny byc dokonywane zadne inne operacje na pamieci Eeprom. Informacja o zakonczonym zapisie znajduje sie w rejestrze Eecr (bit 1). Wyzerowanie tego bitu = koniec zapisu Po instrukcji writeeeprom mozesz dac polecenie: bitwait Eecr.1, reset wtedy program bedzie zatrzymywany jedynie na czas...
Nie o to chodzi. Chodzi o to, że w EDW zrezygnowano z obliczania MSB, LSB A gwoli ścisłości - to o co tobie chodzi, czyli zapis do kostek serii 24c02...24c16 powinien wyglądać tak: Zapis_24c16: 'ustalanie w ktorym bloku ma lezec dana Blok = Adres / 256 'oblicznie adresu do zapisu jednej z grup danych Adr = 160 'tylko 1010 0000 Shift Blok , Left...
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)
Możesz rozwinąć to "systematyzować". Warto jedną(dwie) komórkę poświęcić by wskazać na której pozycji jest ostatni zapis lub ma być następny. Jeśli wystąpi zdarzenie to należy odczytać tą komórkę wykonać zapis np. 4 kolejnych komórek po czym zwiększyć i zapisać wskaźnik.
[url=http://bascom.dxp.pl/bascom_dyrekty... opisane dyrektywy miedzy innymi $eeprom i $eepromhex.
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,...
Okazało się że nie załadowałem pamięci eeprom do cpu. Dziękuję za pomoc.
Dołączam gotowy projekt komunikacji avr z zew. pamięcią eeprom. Mam nadzieję że umiejętnie go wykorzystasz.
Witam!! Napisałem sobie taki prosty programik do zapisu i odczytu z Eeprom'a - po to by poznać jego obsługę. Niestety program ten na wyświetlaczu wyświetla "50 50" Nie wiem dlaczego dubluje te 2 inne zmienne. Szukałem przyczyny w jak to się mówi 'literówkach' ale albo jestem ślepy bo nic nie znalazłem.. Co jest przyczyną w/w problemu? Mój kod: $regfile...
Spróbuj z Instrukcją CONFIG I2CDELAY
Nie, adres to "word" na pewno kurcze, im dłużej patrzę tym mniej rozumiem... tak samo zapisuję i odczytuję adres jak i zmienną wpamięć, obie typu word i jedna się zapisuje poprawnie a druga nie.. jest co prawda rozwiązanie działające - zapisuje adres w eepromie procesora i śmiga aż miło, ale to takie... nie od końca to :)
Witaj, Po pierwsze w Bascomie możesz zadeklarować programowy bufor USARTA w dodatku z wieloma sygnałami sterującymi Twoją ramką a po drugie pamięć EEPROM możesz zapisywać stronami bodajże po 32 bajty co oczywiście nie zmienia faktu, iż zapis strony potrwa tyle co zapis bajtu, nie mniej. Pozdrawiam... robiw
Tak.
Dim Empty As Eram Byte At 0 Dim Tzap1 As Eram Single Dim Ua As Eram Byte Dim Ub As Eram Byte Dim Uc As Eram Byte Dim Ud As Eram Byte Czy to jest wszystko co powinienem zrobić.?. Czy powinienem jeszcze używać dyrektyw typu np $eeprom i $data ?. Czy wręcz odresować bezpośrednio tą pamięć zapis/odczyt?. A powinno być takie proste, ale nie jest, więc w...
Witam. część kodu z Bascoma (D zadeklarowane jako Word) Input "coś tam.. " , D Waitms 20 Writeeeprom D , 1 w procku "8535" bez problemów zapisuje daną liczbę. Po wymianie procesora na Atmega 16 lub 32, już nie zapisuje tej liczby (kompilator nie zgłasza żadnych uwag). "Po omacku" zauważyłem, że w w/w prockach działa dopiero po dodaniu jeszcze jednego...
Witam, czy ktoś wie jak napisać taki kod w Bascomie aby zapisywał zmienne do eepromu wewnętrznego-zewnętrznego przed wyłączeniem urządzenia
Nie jestem taki pewien. Dalej w opisie $noramclear jest napisane , że zawartość komórek pamięci nie zostanie skasowana , co nie oznacza , że pozostaną w niej zmienne, a raczej , że pozostaną w niej wartości przypadkowe. Prawdopodobnie będą one wypełnione wartością &H0FF , choć nie jest to pewne. Rozważam pomysł wykorzystania generatora liczb losowych...
... W ten sposób mogę skakać po całej pamięci. Po każdym zapisie bajtu jest przerwa 10ms. Myślę, że podobnie można to zrobić w Bascomie. Policz ile czasu zajmie prockowi zapisanie 8192 bajtów(24c64).Spoko można się zdrzemnąć :D Piotrek PS O pamięci 24c1024 , wogóle nie wspomnę :(
Konfigurujesz magistrale I2C adresujesz układ (adres sprawdz w nocie aplikacyjnej, bo nie pamiętam) W bascomie wysyłasz dane za pomocą I2CSEND a odbierasz I2CRECEIVE Przykłady transmisji znajdują się w pliku pomocy. W sieci znajdziesz równierz tłumaczenia plików pomocy. Możesz napisać jaki procesor chcesz zaprogramować i jak podłączasz pamięć, to w...
(at)tadeko, dużo przykładów w asm jest zawartych w datasheet mikrokontrolerów atmela. Między innymi jest ten o który pytasz, jest również odczyt. Dodano po 9 Daj sobie spokój. Jeśli kolega Tadeko chce uczyć się asemblera, to należałoby mu pomóc i nakierować w odpowiednim kierunku. Przede wszystkim musi zrozumieć, że porównanie asm z bascom nie ma sensu....
Witam. Nie ma tutaj nikogo kto spotkał się z takim problemem..?. Same "łebskie" chłopaki, a nikogo kto by coś zasugerował..?. Nawet Piotrek zamilkł... Ja próbuję coś wymyśleć, ale nijak mi się nie udaje... skąd ten minus u mnie...? Pozdrawiam
Wydaje mi się że jak byś nie zrobił i będzie działało to tak jest dobrze ;] ilu programistów tyle podejść do tematu... Jeżeli już zadeklarujesz taką dużą tablicę to tak czy siak będzie ona zajmowała jakąś przestrzeń w pamięci więc czemu nie użyć jej i odczytać z eeprom wszystkiego na raz. Kiedyś robiłem podobny sterownik do CO ze sterowaniem temperaturą...
Możesz zrobić podtrzymanie zasilania na kondensatorze i monitorować stan na jakiejś nóżce przed tym układem-tam zniknie zasilanie najpierw i wtedy wykonać procedure zapisu stanu do eeprom.
Przede wszystkim skoro to idzie na dedykowany LCD to wyrzuciłbym te bmp, na PC skonwertowałbym to do gotowego pliku binarnego do wrzucenia prosto na LCD - po co męczyć się z programem, który zrobi dokładnie to samo, ale na mikrokontrolerze?
zapis: i2cstart i2cwbyte adres_i2c_pamieci for i =1 to 8 i2cwbyte dane(i) next i i2cstop przy zapisie trzeba zobaczyc ile fizycznie pamiec i2c ma buforu (do szybkiego zapisu bajt po bajcie odczyt: i2cstart i2cwbyte adres_i2c_pamieci i2cstart for i=1 to 7 i2crbyte dane (i), ack next i i2crbyte dane(8), nack i2cstop odczyt jest...
Pamięć większa być może ale nie ta... HT27C512 to OTP czyli jednokrotnego zapisu, a Ty musisz podstawić pamięć dającą się kasować i zapisywać wielokrotnie... poszukaj EEPROM np. Winbonda 27Exxx lub 27Cxxx pozdr KN
Tylko dlaczego wybieranie ma powodować zapis? Albo dlaczego wybieranie ma być dokonywane przyciskiem zapisu?
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...
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...
Only one variable? What if you actually not set value of the variable? Should LCD display something else (like switching main screen/menu screen)? Do the buttons should have autorepeat or just one press = +1 You should be more precise
Witam Problem taki jak w temacie, zczytuje z urzadzenia zewnetrznego bit po bicie (np; 100101110101...). Chodzi mi o to zeby podzielic te 128 bity na 16 bajtow i pozniej te 16 bajtow zapisac w pamieci eeprom. Z tego co sie doczytalem to pojedynczego bitu nie mozna zapisac w tej pamieci wiec stad moj problem.Moze macie jakies inne pewnie duzo prostsze...
W jakim jezyku piszesz? W C masz zadanie ulatwione, patrz struktury... Ale generalnie masz trzy parametry na jedno akwarium, ktore oznacze #1, #2, #3. Do tego masz trzy akwaria A,B,C Więc tworzysz sobie tablice : [#1,#2,#3] dla akwarium A [#1,#2,#3] dla akwarium B [#1,#2,#3] dla akwarium C Istotna uwaga: nie zapisuje sie danych w pamięci POD JAKĄŚ NAZWĄ....
Niemniej nawet taki prosty bootloader wygląda na coś poza możliwościami autora Dlatego napisałem "teoretycznie mozliwe" . Do tege ten bascom
Zły pomysł... Tak można czytać z eeprom a wpętli... nie, NIEMOŻNA pisać do eeproma w pętli. (skońoczna liczba zapisów). Przy starcie systemu odczytaj z eeproma do jakiejś zmiennej ustawienia (zmiennych) i porównuj następnie z nimi... Łukasz. P.S. Odczyt jest dużo szybszy niż 1sekunda... DUŻO SZYBSZY. Łukasz.
W momencie zapisu (konkretniej w jednym jego kroku) trzeba wyłączyć przerwania, bo pamięć EEPROM wymaga ściśle określonej liczby cykli. Jest to opisane w datasheecie np. ATmega8. Nie wiem czy funkcje w Bascomie to realizują, ale można sobie napisać je samemu i to bez stosowania wstawek assemblerowych, Bascom umożliwia przecież operacje na rejestrach...
Narazie próbuje tylko odczytac dane. Wymieniłem procesor i nadal to samo... Czy to możliwe że w najnowszej wresji BASCOM AVR jest cos nie tak?
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...
(at)emarcus Dziękuję za odpowiedź, ja to widzę ( w Bascomie ) że puste komórki mają FF. (at)tos18 Dziękuję za odpowiedź, sprawdzę Twój zapis. Arduino IDE w tej linii: EEPROM.commit(); pokazuje błąd.
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...
Witam, To, że piszesz w bascomie to widać - WYŁĄCZ CAPS LOCK.
Witam, nie wiem jak napisać kod w Bascomie zapisu i odczytu zmiennej LONG do pamięci , popularnych kostek 24C
A czekasz aż kostka skonczy zapis do komórki?
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
Witam Jeśli dobrze rozumiem zdanie: "na zmienienie wartości string odczytanej z eeprom na zwykły tekst" masz na myśli zamianę liczby (zapisanej w kodzie ASCII ?) na jej odpowiednik znakowy. Program, który wykorzystałeś bazuje na kodach ASCII znaków, (komentarz przed tabelą znaków Fontlookop), dlatego też po mojemu niepotrzebnie stosujesz zapis: Czytaj_str...
Strasznie szybko sobie zjedziesz EEPROM - ma przecież tylko 10 000 razy cykl zapisu gwarantowany, czyli po 10 000 zmian możesz mieć poważne problemy - komórka padnie. Albo zmieniaj co jakiś czas komórki, albo zapisuj dane przy wyłączeniu urządzenia - dodaj większy kondensator podtrzymujący zasilanie i jak wykryjesz spadek napięcia zasilania przed kondensatorem...
ja bym rozwinal problem jeszcze o liczby zmiennoprzecinkowe w bascomie
daj schemat - może coś wyjaśni (dorzuć też kod - przynajmniej fragment konfiguracji, fragment zapisu i odczytu)
x i y sa zadeklarowane normlanie w RAM'ie (bez wpisu ERAM) Troche dziwne to ze w petli nie moge wykonac zapisu do eepromu bo strasznie mi sie kod programu powiekszy.
$eeprom - dyrektywa kompilatora, która informuje go, że od tego miejsca dane będą trafiać do pamięci EEPROM. Faktycznie dane te trafią do pliku EEP, którego zawartość podczas programowania zostanie przelana do wewnętrznej pamięci EEPROM układu. Napisa: - Etykieta dla polecenia READEEPROM. Jest to przyjazny zamiennik adresu pod którym dane w tej pamięci...
Ja nie sprawdzałem Twojego projektu pod względem działania, tylko czy działa zapis do eepromu w czasie programowania procesora.
Próbowałem, już mnóstwa rzeczy, ale dalej nic. Sprawdziłem na bascomie, czy da rady zapisać do kostki i można. Dlaczego więc w asemblerze nie mogę zapisać. Czy ktoś mi pomoże?
czy ten zapis: Readeeprom Txt , 0 spowoduje że Bascom sobie przeczyta cały text "napis1" ?
tych procesorów się nie programuje poza fabryką, mają PROM jednorazowego zapisu, ich pamięć stanowi zewnętrzny EEPROM
Witam. Pomóżcie proszę zamienić 2 fragmenty programu w Bascomie na wersję w Ascii. (...) Może chodzi o plik typu .hex, czyli skompilowaną binarkę zapisaną w czytelnym dla ludzi formacie?
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...
Po pierwsze to zajrzyj do pdf'a odbiornika IR, bo na Twoim schemacie brakuje konda i rezystora przy podłączeniu TSOP'a. http://pdf1.alldatasheet.com/datasheet-p... Ma być w programie: Wygaszacz (godzina + temperatura), - Czasomierz najprościej na programowym RTC: str. 244 w książce Wiązni, zaś temperatura - str. 293. Wszystko...
Powinieneś skonfigurować SDA i SCL w programie. Nie napisałeś w jakim będziesz pisał bo np w BASCOM 8051 robi się to tak: Config Sda = P1.1 Config Scl = P1.0 i wówczas możesz dowolnie wybrać porty . Przydaje się to przy projektowaniu płytki. A0 i A1 ustawiasz adres do zapisu pamięci albo (+) albo GND
Co do: Procesor32 napisał: Zapisujesz nazwy pod ten sam adres w EEprom Writeeeprom Q , 13 I odczytujesz też z tego samego adresu. Jeśli przeczytałbyś dokładnie post I po sprawie.Nie musisz pamiętać adresu pod który masz zapisywać i z pod którego odczytywać. Prosto i bez problemu. Jest to prosta metoda zapisu do EEProm, ale ma zasadniczą wadę. Użytkownik...
Do programowania używam BASCOM AVR i tak jak podałem powyżej zapisałem do EEPROM-u liczbę 320000000 i potem odczytałem bez problemów. Definiując zapis "Long" następuje automatycznie zajęcie odpowiedniej ilości komórek - sprawdzałem są zajęte cztery komórki.
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...
Temat rozwiązany.Jak się okazało błąd był bardzo prosty.W listingu który odczytuje wszystkie parametry po kolei pomiędzy dzientygodnia a ACK nie było przecinka.Co ciekawe Bascom nie zgłaszał błędu.Wpadłem na to przy nauce zapisu i odczytu pamięci EEPROM która jest na tym samym module co zegar.Reasumując przy odczycie po I2C pomiędzy parametrem odczytywanym...
Przedstawiłem tylko sposób zapisu zmiennych w EEPROM'ie (zamiast używania Writeeeprom). Wszelkie obliczenia robisz na zmiennych w RAM a na końcu zapisujesz w EEPROM. [syntax=BASCOM]Dim Year_ram As Word Dim Year_ee As Eram Word [...] Year_ram = Year_ee 'kopiuj z EEPROM'u Year_ram = (a + b) * c 'jakieś modyfikacje Year_ee = Year_ram 'zapsz do EEPROM'u...
Doszedłem do ładu z tym, cała funkcja jest napisana prawidłowo i skrajne zakresy zawsze powinne się pokrywać niezależnie od obliczeń na liczbach całkowitych. Błąd był jedynie w zapisie złych zmienny do eepromu...
Do 30 Hz po zmianie. Filtr fc=35Hz. Obecne próbkowanie: f= 125Hz (więcej nie dam, bo wtedy dokładność W takim razie musisz się liczyć z przekłamaniem sygnału na granicach pasma. Możesz to próbować kompensować w sofcie mnożąc otrzymane fft przez funkcję odwrotną do ch-ki amplitudowej filtru (kolejne mnożenia), ale weź pod uwagę, że z racji rozrzutów...
Ciekawy format zapisu i kompresji kodów ma TV-B-Gone, poczytaj sobie - http://www.ladyada.net/make/tvbgone/desi...
Nie można zapisać zmiennej single (aż 4 bajty) do jednego bajtu. Poza tym zapisuj do eeprom co jakiś czas tylko uważaj na ilość zapisów, eepromy są ograniczone. Nie musisz przypisywać wartości zmiennej na początku. Dałem taki przykład bo coś musiało być zapisane inaczej miałbyś 0 w eepromie.
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...
Jak wyłączysz procek w trakcie zapisu eepromu to nie dziwota że zapisze go źle... Czy przypadkiem nie robisz tak że naciskasz menu i zaraz go wyłączasz?
Zapis w EEPROM w Bascomie jest faktycznie lekko poroniony :) Tak jak zrobiłeś, czyli sprawdzenie czy A1 różne od A i jeśli różne to A=A1 jest jak najbardziej prawidłowe. Nie musisz natomiast używać komendy writeeeprom. Samo przepisanie A do A1 spowoduje zapis do pamięci nieulotnej. Sprawdzone wielokrotnie na prockach "większych", czyli A32 w górę, ale...
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...
Ale się uparliście o ten kalendarz :P A takie pytanie. Czy po zapisie flasha, jeśli w eepromie siedzi jakaś wartość od PWM-a, to trace tą wartość - eeprom się zeruje?
Wykonałem kiedyś urządzenie na procesorku i z pamięcią eeprom do , której to pamięci ładowało się dane w "locie" z rs232 komputera.Ze względu na to , że eepromy mają stosunkowo długi czas zapisu największą prędkość jaką udało mi się uzyskać to 4800b.I to tylko dla pamięci C64 Atmela.C256 chociaż czas zapisu ma według manuala taki jak C64 zapisywał się...
To będziesz musiał się trochę napocić. Po pierwsze jak używasz watchdoga w programie, to musisz w jakiś sposób sprawdzić czy reset aby na pewno służył do upgrade'u. Możesz to zrobić np przez zapis do eepromu jakiejś wartości, odczyt i odczyt jej bootloaderze (pamiętaj żeby bootloader ją resetował). Dobry by był też mechanizm który by pozwolił na zrezygnowanie...
Mam ten sam problem z kartą 4428. Przeszukałem różne fora i nic. Jest wiele informacji ale mało konkretów. Czy może w końcu ktoś napisać aplikację w BASCOM-ie z odczytem i zapisem tej karty?
Proszę. Jest to przykład zapisu i odczytu zarówno zwykłych bajtów jak też łańcuchów tekstowych inaczej mówiąc napisów w Eeprom. Program i funkcje działają z małymi pamięciami których adresacja mieści się w jednym bajcie. Do tego przykładu użyłem 24C04 Jeśli ktoś chce to może po prostu wpisać sobie jakieś dane do buff(1), Buff(2) itd i tak zapisać. Potem...
Procek ma tylko zapisać wartość w EEPROMIE oraz po jakimś czasie odczytać. Chyba za szybko nie jest , 10ms przerwy po zapisie chyba wystarczy... Spróbuję jeszcze zwiększyć czas.
Mam mały problem - nie potrafię przenieśc kodu z bascoma do avr c (eclipse). Tzn, wiem ze nie przeniosą go 1:1 chodzi mi raczej o ogólne zasady, szkielet: chodzi o zapis do pamięci eeprom stanu licznika - licznik sie zmienia przy pomocy przycisków góra/dół - przy wyłaczeniu zasilania oczywiście jego zawartośc jest kasowana. Oczywiście zapis przy każdej...
W jakim Bascom? Jakiego pliku na PC?? Bascom to język programowania procesora, a jedyne co procesor potrafi to skomunikować się z PC. Po stronie PC musi stać drugi program i to wcale nie napisany w Bascom (Delphi, C, VB, itp.). Jeden program odpowiada za odczyt pliku i wysyłkę danych (ten na PC), drugi (ten w AVR) za przyjęcie danych i ich zapis w eeprom.
Fajnie w końcu zrozumiałem zapis do pamięci 24c32 wielkie podziękowania Panu Andrzejowi. Pamięć e2prom będzie kolejnym układem peryferyjnym w moim urządzeniu oraz nauka obsługi pamięci szeregowych Data flasch at45db011b i eeprom 93c64 ,ekspander wejścia- wyjścia na i2c poznałem . Ala wiem teraz do kogo się zwrócić . Dzisia Postaram się jeszcze napisać...
Ta sama sytuacja. Sprawdziłem oba zapisy warunku sprawdzającego stan portu i też to samo.
bascom zapis eeprom eeprom bascom zapis zapis eeprom bascom
tps51125 samsung samsung ic901 24c256 czujnik deszczu skoda
Jak zakodować nowy pilot do Toyoty Yaris Hybrid? Jak rozebrać mikser MS-2019: instrukcja krok po kroku