Poza tym funkcje Readeeprom i Writeeeprom są chyba niezbędne? Wypróbuj propozycje zmian i sam się przekonasz.
http://www.elektroda.pl/rtvforum/topic14...
...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
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...
Program się zawiesi bo na czas zapisu program jest zatrzymywany w pętli oczekującej na zakończenie zapisu (tak robi BASCOM a domyślam się że mówisz o BASCOMowej funkcji zapisującej a nie jakiejś własnej). Kolejne przerwania od Timera będą wywoływane tuż po poprzednim a więc program główny będzie praktycznie stał w miejscu. O zajeżdżaniu pamięci EEPROM...
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ą...
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...
Mam wrażenie że przy obecnie wybranym algorytmie nie da się przyspieszyć. Gdyby dane o adresie zapisywane były w ciągu z reszta to ujdzie i nie trzeba czekać ale tak to niestety: 1. ładujesz adres początku 2. wysyłasz dane po koleji 3. czekasz te 10ms 4. zapiszujesz pod 5000 zmienną adresu 5. czekasz znowu 10ms I tak powinien wyglądać fragment zapisywania....
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...
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...
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...
https://obrazki.elektroda.pl/8025280500_... Witam! Przedstawiam wam w pełni automatyczną domową windę osobową! Jest to mój największy, najbardziej skomplikowany, i najdroższy projekt którym chwaliłem się jakiś czas temu w dziale „DiY w budowie”. (https://www.elektroda.pl/rtvforum/viewt... Na początku...
(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....
:arrow: GienekS pisze w Bascomie Dzieki zumek wlasnie o takie cos mi chodzilo, nie wiedzialem ze jest taki zapis Set Wynik(1).i ale teraz juz wiem o co chodzi, jutro bede probowal jesli macie jakies inne pomysly to piszcie na wyparek jak by z tym byly jakies problemy Dzieki all Bardzo prosze. Tylko jeszcze mała uwaga. Uzywając indeksu do ustawiania...
Pomóżcie proszę zamienić 2 fragmenty programu w Bascom'ie na wersję w Ascii. Ten program w Bascom jest na pewno w ASCII. Jeśli ktoś wie jak to zrobić, to uprzejmie proszę o informację na pocztę: tadeko(_at_)poczta.onet.pl To jest publiczne forum i jeżeli ktoś będzie chciał odpowiedzieć (co prawda nie wiadomo o co pytasz) to zrobi to tu aby inni w przyszłości...
OK, jeśli dobrze rozumiem to chodzi o zapis 32 bajtów, czyli strony. Sprawdziłem program z zapisem od adresu 0 do 3200 z krokiem 32 i wszystko działa, ale w ten sposób tracę niepotrzebnie 23 bajty na każdą zapisaną stronę (ponieważ zapisuję 9). Czy jedynym sposobem jest zapis jednego bajtu, zwiększenie adresu o 1, zapis kolejnego bajtu, zwiększenie...
(at)stozek - normalnie w Bascom nie jest potrzebna komenda Start Timer0 bo jest on uruchamiany od razu podczas konfiguracji. Używa się tej komendy tylko jeśli poprzednio zatrzymałeś Timer poprzez Stop Timer0. Rozumiem, że zatrzymujesz timer. Tak więc zatrzymywanie timera to zabranie mu źródła taktowania. Bascomowe komendy moża wiec rozumieć tak: Start...
https://obrazki.elektroda.pl/2034175900_... Wczoraj wczesnym rankiem (tj. niedziela) tak sobie leżałem oglądając TV i pomyślałem, że przydałoby się zaświecić światło w pokoju, ale strasznie nie chciało mi się wstawać… Tak powstał pomysł na oświetlenie sypialni sterowane pilotem IR. ;) https://obrazki.elektroda.pl/6206372600_...
W konfiguratorze LCD ten pin nie występuje w ogóle, więc w sumie nie wiem jak zadeklarowac, że go sie w ogóle używa.... config lcdpin Z częstotliwością nic nie grzebie, więc jest fabryczna, w kodzie mam polecenie " $crystal = 8000000 " . Oscylator rzeczywiście ma 8MHz, ale fabrycznie jest włączony dzielnik... Pomigaj diodą. Zrób prostą pętlę - zmień...
Witam... Kolego <PiotrzePitucha> troszeczke nie rozumiem zapisu... nie spotkałem się jeszcze z takim zapisem.... mógłbyś mi to wytłumaczyć..?. Chciałbym jeszcze dodać kawałek kodu o który właściwie toczy się moja batalja.. Otóż chciałbym móc ustawiać zmienną SINGLE i zapisywać tą wartość do pamięci eeprom. Kod programu: Sub U_termostaty Cls Lcd...
Czy jak w Bascomie Avr, zapisuję zmienną X do pamięci EEPROM, to muszę wyłączyć przerwania. ? Bo to wygląda tak , że kręci się pętla główna Do...Loop. Jeżeli w tej pętli zostanie wykryta zmiana stanu zmiennej, to jest nowa wartość wpisywana do pamięci. Dodatkowo działa Timer0 do obsługi wyświetlaczy, przerwanie co 4ms Jeżeli w czasie zapisu do pamięci,...
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...
Hello to all programmers, Can anybody hint me with a routine for Bascom AVR ? Here is the idea: LCD 16x2 is connected and must display the choice Menu for selecting a constant (i.e variable constant) by UP/DOWN buttons - from 1 to 150 , and then store it with third button.Constant is displayed as number, which is increased or decreased by the buttons....
I2cwbyte &B1010_0000 To zapis binarny dopuszczalny przez BASCOM (spotkałem w kilku przykładach), można też oczywiście zapisać adres szesnastkowo i dziesiętnie (160). Rozumiem Twoje zdziwienie, bo sam tak zareagowałem... ale kompiluje się bez problemu. Poniżej zameszczam zmodyfikowany program... jednak też nie działa prawidłowo... niektóre liczby wyświetlane...
Niemniej nawet taki prosty bootloader wygląda na coś poza możliwościami autora Dlatego napisałem "teoretycznie mozliwe" . Do tege ten bascom
Witam, problem jak w temacie. Program się kompiluje ,Bascom nie wyrzuca żadnych błędów ,ale nie działa zapis i odczyt z EEPROMU??? Programik testowy mający na celu zaznajomić się z obsługą wewnętrznej pamięci eeprom ,w przyszłości chciałbym ją wykorzystywać do bardziej zaawansowanych rzeczy (typu zamki szyfrowe, pilot programowalny ,itp.) ,ale pierw...
...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...
Witam wszystkich *********** Wielka prośba o pomoc *********** Napisałem w Bascom'ie na procka AT89c2059 mały programik zamka obsługujący pastylkę Dallas'a. Odczytuje pastylkę i porównuję ze wzorcami które wpisałem w program na stałe i to wszystko działa. Tutaj mam pytanie jak odczytany numer z pastylki który jest w tablicy (8 elementowej) zapisać...
Witam po przerwie. Ćwiczę teraz zapis do pamięci EEPROM i mam problem. Chcę, żeby po wyłączeniu urządzenie pamiętało ostatnią nastawę. Po każdym naciśnięciu przycisku program zwiększa i zapisuje zmienną X do pamięci EEPROM Po wyłączeniu i włączeniu odczytuje zmienną, ale działa to tylko dla X=2 i x=3 Jeśli x=1 i wyłączę i włączę zasilanie lub zresetuję...
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ęć...
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ć...
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.
Rozumię, że chodzi o zapis do pamięci EEPROM a potem odczyt z pamięci. Aby dokonać zapisu do EEPROM-u należy: Dim x as long 'definicja zmiennej "x" typu Long x = .... 'wpisać wielkość tej zmiennej writeeeprom x , 1 'zapisanie zmiennej "x" do komórki "1" EEPROM-u Aby odczytać z EEPROM-u: readeeprom x , 1 'odczyt zmiennej "x" z komórki "1" EEPROM-u Uwaga:...
Wyraźnie ci pisze "I2cwbite" czyli zapis jednego BAJTU.. w EEPROM'ie I2C komórka ma 8 bajtów.. jeśli chcesz zapisać jakąś zmienną która zajmuje więcej niż bajt to niema zmiłuj sie.. musisz podzielić na bajty... np takie coś: dim A as word A = 12345 '--------- I2cstart I2cwbyte adresw I2cwbyte adres_komórki i2cwbyte hi(A) I2cstop '--------- I2cstart...
Zapis do EEPROM - to najwyżej marne milisekundy. Po wykryciu spadku napięcia zasilającego (bez jakiegokolwiek podtrzymania) swobodnie zdążysz zapisać te zmienne do EEPROM przed całkowitym padem zasilania. Potrzebne jest tylko przerwanie przy spadku napięcia.
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...
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...
witam wszystkich . problem mój polega na tym że z nieznanych przyczyn w moim urządzeniu kasuje się zawartość pamięci eeprom . urządzenie zbudowane jest na tiny25 , stabilizowane 78L05 , filtrowane po stronie wtórnej c=470 nF i pracuje w samochodzie . po jakim czasie zawartość pamięci eeprom jest cała FF . to samo urządzenie jeśli odczytuje dane z flash...
Witam. Przeglądam właśnie dyskusję. Kolega Ucy74 słusznie zwrócił uwagę na coś co zostało pominięte w ferworze waliki z impusami,jak zauważyłeś ma być niby robiony zapis do pamięci ale nie przez 0,5 mS tylko co 0,5ms..... a to juz jeśli chodzi faktycznie o eeprom makabra,biorąc pod uwagę czas samego zapisu do eeproma no i biorąc pod uwagę jego żywotność,mam...
Uruchomiłem to rozwiązanie w następującej konfiguracji: Windows XP SP3 AVRStudio ver4 i 5, Bascom Port virtualny - eterlogic (Com4), (COM1 i 2 na płycie gł) FTDI - FT232RL Procesor ATMEGA 8 W każdym przypadku mogłem zgrać program do pliku, wgrać program i zweryfikować. Przy EEPROM mam dwa problemy: 1. Wgrałem Bascom'em STK200 do EEPROM pierwsze 3 bajty...
Tak ściągnąłem ten plik, i wyrażanie tam pisze, że jest to tylko główna pętla programu, czyli fragment. Brakuje tu deklaracji zmiennych, i jest to funkcja programu, wskazuje na to pierwsza linia SUB MAIN, oraz końcowa END SUB. Ten fragment kodu to tylko odczyt danych konfiguracyjnych klawiszy na pilocie, odbieranie komendy z pilota, jej interpretacja,...
Witam. Sprawdziłem. bascom wersja 2.0.5.0. program się kompliluje i wyświetla "no errors found", ale poprawiłem deflcdchar na wersję bez nawiasów. Bawiąc się na zestawie uruchomieniowym zauważyłem, że pomimo wyłączonego kursora, czasami się on pojawia. Zawsze jest widoczny w przypadku odmierzania czasy pracy gdy odmierza jednostki sekund. Jest na przykład...
Co jest źle? [syntax=basic4gl]$regfile = "m32def.dat" $crystal = 8000000 $hwstack = 64 $swstack = 64 $framesize = 32 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2 '********************* Konfiguracja magistrali I2C Config I2cdelay = 5 ' domyślnie tryb Slow Config Sda...
To ciekawe ale mam identyczny przypadek. Bascom zapisywał poprawnie - czyli hardware ok. W C (avr-gcc) zgodnie z przykładem producenta nie szło nic zapisać, natomiast po poprawce jak wyżej śmiga... :| PS. Zmarnowałem na znalezienie rozwiązania dwie noce i pewnie myślałbym dalej nad tym, co jest nie tak gdyby nie ten post... Dzięki! :)
Witam Czy procesor AtMega 328p wyrobi się przy założeniu: Odczyt danych z RS485 Zapis danych na karcie SD Zakładam tak: PD0, PD1 - UART PD3 - przełączanie transmisji RS485 PC4, PC5 - I2C ( TWI ) pod EEPROM + PCF8563 PC0, PC1, PC2, PC3 - linie danych wyświetlacza PB1, PB2 - linie E i RS wyświetlacza PB3 ( OC2A ) - podświetlanie wyświetlacza PD4, PD5,...
Witam, przeszukałem już cały portal i nie znalazłem odpowiedzi. mam kod obsługi 3 x DS18X20 z numerami układów zapisanymi w EEPROM i jeżeli chcę odczytać właściwy ROM to muszę użyć sekwencji jak w kodzie w sekcji 1 (bez skoku do podprogramu) 'program odczytujący obecność układów 1WIRE i sprawdzający ROMy z EEPROM $regfile = "attiny2313.dat"...
rj1307 napisał: I drugie pytanie, jeśli dobrze zrozumiałem, nie mogę adresować xram'u od 0 tylko od adresu powyżej końca pamięci wewnętrznej mikrokontolera. Jak więc zapisać pełne 64kB? Bezpośrednio sie nie da. W kontrolerze trzeba ustawić adresowanie 32 kB. Pamięć trzeba podzielić na dwa obszary po 32kB. Linią adresową A15 (nie musi to być PC7) wybieramy...
1) Attiny13 ma tylko 64 bajty eeprom = 64 komórki, więc zapis czegoś powyżej nigdy nie zadziała 2) Podczas programowania procesora sprawdź czy fusebit od eeprom jest ustawiony aby zachował jej zawartość (tzn nie kasował) 3) Zamiast overlay użyj HIGH i LOW aby dostać się do połówek zmiennej typu word 4) Zobacz niżej że to syf, może to zadziała ale nie...
Da sie to zrobić? Bo robie projekt na atmega8515 (mam ich kilka więc nie będe kupował nowego) a on nie ma TWI a potrzebuje dołączyć pamięć EEPROM Jak to zrobić pod bascomem o ile sie da Witam wszystkich. Ostatnio spotkałem sie z podobnym problemem. Musiałem odczytać i zapisać zawartość 24c08 (1024 bajty). Niestety :( programy przykładowe załączone...
Case`ów nie dotykaj. Napisz wszystkie a program określi które wyświetlić a które pominąc ;) Zapis tylko jednej zmiennej do Eeprom. Za to po przepisaniu z eeprom do SRAM możesz sprawdzać każdy bit z osobna. Na dodatek numer bitu może być zmienną czyli jeśli zmienna ma 16 bitów to drugą zmienną możesz określić o który bit Ci chodzi. Jeśli zmienna Menu...
Kartę mam HAMA 2GB w FAT16 jeśli chodzi o rozmiar alokacji to był ustawiony podczas formatu na domyślny. Jeśli chodzi o karty to bardzo dużo kart nie działa. Ja osobiście przerobiłem 6 kart za nim ruszyło. Wcześniej były błędy. Ściągnąłem z elektrody kod w bascom z tematu "Najprostsze odtwarzanie wav" po czym zacząłem każdą kartę formatować na FAT16...
Staram sie napisać programik w Bascom, który odczyta mi numery seryjne z termometrów dallasa DS1820 (docelowo 3-4 termometry) ma go zapisać w pamieci eeprom procesora, a nast ma być odczytany. Na końcu użyłem komendę dla wyświetlenia na lcd ale jakoś mi to podejżanie działa ponieważ nie wyświetla mi znaków a tylko jakieś "9". Może źle odczytuje lub...
ATTiny13, do pinu 2 (PB3) podłączony jest dzielnik napięcia mierzący napięcie zasilania. Po spadku napięcia poniżej zadanej wartości powinna nastąpić sygnalizacja poprzez "wywołanie 3 mignięć" na pinie 5 (PB0). Poziom napięcia przy, którym ma nastąpić sygnalizacja ustalany jest przez zapis wartości napięcia zasiania do EEPROMu po zwarciu pinu 1 (PB%)...
Schemat poprawiłem. Zmieniłem w pierwszym poście. Faktycznie, aż miło popatrzeć. Sam czasem się wkurzałem szukając ścieżki. Pomierzyłem jeszcze prądy: Atmega + SD - 220 mA Atmega bez SD - 140 mA atmega bez LCD i bez podświetlania - 84,9 mA Atmega z LCD bez podświetlania - 88 mA W założeniu ma to być: - pomiar z siedmiu DS18B20 - pomiar z dwóch czujników...
Witam. Jestem raczkujący jeśli chodzi o technikę Mikrokontrolerów. Od miesiąca posiadam zestaw EVB 4.3 z kursem AND-Tech. Zrobiłem prymitywne urządzenie do sterowania lampy. Potrzebuję je wzbogacić o funkcję zliczania czasu przebiegu tej lampy ( po to by wiedzieć ile już świeciła). Lampa ma ograniczony czas żywotności więc funkcja jest pożyteczna (pozwoli...
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
Witam. Chciałem się pobawić eepromem i zaserwowałem sobie taką zabawę, że hej. Mam problem z odczytem. Najlepiej wkleję troszkę kodu. clr r16 ldi r16, (1 << TWPS0) out TWSR, r16 ldi r16, 12 out TWBR, R16 sbi PORTC, PC5 sbi PORTC, PC4 rcall twi_start rcall twi_set_write ldi TWI_REGISTER, 0x50 rcall twi_send_device_address ldi r17, 0x00...
Niestety próbowałem sam, ale juz nie mam siły. Przeczytałem tematy na forum jednak nie widze w nich rozwiązania problemu, dlatego zacząłem nowy temat. Problem tkwi w tym, że otrzymuje z układu DS18B20 po dokonaniu odczytu z rejestrów wynik w postaci FFFF. Program piszę pod ATMega48. Czujnik połączony jest z zasilaniem z stabilizatora 7805. Najpierw...
Co do kodu, to wstawię coś wieczorem, jak wrócę z pracy. Jeśli chodzi o obsługę RFM12 to mam z tego wątku [url=http://www.elektroda.pl/rtvforum/to... z przed ostatniej strony ( jest tam też zresztą kilka moich postów ), natomiast nie ma tam ważnej linijki kodu, który odblokowywał kontroler w czasie pomiędzy odbiorem danych, a który...
Ok dzięki Jml. 'Program sterowania dwoma układami DS1820 dołączonymi 'do tej samej magistrali 1-Wire $regfile = "m8def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera $crystal = 8000000 'informuje kompilator 'o częstotliwości oscylatora 'taktującego mikrokontroler Config Pinb.1 = Input Config Pinc.5 = Output 'linia PB1 jako wejściowa...
Przepisujesz z ksiazki? :cunning: Popatrz dobrze czy np. jest tam cos takiego: $regfile = M8def.dat Tutaj masz poprawny kod: 'Program sterowania dwoma układami DS1820 dołączonymi 'do tej samej magistrali 1-Wire $regfile = "m8def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera $crystal = 8000000 'informuje kompilator 'o częstotliwości...
No właśnie, nie wiem czy tak to sie nazywa ale staram sie już pare dni zastąpić tablice zrobioną na wewnętrznym EEPROMie ATMEGI na taką która była by w 24cXX Program pisany w BASCOM np. Do tej pory robiłem to tak. Dim Dane(500) as Eram Word Dim X as Word, Z as Word potem w programie bylo tak Z = Dana(X) lub Dana(X) = Z Teraz chce zrobić tak żeby to...
ditomek -> masz rację,że ta dyskusja nie ma celu. Dodatkowo powiedziałbym, że ani kolega Balu ani nikt inny w tym ja nie chce zrobić z ciebie ostatniej "lamy" jak to określasz... .... to raczej ty sam rozbisz z siebie to co oznacza to dziwne określenie, ponieważ już kolega Balu podpowiada ci, że nie można traktować zmiennych eram jak zwykłych zmiennych...
Witam mam takowy problem. Niewiem dlaczego odczyt eepromu nie może odbywać się w petli do loop. Może ktoś mnie oświecić? Jeżeli zapisuje i odczytuje w ten sposób jest ok: Dim Eskret As Eram Byte At 1 Eskret = 12 Dim Egaz As Eram Byte At 2 Egaz = 26 Dim Skret As Byte Skret = 0 Dim Gaz As Byte Gaz = 0 Readeeprom Skret , 1 Readeeprom Gaz , 2 Cls Locate...
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,...
Próbowałem coś takiego i męczę się cały czas ,ale i tak mi wychodzą głupoty. :( [syntax=basic4gl]Sub Gettime() 'pobieranie czasu z PCF8583 'początek petli I2cstart 'inicjalizacja magistrali I2C I2cwbyte 166 'podanie adresu PCF8583 dla zapisu I2cwbyte 2 'wybranie drugiego rejestru (sekund) I2cstart 'powtórna inicjalizacja magistrali I2C I2cwbyte 167...
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.
Witam podaję kod, który działa poprawnie, oczywiście należy go dopasować do swoich potrzeb. [syntax=vbnet] 'Sterownik swiatel V2.2 '10-06-2015 'Roman Biadała $regfile = "m128def.dat" $crystal = 11059200 '$lib "fp_trig.lbx" '******** Ustawienia portów ****************************************... '******** Sterowanie 74HC541 - przekaźniki *************************************...
Witam Piszę program w Bascomie na Atmega32 do sterowania ogrzewaniem w warsztacie i mam problem. Jest zegar RTC, zewnętrzny Ram, Timer, Menu i to wszystko działa bez zarzutu - dokładnie tak jak bym chciał. Chciałem dołożyć czujnik temperatury i wykorzystać do tego celu wejście ADC. Problem pojawia się w momencie jak w podmenu "Start_webasto" dodaję...
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...
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ś...
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)
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]
Konwersje byte->string otrzymuje się przy użyciu funkcji Str. W drugą stronę działa funkcja Val.
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_...
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.
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.
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,...
tak, stosuj tablice. Ulatwi ci to robote.... ALE pamietaj zeby NIE ZAPISYWAC DANYCH W KOMORCE EEPROMA O ADRESIE 0. Jesli zaczniesz deklarowac zmienne w bascomie to : ...jakies zmienne... .... .... .... 'EEPROM dim foo as eram byte 'to ci zalatwia komorke 0, bo tu bascom umiesci tą zmienną, i z niej niekorzystasz dim tablica1(3) as eram byte dim tablica2(3)...
Jesli zapis jednego znaku do eepromu zajmuje 10ms to musisz wysylac, dane z pliku porcjami inaczej pogubisz dane. Zapis na karte byl o tyle dobry ze spokojnie moglem zapisac 512 bajtow, podczas gdy dane zapisywaly sie w buforku, czyli zapis na karte byl mniejszy niz 512ms (dobior danych).
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...
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)
Jak to nic nie robi jak realizuje przerwania od przepełnienia liczników T0 i T1? :) Zreszta program tak do końca nie robi nic. Gdy załaduje program to zapalane sa wszystkie wyświetlacze tak jak powinno być a następnie zamiast wyswietlac kolejne litery i przesuwac je w lewo, zgaszane są kolejno wyświetlacze, co wygląda tak jakby program działał poprawnie...
RTFM! Wszystko jest w polskim helpie do Bascoma. Po za tym wewnętrzny eeprom czy zewnętrzny?
Witam. Jaki jest poprawny sposób zapisu / odczytu danych do pamięci EEPROM typu 24cXX ? W Sub Read_eeprom(adres As Byte, Value As Byte) I2cstart I2cwbyte 160 I2cwbyte Adres I2cstart I2cwbyte 161 I2crbyte Test, 9 I2cstop End Sub Sub Write_eeprom(adres As Byte, Value As Byte) I2cstart I2cwbyte 160 I2cwbyte Adres I2cwbyte Value I2cstop...
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...
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.
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
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...
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.
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...
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...
tak jak napisał kolega bascoma AVR czeka na początku instrukcji writeeprom czy pamięc jest gotowa do zapisu. a tak wogółe to ja stosuje zmienne typu eprom gdy chce zapisaccoś do eproma. oczywiście należy uważać z ich wykożystaniem (nigdy w pętlach) dim XXX as Eram Word na zmiennych eRam nie mozna stosować operacji tylko XXX = coś lub coś = XXX
No tak to właśnie zrobiłem... No chyba nie bardzo :D Przetestuj ten kodzik :D [syntax=vbnet]$regfile = "m32def.dat" $crystal = 16000000 Config Submode = New Config Lcd = 20 * 4 Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Porta.0 , Db6 = Porta.1 , Db7 = Porta.2 , E = Portb.3 , Rs = Portb.4 Config Pind.2 = Input : Set Portd.2 : Ok Alias Pind.2 Config...
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...
a mog bys zapodac jakas komede ktora by odbierala z dekodera ciag cyfr i zapisywala na dany adres eeprom
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...
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...
Jeśli korzystasz z RTC masz tam do dyspozycji RAM na przechowanie zmiennej, ewentualnie zewnętrzna pamięć SRAM z interfejsem SPI (np. 23X256).
bascom eeprom zapis bascom zapis eeprom zapis eeprom bascom
ekspres bosch wyczyść zaparzacz wylać bateria whirlpool wyjąć grzałka
dewalt bateria instrukcja pilot grundig
Silnik odbija podczas kręcenia - przyczyny i diagnostyka Zamienniki PN8147: PN8145, PN8149, BP2867D, LinkSwitch-TN2 – porównanie i kompatybilność