Przez analogię do tego: When WP is connected high to VCC, all write operations to the memory are inhibited. także uważam, że można bez rezystora.
Cześć, Postanowiłem zbudować sobie miernik poziomu CO2 w powietrzu, wykorzystując czujnik SCD41, komunikujący się po magistrali I2C. Według datasheetów Atmegi 16 oraz SCD41 powinno to być dość proste do ogarnięcia, jednak czujnik cały czas milczał jak zaklęty. Po podsłuchaniu analizatorem stanów logicznych co też się dzieje na magistrali wychodzi na...
Podłączyłem JTAGICE mkII do Atmega 32 w komercyjnym urządzeniu żeby ocenić czy procesor nie jest uszkodzony i jakiś cudem po moich eksperymentach procesor okazał się wyczyszczony. Przy pierwszych odczytach lock bity miały wartość 0xC0 (wszystko zablokowane), przy kolejnych zrobiło się 0xFF. Praktycznie urządzenie jest już stracone, procesor wyczyszczony...
Panowie ale jaja. Wstępnie przyczynami były sam stycznik oraz wyswietlacz lcd hd44780, a procesor wcale się nie zawieszał. Dzięki Panowie, gasiki próbowałem na cewkę i na styki, sterowanie zmieniałem 3021/3041. O ferrytach nie pomyślałem. nie mam, kupię. W każdym razie, dwa jakie mam, styczniki lovato bgp0910a, lutowane do druku maja dosyć silne drgania...
Tak. To plexa z grawerowanymi cyframi, cały projekt jest tu pod linkiem : https://obrazki.elektroda.pl/3515599500_... https://obrazki.elektroda.pl/1132266300_... https://obrazki.elektroda.pl/2617164600_...
To co obserwujesz akurat jest zupełnie normalne. Zauważ, że programowanie EEPROM polega na programowaniu wyłącznie bitów o wartości 0. Bity o wartości 1 ne są programowane, bo takie one są po operacji kasowania. Czyli jeśli masz w komórce 0xFF, a wpiszesz 0xFE to będzie ok, jeśli do komórki 0xFE wpiszesz 0x01 to otrzymasz 0x00 - dlatego, że najmłodszy...
Witam. na początku zaznaczę że nie jestem specjalistą w dziedzinie i dopiero zgłębiam i poznaje "tematy" związane z Arduino itp. Do kilku dni jestem posiadaczem płytki ATMega 2560 + ESP 8266 [url=https://pl.aliexpress.com/item/TZT-...
Witam walcze od kilku godzin z takim problemem przy zaniku zasilania kondensator podtrzymuje MCU i umożliwia mu zapis do eeprom zanik wykryty wewnętrznym komparatorem, no i układ działa ale jak szybko wyłączę i włącze zasilanie a jak zrobie to wolno to nie działa kod trochę zmodyfikowałem min wektor przerwania i dodałem funkcje testujące na lcd. Używam...
Witam. Mam problem z ta pamiecia. Mecze sie juz dwa dni i nic. Podlaczylem ja na jednej magistrali z PCF8583 (RTC) i ADS1100 (ADC) do uP Atmega 8. Zegar i przetwornik chodza bez problemu. Narazie uzywam programowej obslugi I2C w AVRGCC z biblioteki RKlibAVR... Pin A0 pamieci mam podlaczony do masy wiec adres pamieci na magistrali to 101000px, x=1(odczyt),...
Witam szanownych forumowiczów. Spotkałem się z bardzo dziwnym problemem na na Atmega 128. Napisałem program, który wpisuje dana do wewnętrznego eepromu pod wskazany adres a nastepnie odczytuje dana z tego adresu i wyswietla na LCD. Wszystko do tej pory jest ok. Problem pojawia się jak wgram nowy program i próbuje odczytać dana z tego samego adresu w...
Rozumiem, w takim razie, że zawsze warto używać _update, zamiast _write? To zależy co chcesz zrobić. Jak zainicjować EEPROM domyślnymi wartościami to obowiązkowo write. Jak zapisać blok danych uprzednio odczytanych z eeprom to zdecydowanie update. Zawsze można dać _update. Jedyna różnica pomiędzy _write i _update polega na tym, że _update sprawdza,...
Oki pomylilem sie chodzilo mi o pin WP czyli write protect. Jest tez jeden problem otoz programem do zczytywania adresow magistrali odczytywal mi kilka adresow a nie jeden jak pin A2 wisial w powietrzu a po podpieciu go do plusa adres zmienial sie na jeden 168. Wczesniej zczytal mi adresy 160, 162, 164, 166, jednak adres 162 gryzlby sie z adresem PCF8583....
W dokumentacji ATMEGA8 jest taki kod służący do zapisu do pamięci: void EEPROM_write(unsigned int uiAddress, unsigned char ucData) { /* Wait for completion of previous write */ while(EECR & (1<<EEWE)) ; /* Set up address and data registers */ EEAR = uiAddress; EEDR = ucData; /* Write logical one to EEMWE */ EECR |= (1<<EEMWE); /* Start...
Witam. Przeczytałem cały temat, ale nie jestem pewien jednej rzeczy...chodzi mi o naprawdę najprostrze rozwiązanie. więc wystarczy zrealizować ten schemat : http://obrazki.elektroda.net/43_12886186... oraz zaprogramować ten kod podany na 5-tej stronie tematu: '---------------------------------------... '---------------------------------------...
Witam! Zacząłem pisać program który odczytał by mi z układu 24c02 dane i zapisał je do pliku. Eprom się odczytuje i zapisuje mi do pliku tylko ,że każdy bajt w oddzielnej linii a nie w jednej. Oto kawałek kodu: Cls Lcd "odczyt epromu" K = 0 Buf2 = "" 'For Addressw = 162 'S=Dir( "*.txt") Open "i2c.txt" For Append As #3 ' Addressw = 172 For I = 0 To 255...
Witam Uruchomiłem przykład z tej strony http://tuxgraphics.org/electronics/20090... i wszystko działa tak jak powinno i mam możliwosc zdalnego sterowania z serwera na avr. Problem jest z tym że nie rozumiem w jaki sposób realizowane jest w podanym niżej kodzie załączanie i wyłączanie czterech portów atmegi. Pomimo...
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,...
Witam Od kilku dni męczę sie z próbą odczytu temperatury z czujnika DS18B20 przy pomocy bibliotek rklibavr. Czujnik jest podpięty do portu PB0 w procesorze amtega8, rezystor podciągający ma wartość 4,74K dane zczytane z czujnika są wyświetlane na standardowym wyświetlaczu 2x16. Atmega pracuje na wewnętrznym oscylatorze 1Mhz, całość jest zasilana ze...
Witam, Mam problem z modułem bazującym na ATxmega32E5 (AVT1807, > atprogram -t avrispmk2 -i pdi -d atxmega32e5 info Tool avrispmk2 has firmware version: 1.17 Target voltage: 3.30 V Device information: Name: atxmega32e5 JtagId: N/A CPU arch.: AVR8_XMEGA Signature: 0x1e954c Lockbits: 0xff Fuses: 0xffffffffffffff...
Juz byl taki temat ale został zamknięty. Moj problem polega na tym ze nie moge ruszyc ds1820 w C z wykorzystaniem bliotek rklib do obslugi ds. #include <avr/io.h> #include<avr/interrupt.h> #include<avr/eeprom.h> #include<string.h> #include "lcd.h" #include "ds18x20.h" #include "delay.h" uint8_t gSensorIDs[OW_ROMCODE_SIZE];...
Ogólnie rzecz biorąc działa, ale nie mogę zaimplementować zatrzymania/uruchomienia odliczania w podprogramie Zegar: oraz jak zrobić aby np po ustawieniu Ustawczas ponad 60 sekund pokazywał mi 1min i cośtam sekund i pokazywał to odpowiednio na lcd. Właśnie podczas pisania wpadłem na to że gdy Jakiczas jest > 60 then Minuty +1 - to chyba to? Ale jak...
Datashee atmega8 ...write/erase cycles: 10.000Flash/100.000 EEPROM.. czyli 5.000 cykli gwarantowane
Jeżeli kolega może podłączyć kwarc 16MHz, to po powrocie z pracy mogę załączyć sprawdzony program termometru z atmegą 32, wspomnianym kwarcem i obsługą LCD 2x16. Układ DS18b20, jak inne układy 1-wire wymagają bardzo dokładnych czasów, żeby się poprawnie skomunikować. Ja też trochę powalczyłem zanim zobaczyłem prawidłową temperaturę. Zgodnie z obietnicą:...
Jak najbardziej write_block zapisze poprawnie - kluszem jest parametr size. Jeśli pobierzesz &id_czujnika i sizeof(id_czujnika) to będzie ok.
Spróbuj tak: odczyt [syntax=c] if(eeprom_is_ready()) { eeprom_read_block(&ustawienia,&ustawieni... } [/syntax] zapis [syntax=c] cli();//Globalna blokada przerwań if(eeprom_is_ready()) { eprom_write_block(&ustawienia,&ustawieni... } sei();//odblokowanie przerwań [/syntax]
Raczej odczytywanie danych z pamięci eeprom do zmiennej w eepromie nie jest dobrym pomysłem.
Używając etykiet w .eseg nie zastanawiasz się nad fizycznymi adresami, robi to za ciebie kompilator. Tym niemniej aby operować na tych danych należy oczywiście użyć "okienka podawczo - odbiorczego" w EEDR, zgodnie z notą katalogową ( http://www.atmel.com/dyn/resources/prod_... ). Wszystko z .eseg ląduje w pliku .eep, którym możesz za...
Nie odpowiada on jednak na pytanie: Full-swing czy Ext. Crystal Osc.? Aliści (jest takie słowo!) podejrzałem składnię polecenia generowanego przy wgrywaniu bootloadera i w nim lfuse=0b11110111 czyli 0xF7 zatem - Ext. Full-swingCrystal. Ustawienia fusebits są w pliku avrdude.conf dostarczanym wraz z MiniCore. Sekcja dla 328 wygląda następująco: [syntax=ini]#---------------------------...
http://obrazki.elektroda.pl/2762225800_1... Jedyny taki przenośny programator układów AVR. Pomoże wszędzie tam, gdzie trzeba zaktualizować oprogramowanie, a układ docelowy znajduje się w trudno dostępnym miejscu i nie mamy możliwości (lub chęci) ciągać ze sobą laptopa i mnóstwa przewodów. Banalnie łatwa obsługa, niski koszt wykonania, super...
Wydaje mi się że nie opłaca się ładować tych 32 bajtów do eepromu , pewnie procedura odczytująca zajmie więcej miejsca. Ale :) można by tam coś innego władować, w eepromie masz coś około 500 bajtów wolnych. Wolne miejsce można by wykorzystać na teksty wyświetlane na LCD. Niektóre łańcuchy też się powtarzają. Często masz np . [syntax=basic4gl]Locate...
Komplikacje z utworzeniem zmiennej. (Microchp Studio, AVR128DA32) Pokrótce: Odmierzam czas . Wynik wpisuję do EEprom-u , wartość 24 bity Chcę edytować w/w wartość, wpisuję ja do zmiennej "wartosc32" i błąd : zmienna "wartosc32" umieszczana jest pod adresem 0x940C Gdy zaglądam do pamięci- nic nie jest nadpisane ( czyli "??" ) Odczytanie wartości z EEpromu...
Nie znam się na tym kodzie ... Nie wiem nawet jak to zaprogramować , ja tylko robie flash albo eeprom write. Naprawde nie rozumie .. ;(
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...
OK. Wszystko rozumiem. Nie wiedziałem o tym makro, również o innych które namierzyłem. Muszę popróbować pisząc jakiś kod. ( zainteresowanie moje wynikało z tego. że zastanawiałem się, o co chodzi z podwójnymi podkreślnikami "__"w plikach *.h.) Ale mniemam że, tyczy to bardziej kompilatora. To nie moja "liga". Daje spokój. Narazie muszę dokończyć ten...
moim zdaniem inaczej, ale mnie wiele w nawykach uP drazni i chciałbym innego kodu. [syntax=c] struct { uint8_t pos1, pos2 .... } Pozycje; ... Pozycje pozycje; ... fun(){ eeprom_write_block (&pozycje, ee_adres_1, sizeof(pozycje)); } [/syntax]
http://obrazki.elektroda.pl/4553573800_1... Przy tworzeniu projektów z mikrokontrolerami, oprócz uniwersalnych płytek stykowych, często przydają się gotowe moduły testowe, które można szybko podłączyć. Można kupić takie w wielu sklepach, ale ich ceny są na ogół absurdalne, np. w Kamami sprzedają płytkę z ATmega128 za 109 zł! Poniżej...
Tak, tylko że Ty patrzysz na wersję firmware 2.09 ja wgrywam V2.03 (płytki nie będę poprawiał do najnowszej 2H bo jak, pisałem pola są albo do poprawy , albo zmówię sobie). Natomiast dobrze mnie nakierowałeś bo dopiero w zaktualizowanej wersji w notatniku jest napisane. Firmware 2.03: -added support for HVPP chips: AT90s8515, AT90s8535, AT90s1200, AT90s4433,...
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...
program pisze w bascomie (poniewaz narazie taki język znam, dopiero uczę sie C), w wersji prostej mial to byc zwykly sterownik do urzadzenia wentylacyjnego (pomiar cisnienia i sterowanie dmuchawą itd.), jednak z biegiem czasu zostały dodawane dodatkowe funkcje, a najwiecej miejsca zajmuje "historia modyfikacji" zapisywana do eepromu, ponieważ w bascomie...
Witam, chciałbym spytać Was o poprawność zmiany rozdzielczości czujnika temperatury DS18B20 na 9-bit. Zmieniam to w nastepujący sposób: Zacznę od ostatniego pytania: To nie są bity - raczej bajty, i sa to tylko TH i TL i są wpisane tylko do Scratchpad. To by wystarczyło dopóki nie wyłączysz/reset processora. Musiałoby to pozostac częścią programu....
Dziękuję że kolega od razu nie użył RTFM :) M32 -> Atmega 32. Funkcje pochodzą z avr/eeprom.h. Kompilator winavr połączony z avrstudio 4.
Witam Napisalem sobie program do sterowania potencjometrem cyfrowym DS1802. Program dziala bardzo dobrze, ale to byl moj pierwszy program procz migania diodkami, wiec fajnie by bylo jakby ktos go przeczytal i skrytykowal za brzydkie wciecia, zle nazywanie zmiennych, uzywanie rzeczy ktorych sie powinno uzywac tylko w ostatecznosci i bardzo ostroznie...
LosRabinos Nie wiem, czy trochę poniewczasie, ale zawsze to coś. Odnośnie hardware-u: PCF8563 noga 3 (A0) do masy i wtedy (pierwszy listing): [syntax=c]// Funkcja zapisuje pojedynczy bajt danych do układu RTC na magistrali I2C void EEPROM_Write(unsigned char ucAddress, unsigned char ucData) { TWI_Start(); // Wysłanie sekwencji start //tutaj zmien na...
bytes to EEPROM address __dst from __src. Zmień na [syntax=c_loadrunner] uint8_t temp[6], data[6]; [/syntax] i powinno działać. Niepotrzebne są opóźnienia, w tych funkcjach jest już sprawdzane czy EEPROM jest gotowy.
Funkcje napisane przez mojego profesora Dużo nauki przed nim. nie chce mieszac poprostu chce mu oddac zapis i odczyt z 24C32 i tyle zrób wiec tak: [syntax=c] start(); if (status & 0xF0 != 8) return( BLAD_START ); write( adres ); if (status & 0xF0 != ?? ){ stop(); return( BLAD_ADRES ); } write( dana ); if (status & 0xF0 != ?? ){ stop(); return( BLAD_DANA...
Po pierwsze: Używasz wewnętrznej pamięci, więc pamiętaj o żywotności cyklów zapisu/odczytu. Jest zalecenie, aby czynności związane z wewnętrzną pamięcią nie wkładać do pętli. Po drugie: Zainteresuj się zewnętrznymi pamięciami na I2C. To są moje wycinki kodu do regulatora PID: To w nagłówku: $eeprom 'Informacja dla procesora o korzystaniu z pamięci EEPROM...
Odczyt nie ma wpływu na żywotność EEPROM, zaś zapis - wg datasheet Write/Erase Cycles: 10,000 Flash/100,000 EEPROM
a spróbuj, czy puści tak: EECR=(1<<EEMWE); EECR=((1<<EEMWE)|(... a tak na marginesie, czemu 2x inkrementujesz WriteAddress ??
Wielki dzięki :) że też na to nie wpadłem... tylko nie bardzo wiem o co chodzi tutaj: s(pozycja)=0. Kiedy to co napisales jest rowne zero? A moze lepiej bedzie jak po wyslaniu np. 10 znakow z tablicy wyzeruje pozycje? Mam jeszce jedno pytanko: mam pamiec 24C16. Zastanawiam sie ile takich pojedynczych znakow z tablicy moge w niej umiescic i czy kazdy...
No np mozesz zrobić cos w tym stylu: Dim T(4) as byte Dim i as byte For i = 1 to 4 writeeprom T(i), i next i W T(1) - T(4) umieścisz sobie dane (mintuty, godziny czy co tam jeszcze chcesz)
write eeprom atmega write write protect eeprom
pierwsza uruchomić lodówka wtryskiwacze peugeot klucz pralka electrolux
Hyster wózek widłowy błąd 522772-3 – lampa cofania, sterownik DO4, diagnostyka, naprawa Hyundai Tucson 1.6 benzyna 2018 – kiedy wymieniać łańcuch rozrządu, objawy zużycia, interwały