wychodzi na to, że Atmega 16 z jakiegoś powodu przekręca nadawany adres Jak się nie czyta dokumentacji tylko przegląda po łebkach - to tak to jest. Jak wysyłasz adres to bit 0 w TWDR jest bitem kierunku a bity 1-7 to adres. Twój adres EEPROM jest już 8 bitowy :) bo tak to producent w DSie zrobił (uwzględnił to że bit 0 jest kierunkiem) https://obrazki.elektroda.pl/1310316600_...
Jeśli chodzi o soft, to powstał szkielet programu. Na razie odmierza to czas, i powinno obsługiwać pilot RC5. W polach „A:” – powinien wyświetlić się adres pilota, „C:” – numer przycisku z pilota. W symulacji programowej poszło, ale na razie nie mogę przeprowadzić prób z braku modelu. Ale żeby stworzyć wersje BETA...
http://obrazki.elektroda.pl/9589280700_1... HPS 2014 Hybrydowy laboratoryjny zasilacz sieciowy. Parametry użytkowe zasilacza w skrócie: 1. Wykorzystanie tanich i łatwo dostępnych elementów. 2. Wydajność prądowa min 3A (dla niskich napięć może dochodzić do 5A). 3. Rozdzielczość DAC 12bit. (filtrowany PWM 4.9kHz) 4. Rozdzielczość ADC...
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...
Problem dotyczy wszystkich języków programowania i wszystkich mikrokontrolerów. Chodzi o uszkadzanie się zawartości pamięci eeprom kiedy program idzie w krzaki. Zauwzyłem, żę kiedy traktuję atmegę zakłoceniami emc potrafi o ona zacząć wykonywać inny fragment kodu (bascom), jakby skoczyła pod jakiś przypadkowy adres. objawia sie to czasem podwójnym pisaniem...
AVR nie posiadają rozkazu, którym by mozna bezpośrednio odczytać wewnętrzny EEPROM. Służą do tego macra (sekwencje rozkazowe). Zostaje chyba tylko pośrednio przypisać zmiennej konkretny adres w EEPROM-ie i względem niego adresować pozostałą część umownej tablicy.
No w Bascomie to pomarzyć można, ale jakbyś chciał przejść na C to chętnie ci pomogę i jakieś fragmenty mogę ci przeportować, np. menu, programowanie, itd. Co do USB to prosto to zrobić np. na ATMega z serii U2, które posiadają sprzętowego device USB, do tego są gotowce typu mass storage. Albo z tego zrezygnować i wrzucić poczciwego FTDI. Koszty niewielkie,...
Zwiększ adres po zapisie do eeprom, to będziesz miał więcej danych do analizy. Dobry pomysł, spróbuję. Dałem autorowi propozycję rozwiązania. Kod, który wkleiłem działa z niewielkimi modyfikacjami (inne dekodowanie bajtów odebranych z szyny szeregowej) na emulatorze arduino z podłączonym do DHT22 Ale tu jest Atmega8 C++ i czujnik DHT11 Zapisujesz dane...
zapisuję ja po sieci na eeprom 24c i co dalej To zależy. Generalnie zazwyczaj uC jest tak skonfigurowany, że po uruchomieniu najpierw uruchamia się bootloader, a jeśli stwierdzi, że nie ma nic do roboty to uruchamia się główny program. W Twoim przypadku bootloader musi sprawdzić zawartość eeprom i jeśli wykryje, że znajduje się tam inny wsad niż jest...
masz konflikt adresow PCF tez ma adres 1010000 taki sam jak masz dla 24c1024
Witam, dzisiaj miałem czas na zgranie kodu i wyrzucenie z niego tego co nie dotyczy tematu: Dodano po 7 Przepraszam za dziwne znaki w komentarzach ale przerzucałem z Windowsa na Linuxa i nie konwertowałem kodowania. Będę wdzięczny za pomoc. Sławek
Każdy układ mogący pracować na szynie I2C jest wyposażony przez producenta w adres. Podany zwykle w nocie katalogowej - możliwy do modyfikacji przy pomocy wyprowadzonych PINów młodszej części adresu. Adres można też odczytać w prosty sposób opisany w Elektronice dla Wszystkich dlatego nie będę tu przytaczał - lektura godna polecenia. ;)
To może powiedz co jest niejasne. Tak w skrócie to: - settings_read - odczytuje dane z eeprom do naszej struktury - settings_get - pobiera adres struktury z ustawieniami. Można oczywiście zrobić extern tej struktury. I w innych modułach aplikacji odwoływać się do ustawień przez: settings_update - zapisuje eeprom jeżeli jest taka potrzeba (czyli jeżeli...
Witam! Mam problem z zaprogramowaniem kości 24c32. Jest ona podłączona do atmegi8 do lini sda i scl. Pozostałe linie eepromu są: a0, a1, a2, wp, vss do masy i vcc do plusa. Atmega odczytuje tylko 255 więc komunikacja chyba jest ale oczywiście pamięć pusta, a gdy próbuje coś wpisać to to samo.. Przykładowy program: 'początek i2cstart i2cwbyte 160 'adres...
Ram musiałbym rezerwować, żeby zabezpieczyć się przed konfliktem adresu. Po drugie potrzebuję zapisać 3360 komórek czyli moja zmienna inkrementuje się od 0 do 3359, dziele ja przez 8 i mam adres bajtu pamieci, a reszta z dzielenia to wskaźnik bitu do zapisu. Po trzecie pisałem już, na szybkości mi nie zależy.
Witajcie, Zaczynam dopiero programować AVR-y w C i pozwólcie że zadam takie banalne pytanie: Jak zapisywać poszczególne bajty w pamięci. Nie chodzi mi tu o zapis z poziomu programu, tylko wklepanie pliku .hex do pamięci przy pomocy Pony Prog-a. Np coś takiego: Adres: dane: 00 0xA4 01 0x45 02 0x02 03 0xA4 ... i tak dalej do pewnego adresu. W...
I2c obsługuje tylko programowo bo sprzętowo nie umie. Adres oczywiście 136. Najgorsze że pod 89 chodzi bez problemu. Co zrobic zeby pozmieniac jakos timingi aby transmisja byla w porzadku. EEPROM zczytuje i zapisuje bez problemu. Teraz zamiast EEPROM wpiąłem TDA i nie działa. WIec pewnie cos z czasami bedzie. Jakie pomysły?
wlasnie chodzi o to ze w atmega to dziala bez problemu ale 89s8253 nie jest AVR ale juz dalem rade okazalo sie ze jednak musi byc podany adres gdzie ma to zapisac ale dzieki wszystkim za pomoc.
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...
Dobrze kombinowałeś w programie wyżej, ale... błędy, błędy... i dlatego nie działało prawidłowo. Zobacz sam co to za kwiatki ;) [syntax=basic4gl] Readeeprom Dsid1(1) , 1 Readeeprom Dsid2(1) , 3 Readeeprom Dsid3(1) , 5 Readeeprom Dsid4(1) , 7 [/syntax] czytasz do Dsid1(1) jeden bajt z eepromu o adresie 1, później Dsid2(1) też jeden bajt z adresu 3 itd,...
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....
Jeśli chodzi o odczyt ID DS18B20, zrobiłem coś takiego: [syntax=basic4gl] Do Locate 1 , 13 Lcd T_solar1 Locate 2 , 13 Lcd T_solar2 If Flaga_wybor = 0 Then If Flaga_ds = 1 Then If Numer_ds = 1 Then Adres = 40 T_solar1 = Ss Gosub Odczyt_eeprom Elseif Numer_ds = 2 Then Adres = 48 T_solar2 = Ss Gosub Odczyt_eeprom End If Flaga_ds = 0 Flaga_wybor = 1 End...
ogólnie tablica była zrobiona prawidłowo,wiec mając znaków max.17 tab była rozmiarów 20.Ale po sugesti zmieniłem rozmiar ale nic to nie dało niestety. opoznienie(50); Skok_LCD(17,0); wyswietlanie_eeprom(0x122,13); //wyswietl(5); Skok_LCD(17,1); [color=red]wyswietlanie_eeprom... [/color]...
adres należy rzutować na wskaźnik. ostatnio był podobny temat Co masz na myśli? C znam średnio :cry:
Witam Mam problem z SPI w Atmedze32. Staram się skomunikować ją z pamięcią 25LC128. SPI inicjalizuję następujaco void InicjalizacjaSPI(void) { // Wyjścia SS, SCK, oraz MOSI są wyjściami DDRB = _BV(SPI_SS) | _BV(SPI_MOSI) | _BV(SPI_SCK); // Ustawiamy SS oraz SCK w stan wysoki PORTB = _BV(SPI_SS) | _BV(SPI_SCK);...
witam, Na tą chwile menu wydaje się już być opanowane :) Zmieniłem tytuł tematu gdyż obecne moje pytanie nie dotyczy menu.... wycinek z kodu: Dim Write1 As Eram Byte Dim Read1 As Byte ... Write1 = 44 Writeeeprom Write1 , &H0A Readeeeprom Read1 , &H0A Lcd Read1 Zapisuje sobie wartość 44dec do int eeproma pod adres H0A i tu jest dobrze, gdyż w eepromie...
Witam ponownie Poprawiłem to zapisywanie do expanderów, troszkę lektury HELP-a i doszedłem do: deklaracja: Declare Sub Pcf_zap(byval Kosc As Byte , Byval Ex As Byte) a tu podprogram: 'podprogram obslugi ukladow PCF8574 Sub Pcf_zap(byval Kosc As Byte , Byval Ex As Byte) I2cstart I2cwbyte Kosc I2cwbyte Ex I2cstop Return End Sub i jego...
Witam Postawiłem sobie za cel możliwość zapisania wartości pwm w zewnętrznej pamięci eeprom, w tym przypadku AT24C02 Procesor to Atmega 8, wewnętrzne taktowanie zegara 1MHz W załączeniu wkleiłem uproszczony program zapisu i odczytu wartości pwm. Za pomocą pwm steruję jasnością podświetlenia wyświetlacza LCD. Wiem, że można zapisywać te ustawienia w...
Witam . Napisałem ( prawie) sobie na ww procesor program w asm i bascomie który ma robić za zamek otwierany kartą . W bascomie wszystko działa w 100 % według założenia jednak w asm mam taki problem że układ sam zmienia swoje taktowanie (ponad 2x) przez co wszystkie funkcje czasowe nie pracują jak powinny . Nie było by w tym nic niezwykłego ( ustawiony...
Witam forumowiczów, zacząłem realizować projekt zegarka, kalendarza i termometrów z owego linku: http://obrazki.elektroda.pl/6128170300_1... Proszę o porady i sugestie jak można rozwiązać ten problem :P
komentarze ;) .EQU DATA = 5 ; zdefiniowanie pinu w uC na którym będzie sygnał DATA .EQU CLOCK = 6 ; -------------- || ---------------------------------- CLOCK .EQU CHIP_ENABLE = 7 ; ------------------|| ------------ CHIP_ENABLE ;parametry wejściowe ; ; 3 bajty danych do wysłania umieszczone w SRAM ; pod adresem dane: send: ldi XL, Low(dane) ; ładujemy...
Do czego to doszło ;p Może od nowa, wersja z i2c chce dopiero teraz wprowadzić jak na razie jest po Bożemu znaczy sie wyswietlacz ze sterownikiem znajduje się na 2pietru kamienicy układ wykonawczy i wyłącznik (countera) znajduje się w piwnicy. Z i2c to dopiero mam zamiar zrobić bo zależy mi na dwóch wyswietlaczach jednym w piwnicy drugim na 2pietrze....
Witam, Tak więc mam hardware jak w temacie, i na dodatek podłączony eeprom at24c08 razem z rtc ds1388 na twi. Atmega ma kryształ 18.432MHz, rezystory na linii SDA i SCL to 10k każdy. Na dodatek, jest jeszcze procek stp16cp05, czyli kontroler LED z seryjnym podaniem danych (główna część pętli while()) i LEDy podłączone pod PORTD.7 i 4. Oto część kodu:...
Witam , mam nadzieję iż nie zanudziłem bez reszty.. W zestawieniu z moimi "dokonaniami asm." kolega michalko12, jest najbliższy temu co ja kiedyś robiłem . Oto wersja asm z przełącznikiem kompilacji aby kompilować jako samodzielny plik - kto chce ->ten może :D ( ta wersja to 16-timerów, 16-nasto bitowych, każdy cztery tryby konfiguracji, oczywiście...
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...
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(...
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...
Wpadłeś w pułapkę liczb ze znakiem, domyślnych konwersji i Undefined Behaviour (UB) za jednym zamachem. [syntax=c]wartosc32 = (FLASH_0_read_eeprom_byte(addrEE)<<... | (FLASH_0_read_eeprom_byte(addrEE+1))<... | (FLASH_0_read_eeprom_byte(addrEE+2))<... ; [/syntax] kiedy wykonujesz taką operację to FLASH_0_read_eeprom_byte(.adres) jest...
Tak, może się tak zdarzyć, przy niestabilnym zasilaniu. Dlatego zawsze włączaj BOD oraz zmieniaj zawartość rejestrów EEADR na adres nieużywanej komórki EEPROM.
Siemano. Jeżeli chcesz umieścić np. tablicę jednowymiarową w sekcji EEPROM to możesz wykonać to w taki sposób const unsigned char Tablica[] EEMEM = { 0x3e,0x51,0x49,0x45,0x3e, 0x00,0x42,0x7f,0x40,0x00, 0x42,0x61,0x51,0x49,0x46, 0x21,0x41,0x45,0x4b,0x31 }; Niestety przy takiej deklaracji pierwszy element tablicy nie będzie znajdować...
Co do wysyłana szesnastkowych wartości przez RS'a. Możesz użyć funkcji sprintf(); Wyglądało by to następująco: sprintf ( Bufor, "%X:%X:%X:%X:%X:%X", MAC[0], MAC[1] .......); Bufor powinien mieć wielkość 6*3 bajtów. Zostanie w nim zapisana np. tak postać: "0C:2A:......" Aby wykorzystać tą procedurę musisz dołączyć stdio.h. Tu pojawiają się pewne schody....
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...
Dane do zapisania do pamięci FLASH wydobywa się ze skompilowanego pliku ELF, przy pomocy avr-objcopy , zarówno dla pliku HEX i binarnego. Makefile wygenerowany przez MS7 zwiera taki wpis: ihex na binary : [syntax=text]"...\avr-objcopy.exe" -O binary -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "test1.elf" "test1.bin" [/syntax] Ale...
Na jednej szynie to działać nie będzie. Chyba że dasz dodatkowe bramkowanie na linii SCL, tak żeby zrobić coś na kształt Chip select. Prościej jednak będzie poszukać EEPROM-u innego producenta, który będzie miał inny adres.
No coś takiego. A przy odczycie Tt1 = T_min + 200 i sprawa załatwiona.
Co do drugiej uwagi wspomniana konstrukcja w funkcji eeprom_write() jest takowa, z mysla o tym, zebym mogl jej uzywac do zapisywania ciagow. Dzieki temu moge napisac eeprom_write(EEPROM1, adres, "tekst do wpisania < 32 liter"); Obawiam się, że to będzie działać prawidłowo tylko wtedy, gdy adres będzie podzielny przez 32. Poza tym,...
A swoja drogą to jakżeś to wyczytał? W dokumentacji jest napisane ze taka pamiec wymaga dwóch słów adresujących (MSB i LSB) i2cstart i2cwbyte adres 'adres fizyczny I2C pamieci i2cwbyte adres_msb 'starsza część adresu i2cwbyte adres_lsb 'młodsza cześc adresu i2cwbyte dane i2cstop I odczyt też tak samo: i2cstart i2cwbyte adres 'adres sprzętowy I2C pamieci...
poszukuje gotowych modulow na procku atmega, czyli procek wyswietlacz lcd klawiatura RTC EEPROM zasilacz itp.. gdzie mozna cos takiego dostac, prosze o wskazowki adresy firm itp dzieki
czy na dole programu arduino masz taką informację ? https://obrazki.elektroda.pl/6368333500_... nucleo-costam on COM z numerkiem. zrzuty ekranu w Windows robi się kombinacją klawiszy WIN + Shitt + S wówczas możesz dodać obrazek poprzez https://obrazki.elektroda.pl/3902446900_... Ctr+V Dodano po 2 ps. tak sie zapisuje...
probuje teraz napisac prosty program, ktory najpierw przesyla bajt do tej zewnetrzej pamieci EEPROM at24C04 a potem chce odczytac ten bajt i wyswietlic na na 7seg - jest to litera H. Nie wyswietla nic, co tu moze byc nie tak? adres hardwarowy zapisu/odczyty kosci pamieci jest raczej ok, bo 1010-A2A1A0-0/1 gdzie A2=VCC A1=VCC A0=GND czyli to powinno...
eeprom adres adres eeprom atmega adres
volvo silnika sagem dekoder cyfry piorun kołem
termostat bojlera motorola radius
Suzuki Ignis nie odpala – pstryka przekaźnik, migają kontrolki, akumulator, rozrusznik, masa Class 250 IEC 60085 – izolacja termiczna 250°C, materiały polimidowe, zastosowania lotnicze