[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.
Witam, #include <stdint.h> #include <avr/eeprom.h> static EEMEM uint8_t zmienna_w_eepromie = 'a'; /* po zaprogramowaniu eepromu zmienna ma wartość 'a' */ int main(void) { eeprom_write_byte(&zmienna_w_eep... 'b'); } Pozdrawiam, Dr.Vee
Zamiast używać cyferek do określania bajtów w pamięci eeprom, zadeklaruj sobie dla nich jakieś bardziej przyjazne nazwy. A do zapisu używaj eeprom_update_byte , wtedy aplikacja zapisze dane tylko jeśli uległy one zmianie. [syntax=c]static EEMEM uint8_t e_tor, e_led, e_licznik; ... //odczyt tor = eeprom_read_byte(&e_tor); led = eeprom_read_byte(&e_led);...
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...
static EEMEM int16_t t_value[4][2]={... Powinno być raczej: int16_t t_value[4][2] EEMEM = {... value=eeprom_read_word((int16_t*... Spróbuj tak: value=(int16_t)eeprom_read_word&... uint16_t*)&t_value[flag][... Funkcja...
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. Jakiś czas temu pisałem o różnicy między AS4 oraz AS6 w sposobie zapisywania danych. Niemniej błędnie zinterpretowałem to jako różnice między zapisem Big Endian a Little Endian. Tym czasem natura tych różnic jest zupełnie inna. Okazało się, że te 2 środowiska umieszczają dane w innej kolejności. W przypadku AS4 dane zadeklarowane jako pierwsze...
Korzystam z atmegi 32. Problem polega na tym że chcę zapisywać wartości do eeprom-u. Zapis robię co przerwanie timera2 od przepełnienia. I za każdym razem jak dochodzi do zapisywania do eeprom-u to mikrokontroler się resetuje. Czytałem coś o fuse bitach coś zmieniłem, ale nie pomogło. Trzeba oddzielnie eeprom i flash programować? Zestaw ewaluacyjny...
Spróbuj inaczej zadeklarowac ten bajt w EEPROM: static EEMEM uint8_tbajt_do_eeprom;
bez optymalizacji też nie działa (-O0)? Jeśli nie, to weź spreparuj kod do minimum, tak żeby pokazywał sedno sprawy. Usuń dosłownie wszystko co tylko można, ale tak, żeby problem występował. Uprość nawet odczyt i zapis, żebyśmy mogli prześledzić co robisz. Bo jeśli z O0 nie będzie ci chodzić i fusy masz dobrze ustawione, to tylko kod może więcej wyjaśnić....
Witam Mam problem bo nie mogę nakłonić attiny2313 do zapisu a następnie odczytu wartości z eepromu. Próbuję zapisać wartość liczba_LED do eepromu a następnie ją odczytać a wyświetlacz 7-LED zobrazuje to. Co robię nie tak? Z góry dziękuję za pomoc. #define F_CPU 4000000L #include <avr/io.h> #include <util/delay.h> int main(void) {...
Jeśli chodzi o moje propozycje, to miałem zadeklarowany bezpośrednio wskaźnik ^ " można pominąć w eeprom_read_word / eeprom_write_word .
Witam, chciałbym odkopać temat, ponieważ jest on jedną z wielu części mojej pracy dyplomowej. Średnio radzę sobie ze zrozumieniem idei równania Nersta. Widziałem we wcześniejszych postach równanie postaci: E = Eo - k*T*pH, gdzie: (właśnie z tym mam problem...) 1. rozumiem, że E to nasze napięcie na wyjściu wzmacniacza elektrody, czyli to które podawane...
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];...
const uint8_t test[17]={0,8,16,24,32,40,4... static EEMEM uint8_t test_ee[17]; //funkcja void eeprom() { eeprom_write_block(test_ee, test, 17); } Jak zapisać stałą test[17], żeby kompilator nie rezerwował dla niej pamięci tylko bezpośredio zapisał do EEPROMU
dzięki Sparrowhawk za pare rad ;). Poprawiłem troche, ale dalej oba wyswietlaja to samo >..< [syntax=c] #define F_CPU 80000000L #include <avr/io.h> #include <stdlib.h> #include <util/delay.h> #include <avr/interrupt.h> #include <avr/eeprom.h> #define del 10 #define WE 4 #define PORT_1wire PIND #define SET_1wire DDRD&=~_BV(WE)...
Przy takiej deklaracji nie skompilowało się, ale wpisałem coś takiego: main.c:204: warning: pointer targets in passing argument 1 of '__eerd_word_m8' differ in signedness main.c:204: warning: pointer targets in passing argument 1 of '__eewr_word_m8' differ in signedness
Witam. Gdy na mikrokontrolerze Atmega32 chcę użyć pamięci eeprom,w sposób taki : static EEMEM uint8_t zmienna_w_eepromie = 'a'; to na etapie programowania mam taki komunikat : avrdude: ERROR: address 0x810001 out of range at line .... of efi.hex co robie źle ? Dodam, że programuję składnią : avrdude -c usbasp -p atmega32 -V -U flash:w:plik.hex...
Witam. Posiadam tylko programator USBasp przez który nie mogę odczytać tokenu karty RFID. Pomyślałem więc, że zapiszę ten token do pamięci EEPROM, a potem odczytam tą pamięć przez programator. Problem w tym, że coś mi nie wychodzi.. Kod który odczytuje token rfid przyłożonej do czytkina karty i zapisuje pod zmienną: :20000000000000000300000000000000000...
Witam, jestem początkujący w programowaniu AVR. Chce zapisać tablicę (przykładowy tekst) a potem odczytać z eeprom atmega88. void main( void ) { ... static EEMEM uint8_t eeprom_val[6]; uint8_t val1[6] = {"12345"}; print_string("\n\r. Zapis do pamięci EEPROM\n\ -> val1 "); if (eeprom_is_ready())...
Czyli można by tak:? uint16_t delta; uint16_t lambda[35]; static EEMEM uint16_t delta_ee; static EEMEM uint16_t lambda_ee[35]; uint16_t zmienna[35]; //zapis eeprom_write_word(&lambda_ee[... lambda[1]); eeprom_busy_wait(); //odczyt zmienna[1]=eeprom_read_word(...
Witam, Z powodu kończących się zasobów pamięci flash jestem zmuszony przenieść definicje wyglądu znaków wyświetlacza LCD od nokii 3310. Deklaracja tablicy oraz fragment tablicy wygląda tak: [syntax=c] static EEMEM unsigned char lcd_Font[][5] = { { 0x00, 0x00, 0x00, 0x00, 0x00 }, // sp { 0x00, 0x00, 0x2f, 0x00, 0x00 }, // ! { 0x00, 0x07, 0x00, 0x07,...
Witam. Problem lekko dziwny, napisałem sobie fragmencik, który ma za zadanie porównać tablicę z zawartością eepromu, niby wszystko ok i działa tak jak chciałem, lecz niestety nie zawsze, to znaczy w dalszej części programu tablica wyświetlona jest na LCD, jednak czasem w przypadku szybkiego załączenia i wyłączenia urządzenia wartość wskakuje na 255...
Witam, chciałbym wykorzystać pamięć EEPROM do zapisania jednej zmiennej. Ogólnie chodzi o to, że mam na płytce 5 diod LED i przycisk. Chciałbym aby po wciśnięciu zapały się kolejne diody, a po odłączeniu i ponownym podłączeniu zasilania powinny świecić się te same diody co przed odłączeniem. Stworzyłem sobie taki program ale nie działa. [syntax=c] #define...
Witam Mam pewien problem z obsługą wewnętrznej pamięci EEPROM w ATmedze8. Mianowicie, napisałem prosty program mający na celu zliczać ilość wystąpień przerwania zewnętrznego INT1. Wszystko wydaje się działać poprawnie, ilość wystąpień przerwania jest zliczana prawidłowo i zapisywana w EEPROM oraz wyświetlana na LCD, jednak czasem po włączeniu zasilania...
Zastosowalem te funkcje o ktorych mowisz, ale nie poskutkowalo. EEprom widze ze dziala, bo po resecie procka zachowane sa ziany tych chinskich znaczkow jakie mam. Ogolnie to zmiany dokonuje poprzez przyciski, a widze to na wyswietlaczu LCD. Dzialam tak ze zmian dokonuje w zmienneMenu, a po zakonczeniu edycji ma mi zapisywac do EEpromu. Jest to 15 charow...
Witam po przerwie, Napisałem kod, który generuje liczby pseudolosowe. Nie jest to może kod, najwyższych lotów, jednakże prosiłbym o pomoc w jego ulepszeniu. [syntax=c] #include <avr/io.h> #include <stdlib.h> #include <avr/interrupt.h> #include <avr/eeprom.h> #include "d_led.h" volatile uint8_t start; static uint8_t EEMEM e_start;...
Witam Mam takie pytanie: czy kompilator może przydzielić bloki w pamięci EEPROM w kolejności innej niż zadeklarowano je w programie? Jeżeli tak, to wpłynie to na adres bloku pamięci,prawda? Mam taki problem: W programie mam zadeklarowane 2 bloki pamięci EEPROM w kolejności jak poniżej: znaki. Tak jakby ponowne wgranie tego samego kodu, spowodowało że...
Witam, chcę zapisywać i odczytywać do EEPROMu dane konfiguracji. Mam taki kod: section attribute not allowed for 'cfg_touch_eeprom' Gdy dodam static przed definicję cfg_touch_eeprom: ld returned 1 exit status undefined reference to `A::cfg_touch_eeprom' Co robię źle i jak to naprawić żeby działało? Pozdrawiam
Witam Mam pytanie dlaczego zmienna która inkrementuje się tutaj: [syntax=c] if(klawisz_wcisniety(ZAWODNIK_M)) { lcd_cls(); zawodnik_przejazdy_read(); zawodnik_przejazdy[zawodnik.numer].okraz... = 0; zawodnik_przejazdy_update(); zawodnik.numer++; zawodnik_przejazdy[zawodnik.numer].okraz... zawodnik_przejazdy_update(); } [/syntax] Inkrementuje się...
Przerabiam kod programu dla ATMEGA 88 w którym sa definiowane własne znaki. Tak wygląda kod #ifdef TEXT_USE_SPECIAL_CHARS static const uint8_t specialChars[CHAR_SPECIAL_ARRAY_LENG... EEMEM = { // 6x8 special characters ___XX___, // \144 __XXXX__, _XXXXXX_, ___XX___, ___XX___, ___XX___, ___XX___, ________, ___XX___, // \145 ___XX___, ___XX___,...
WITAM Mama problem z zapisem i odczytem struktury danych do eeprom. [syntax=cpp] typedef struct sekcja { uint8_t onoff; uint8_t niski; char nazwa[21]; uint16_t rzrasz; uint8_t rgleby; uint8_t rroslinn; int8_t procent; uint8_t nachyl; uint16_t time; uint8_t przerwa; uint16_t dniakt; uint16_t dstart; } sekcja; unsigned char sek=0; sekcja sekcjabuf; sekcja...
Pomozcie prosze z tym kodem: w programie plasma po wcisnieciu (RC5RxCommand == Fn1BtnCommand) zmieniaja mi sie kolory, jest fajnie, ale problem jest w tym, ze nie moge wyjsc z tej petli. inne przyciski nie dzialaja. podpowiedzcie prosze jak to zrobic? O ile sam nie rozwiązał Pan problemu to ja zrobiłem następująco: edit: nowsza wersja, dodałem regulacje...
- sekcja .data jest umieszczana w pamięci RAM (kopiowana z pamięci flash w rozbiegówce) Czy to znaczy, że zmienne statyczne czyli zadeklarowane ze słowem static i zmienne globalne znajdują się w pamięci FLASH i są później kopiowane do RAM? Jak tworzysz zmienną EEMEM to jest ona umieszczana pod rzeczywistym adresem pamięci EEPROM (w AVR wszystkie rodzaje...
Pomoozcie prosze z tym kodem: #include "defines.h" #include <ctype.h> #include <stdbool.h> #include <stdint.h> #include <stdio.h> #include <avr/eeprom.h> #include <avr/interrupt.h> #include <avr/io.h> #include <avr/pgmspace.h> #include <avr/wdt.h> #include <util/delay.h> #include...
Witam, mam jakiś błąd w sofcie, który powoduje, że po odłączeniu i włączeniu zasilania program nie działa prawidłowo. Zresetowanie atmegi bez odłączenia zasilania powoduje że wszystko chodzi już dobrze. Próbowałem różne ustawienia fuse'ów, kwarc 12MHz, CKOPT włączony, ustawiony najdłuższy możliwy czas opóźnienia włączenia. Testowałem na wewnętrznym...
http://obrazki.elektroda.pl/7011174400_1... Cześć ! Dziś chciałbym zaprezentować swój najnowszy projekt, którym jest świąteczna choinka LED. Jako, że według świątecznego zwyczaju swoich bliskich obdarowujemy prezentami ów ozdoba została wykonana dla moje dziewczyny, która bardzo lubi klimat świąt i wszystkie ozdoby z nimi związane....
Tadzik jak bym wiedział gdzie to sprawdzić... Ogólnie wyświetlacz na początku wyświetla napis na dolnej części a potem już nie. Jest to napisane w main.c prawie na samym końcu, #include <avr/io.h> #include <avr/interrupt.h> #include <avr/pgmspace.h> #include <avr/wdt.h> #include <avr/eeprom.h> #include <util/delay.h>...
Witam. Nie mam już pomysłu na rozwiązanie mojego problemu. Program działa, ale przy przesuwaniu tekstu w tablicy do prawej AVR GCC generuje dużo mniejszy kod (1002 bajty) niż jeśli zakomentuję tę część pętli głównej programu (1366 bajtów). Kompilacja przechodzi bez warningów w obu wypadkach. Dodatkowo po zaprogramowaniu układu program nie wraca do głównej...
zamiast TIMSK1 użyj TIMSK gdzie znajdziesz ICIE1 PSRSYNC w M32 nazywa się chyba PSR10 i jest w SFIOR a nie w GTCCR jak w M168 Tak, to dało rozwiązanie, że kod mi się kompiluje. Problem w tym, że na wejście dostaje sygnał 50 Hz (ramka trwa 20ms) a sygnały wysoki w przedziale 0-2 ms. Obojętnie jakie dam wypełnienie (0-2ms) to ciągle na z tego kodu otrzymuje...
Ok generalnie to sobie poradziłem już dawno temu i na płytce prototypowej złożyłem wszystko według schematu i wszystko cacy działało. Schemat według którego wszystko zaprojektowałem: http://obrazki.elektroda.pl/6151159400_1... Potem zaprojektowałem płytkę w Eagle, wytrawiłem, polutowałem i tu już to nie działa jak trzeba. Płytka: http://obrazki.elektroda.pl/1048994200_1...
Oto i źródło, może Wy zauważycie coś dziwnego... [syntax=c] // PINY WEJŚCIOWE #define ZIELONA PIND5 #define CZERWONA PIND6 #define DEBUG_PORT PORTD #define DEBUG_DDR DDRD #define ZOLTA PIND3 #define KL_PORT PORTC #define KL_PIN PINC #define KL_DDR DDRC #define LEWO PINC0 #define DOL PINC1 #define PRAWO PINC2 #define GORA PINC3 #define LEWY PINC4 #define...
Witam! Pomimo iż kod ładnie się kompiluje po "wrzuceniu" wsadu do ATmegi 8 na wyświetlaczu nadal jest tylko wiersz czarnych prostokątów. Proszę o pomoc w znalezieniu błędu. lcd44780.h [syntax=c]#ifndef LCD_H_ #define LCD_H_ #define LCD_ROWS 2 #define LCD_COLS 16 #define USE_RW 1 #define LCD_D7PORT C #define LCD_D7 6 #define LCD_D6PORT C #define LCD_D6...
Program jest dosyć duży, ale ok, wrzucę cały main.c Using built-in specs. COLLECT_GCC=avr-gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/avr/4.8... Target: avr Configured with: /build/avr-gcc/src/gcc-4.8.2/configure --disable-cloog-version-check --disable-install-libiberty --disable-libssp --disable-libstdcxx-pch --disable-libunwind-exceptions...
Zwarcie Vcc do GND pomogło, ale dopiero takie dłuższe zwarcie ( 5 sek). Wyświetlacz ocnkął się, wyświetla dane, ale !!! ciekawostka, zegar stoi. Załaczam kod, taki wprost z Eclipsa, bez bibliotek. Jestem w trakcie przeróbki z innego projektu, proszę o wyrozumiałość. /* * main.c * * Created on: 2010-09-25 * * * PD7 - 1WIRE * PA0..PA7 - LD0..LD7 -...
Mam problem z obsługa pamięci EEPROM. Używam standardowych funkcji do odczytu i update'u pamięci eeprom i po zapisaniu liczby (zarówno uint8 jak uint16) odczyt zwraca mi ją pomniejszoną o 1. Pewnie to jakis drobiazg ale nie mogę się dopatrzeć. Czy powodem może być tak definiowany adres pamięci? eeprom.h [syntax=c] #define DOOR_CODE_EE_ADDR 16 uint16_t...
Witam! Od dwóch dni szukam rozwiązania w jaki sposób umieścić tablicę dla rejestru przesuwnego 74HC595. Napisałem taki oto bananalny program [syntax=c]#include <avr/io.h> #include <util/delay.h> #define DS0 PORTD&=~(1<<PD0) //MAKRA DO OBSŁUGI REJESTRU #define DS1 PORTD|=(1<<PD0) #define ST0 PORTD&=~(1<<PD1) #define...
odczyt eemem eeprom eemem static proszek
wincc różnice naprawa kosiarki kontrolka swiec mercedes sprinter
liebherr zamrażalnik drukarka laserowa poziome paski
Czy telewizory LED są niezdrowe dla oczu i mózgu? Zbyt cichy alarm w kuchence Gorenje - przyczyny i rozwiązania