Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 7 lut 2025, o 13:51


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 20 ] 
Autor Wiadomość
PostNapisane: 15 sie 2014, o 15:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2013
Posty: 93
Lokalizacja: Piotrków Trybunalski
Pomógł: 1

Witam serdecznie! ;)
Bawię się z HD44780. Chcę wyświetlić napisy z pamięci RAM, FLASH i EEPROM. Z RAM i FLASH wszystko ładnie. I tu pojawia się moje zapytanie. Zadeklarowałem napis:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Kiedy wrzucam ten napis do wyświetlenia na ekranie (specjalna funkcja do EEPROM), to wtedy nic się nie pojawia. I tu jest moje zapytanie. Czy jeżeli zadeklarowałem tablicę jak powyżej, to czy muszę napisać funkcję, która bajt po bajcie wpiszę napis do pamięci EEPROM i dopiero mogę go z niej odczytać, czy już sama deklaracja powinna wystarczyć?
Dziękuję za odpowiedzi :)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sie 2014, o 16:33 
Offline
Użytkownik

Dołączył(a): 20 wrz 2013
Posty: 647
Zbananowany użytkownik

Pomógł: 101

Wystarczy deklaracja ale...to może od początku. Efektem deklaracji podobnej do powyższej jest pliczek hex z obrazem, który musi być załadowany do EEPROM (całkiem jak PROGMEM). Zdaje się, że domyślnie Eclipse ma wyłączone ładowanie EEPROMów i pewnie dlatego nic Ci się nie wyświetla. Trzeba przestawić odpowiednią opcję: Project/properties/avr/avrdude na odpowiedniej zakładce, opcja load hex from build czy jakoś tak.


Autor postu otrzymał pochwałę

_________________
+++++[>++++<-]>[>++++++<-]>.---------.+++.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sie 2014, o 20:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2013
Posty: 93
Lokalizacja: Piotrków Trybunalski
Pomógł: 1

Ok, niebawem to sprawdzę ;) a mam drugie pytanie. Piszę bibliotekę na podstawie książki i kiedy załaduje znak do pamięci, to muszę skorzystać z LCD_CLS, żeby wyświetlić znak. To prawidłowe zachowanie?

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sie 2014, o 22:53 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2013
Posty: 93
Lokalizacja: Piotrków Trybunalski
Pomógł: 1

Kolego xor, działa ten zabieg dokładnie opiszę dla potomnych:
:arrow: Odpalamy Eclipse
:arrow: Project
:arrow: Properties
:arrow: AVR
:arrow: AVRdude
:arrow: Wchodzimy w zakładkę Flash/EEPROM
:arrow: W miejscu Upload EEPROM Image zaznaczamy opcję from build
:arrow: Apply i OK
No i chodzi :) Dziękuję jeszcze raz ;)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 maja 2015, o 22:37 
Offline
Użytkownik

Dołączył(a): 25 gru 2012
Posty: 128
Pomógł: 0

Witam specjalistów od EEPROM
Otóż mam pewien problem z tą pamięciom.
Mianowicie mam sobie program z trzema czujnikami DS. Na początku startu programu (z wciśniętym przyciskiem) sczytuję sobie ID każdego z Dsa osobno i umieszczam w tablicy (robię to 3 razy zmienieniając numer_DSa)
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

uzywając do tego funkcji:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Następnie kopiuję tablicę
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

do tablicy umieszczonej w EEPROmie, żeby ID były dostępne np po zaniku napięcia.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

używając funkcji:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

24 bo kopiuję ROMy z 3 czujników na raz.
Pamięć EEPROM używam dlatego aby po zaniku napięcia nie było konieczne ponowne programowanie czujników, tylko po sratcie programu używając funkcji:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Kopiuję wcześniej sczytane DS_ID do pamięci programu.

Problem polega na tym, że jak testuję układ to nie zawsze po uruchomieniu pamięć EEPROM kopiuje się poprawnie.
Co gorsza jak jeden ID źle się skopiuje (czujnik pokazuje cały czas temp. = 0C), to nawet jak rozłączę i ponownie włączę układ to nadal ten sam czujnik pokazuje temp = 0C. Muszę od nowa programować czujniki :-(
Statystyka jest taka, że na 10 prób (wyłączenie włączenie urządzenia) problem występuje 3-5 razy.
Układ pracuej na Atmega4313 8MHz. Układ zasilany z programatora (ale na zasilaczu podobne zachowanie), na płytce 2 kondensatory filtrujące.
Gdzie może leżeć przyczyna takiego przypadkowego zachowania ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 maja 2015, o 22:52 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Wypadałoby dokładnie poznać co się dzieje. Jak odczytasz już numery tych czujników wyświetlaj je na LCD i sprawdź, można to też zrobić automatycznie w kodzie i tylko wyświetlać w stan. Do tego testu usuń zapis do EEPROM z kodu.. Przy pracy z EEPROM Atmel zaleca włączenie BOD (odpowiedni fusebit) możesz też ustawić czas rozbiegu oscylatora na maksymalne czasy.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 maja 2015, o 23:07 
Offline
Użytkownik

Dołączył(a): 25 gru 2012
Posty: 128
Pomógł: 0

Układ zawsze w momencie programowania sczytuje poprawnie ID do pamięci bieżącej procesora (od razu też następuje kopiowanie do EEPROM). Ponieważ po sczytaniu ID wszystkich DSow (bez restartu układu) podłączam (na działającym układzie) wszystkie czujniki do jednego portu i układ działa zawsze poprawnie (wysztkie czujniki pokazują prawidłową temp). Dopiero gdy wył/wł układ to czasami następuje złe skopiowanie z EEPROM do pamięci bieżącej (któryś czujnik pokazuje temp = 0) . Można powiedzieć, że problem występuje przy 3-4 wył/wł układu. Nigdy nie zdarzyło się np. po pierwszym wył/wł układu. Więc skoro zawsze działa po pierwszym wył/wł układu to dlaczego nie działa przy 3-4 próbie wył/wł.
Spróbuję z tym BOD.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sie 2016, o 16:44 
Offline
Użytkownik

Dołączył(a): 12 lis 2014
Posty: 108
Pomógł: 0

Witam serdecznie.

Ponieważ post dotyczy EEPROM, chciałem przy okazji zapytać biegłe w tym temacie osoby o jedną rzecz. Dopiero zaczynam zabawę, a więc proszę o
wyrozumiałość.
Jeśli zapisuję z pamięci RAM do EEPROM, np. w ten sposób:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


To czy muszę dać jakiś czas do prawidłowego zapisu ?, np.

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


czy nie jest to konieczne i procesor zrobi to prawidłowo. Załóżmy, że kopia dotyczy całego bloku danych.
A jeżeli delay jest konieczny, to jak określić jego wartość.
Proszę o wyjaśnienie. W takiej wersji, w pętli spowalnia całość programu i nie wiem, czy dobrze robię.
Z góry dziękuję za wytłumaczenie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sie 2016, o 20:04 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27354
Lokalizacja: Szczecin
Pomógł: 1042

A skąd ty wynalazłeś pomysł o jakimś spowalnianiu ? Że niby po co to ?

Inna sprawa że ciągłe odczytywanie w pętli z eeprom do ram kompletnie nie ma sensu ale jak mówię to już całkiem inna kwestia.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sie 2016, o 20:55 
Offline
Użytkownik

Dołączył(a): 12 lis 2014
Posty: 108
Pomógł: 0

Dziękuje Mirku.
Jak pisałem, na wszystkie pytania nie ma odpowiedzi, a czasami coś tam po głowie chodzi. Napisałem mały program do nauki o lcd i zapisywaniu do i z epromu,
a żeby poćwiczyć.
U mnie odczyt z eprom do ram wykonuje się tylko przy starcie programu i potem dane są tylko wyświetlane. W pętli głównej jest sprawdzany przycisk, który
po wciśnięciu powoduje zapis z ram do eprom, jeśli zmieniła się zawartość wyświetlacza. No i przy starcie programu ponownie wczytywane dane do ram.
To mam opanowane w miarę dobrze (dzięki Twoim poradnikom oczywiście).
Ale, jak każdy, kto dopiero zaczyna mam pytania......Nieraz w postach czytam:

"na początku programu umieściłem dylaya, a żeby porty spokojnie się zainicjowały i coś tam uruchomiło bez błędów itp...."

Pomyślałem wtedy, że kiedy następuje zapis, a dzieje się to bardzo szybko, to może i w tym przypadku "pomogę" sobie i programowi w tym kroku i wstawię
"opóźniacza", a żeby wszystkie dane prawidłowo się zapisały.
Z drugiej strony nie byłem pewny, czy dobrze robię, dlatego zapytałem.
Reasumując Mirku nigdzie w takich sytuacjach NIE UŻYWAMY DELAY ?. Nie ma takiej potrzeby ?.

Pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sie 2016, o 21:25 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27354
Lokalizacja: Szczecin
Pomógł: 1042

Ale funkcja read_ albo write_ block uwzględnia wszystkie konieczne opóźnienia

To że ja pisałem gdzieś tam żeby porty zdążyły się zainicjować to nie "tak sobie" na wszelki i każdy wypadek ale być może pisałem to w jakimś KONKRETNYM i szczególnym przypadku i miało to związek z czasem np narastania stanu wysokiego na wejściu podciąganym wbudowanym rezystorem - czyli miało to ścisły związek z jakimś tam zjawiskiem elektronicznym ... a nie jak mówię ot tak na jakiś tam bliżej nie określony wszelki wypadek

podsumowując do zapisu/odczytu poleceniem blokowym z AVR GCC nie musisz żadnego tam opóźniacza stosować bo nie ma to najmniejszego sensu ;) ok ?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sie 2016, o 21:46 
Offline
Użytkownik

Dołączył(a): 12 lis 2014
Posty: 108
Pomógł: 0

O to mi chodziło.
Dzięki Mirku. Teraz jestem spokojniejszy :D .
Ja nie podawałem przykładu, cytatu w kontekście Twojej konkretnej wypowiedzi, tylko że gdzieś kiedyś czytałem i zapamiętałem.
A przy okazji zabawy z eepromem przypomniało mi się.
Jeszcze raz dzięki. Pozdrawiam.

Ps.

Nie mogę się odwdzięczyć punktem, bo to nie mój temat, a dla jednego pytanka nie chciałem zakładać tematu.
Ale jeszcze przyjdzie pora.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 sie 2016, o 02:25 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27354
Lokalizacja: Szczecin
Pomógł: 1042

Robson napisał(a):
a dla jednego pytanka nie chciałem zakładać tematu.

Posłuchaj tu nie chodzi już o punkty dla mnie ... ale na przyszłość bardzo proszę zakładaj właśnie oddzielny wątek - bo po to jest forum. Po to jest właśnie forum. A tymczasem często początkujące osoby na forach doklejają się do innych wątków myśląc że tak będzie lepiej a jest niestety tylko gorzej. Bo pomyśl ;) gdyby to miało być lepiej to w zasadzie po co te wszystkie wątki na forum? Mógłby być tylko JEDEN i wszyscy by się doklejali na końcu :lol: i pomyśl - fajnie by się korzystało z takiego forum?

Dokładnie tak to jest z doklejaniem się na końcu, a później gdy ktoś szuka jakiegoś tematu, który ty np poruszyłeś to kaplica, szukajka forumowa szuka np po tytułach wątków i ? ... kiszka - rozumiesz?

Gdy się zakłada dla nowego pytania nowy wątek i dobrze się formułuje tytuł wątku to później więcej ludzi z tego skorzysta ok?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 sie 2016, o 06:10 
Offline
Użytkownik

Dołączył(a): 12 lis 2014
Posty: 108
Pomógł: 0

Zrozumiałem.
Więcej tego błędu nie popełnię.Jeszcze raz dzięki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 sie 2016, o 08:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Pozwolę sobie przy okazji na mały OT, :roll:
Fajna zabawa z tymi pigułami forumicznymi. :)
Robson napisał(a):
Nie mogę się odwdzięczyć punktem, bo to nie mój temat,

Możesz się ratować zaznaczając w poprzednim Twoim wątku http://forum.atnel.pl/post165026.html#p165026,
tym bardziej że w nim Mirek przecież dobrze podpowiadał. ;)
Nasuwa mi się pewna myśl. Może kiedyś przy okazji konserwacji naszego forum,
dodać przycisk "pomoc pośrednia", albo "pomocny post"? Sam bym wiele razy kolegom pozaznaczał.
Pomimo że wątków nie założyłem, uczę się przecież z wypowiedzi innych. :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 sie 2016, o 08:35 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27354
Lokalizacja: Szczecin
Pomógł: 1042

Daro69 napisał(a):
dodać przycisk "pomoc pośrednia", albo "pomocny post"? Sam bym wiele razy kolegom pozaznaczał.

Tak pół żartem pół serio - to mogłoby spowodować nielegalny handel pigułami "spod lady" :lol: .... A tymczasem ich strażnikiem jest SunRiver w naszych Lochach i ciężko je tam "podebrać" na lewo ... :lol:

A na poważnie - to uwierz mi, wystarczy tak jak jest tylko, żeby każdy kto otrzyma pomoc chciał klikać klawisz pomógł...

No i to tym bardziej pokazuje dlaczego warto zakładać własne wątki z pytaniami ;) a tak? Nie ma później nawet jak (PPP) pomóc klawiszem pomógł pomagającemu :lol:

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 sie 2016, o 20:27 
Offline
Użytkownik

Dołączył(a): 12 lis 2014
Posty: 108
Pomógł: 0

Dziękuję Daro69 za sugestię.

Istotnie można było i tak też zrobiłem. Ciągła praca po godzinach zawęża myślenie. Pomału będę szedł dalej. Czeka mnie przeprawa przez struktury.
Czytałem, oglądałem i nie mogę załapać. Tak było z timerami. Ale to dla tego, że za dużo na raz. Kolejny raz przejdę przez temat i założę wątek, jak dalej
będzie problem. Może źle się uczę. Tworząc swój projekt od razu chcę napisać program nie posiadając dostatecznej wiedzy. I zaczyna się męczenie forumowiczów
pytaniami :D :D :D .
Myślę, że do nauki wymyślę jakąś prostą strukturę, np jakieś znaki na lcd, tablicę i spróbuje je wywołać, pobrać, a żeby trawiły na wyświetlacz, tam gdzie chcę. Chodzi, żeby trybiki zaskoczyły w głowie, to potem poleci. Jak robię obsługę silników, zaraz potem pomiar adc, i jeszcze coś tam, to za dużo chyba i po łepkach wychodzi. Ale to odrębny temat i nie będę wnosił bałaganu w poście. Myślę, że sukces tkwi w prawidłowym podejściu do nauki.
Ja wiem, ze Mirek pisał o czytaniu od a do z, nie przeskakiwać po rozdziałach i nie tylko On to mówił. Mimo wszystko czytając po kolei nie zawsze się załapie.
A jak staniesz na jakimś rozdziale, to jak zrozumieć kolejny ?. Ja oczywiście jadę dalej i z kolejnych coś tam rozumiem, ale to za mało, ponieważ wystąpiły luki w
poprzednich. Ja to rozumiem. Na szczęście jest forum, internet, no i zauważyłem, że przeglądając stare tematy, które były ciężkie, dzisiaj widzę je o wiele lepiej.
Znaczy,że jednak jakieś postępy są. Fajne to C :D .

Pozdrawiam i na razie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 sie 2016, o 20:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Nie jesteś przypadkiem odosobnionym. :lol:
Nie myśl że ja przeczytałem raz i coś zrozumiałem. _ nic. :lol:
ale na ten temat jest oddzielny wątek.http://forum.atnel.pl/topic6385.html?hilit=jak%20si%C4%99%20uczy%C4%87%20z%20BB

a mnie można często zastać na naszym mini czacie. ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 sie 2016, o 20:44 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27354
Lokalizacja: Szczecin
Pomógł: 1042

Robson napisał(a):
A jak staniesz na jakimś rozdziale, to jak zrozumieć kolejny ?.

Jak to jak ? ;) a od czego jest forum ... co za problem dopytać - no po to je założyłem. I są tacy co korzystają garściami w takich momentach zastoju a są tacy co .. hmmm nie wiem.... wstydzą się dopytać czy jak ? ... a szkoda bo to troszkę wtedy ich strata

ja tam bym pytał ile wlezie

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 sie 2016, o 21:10 
Offline
Użytkownik

Dołączył(a): 12 lis 2014
Posty: 108
Pomógł: 0

Dzięki wielkie kolegom.

Jak przeczytałem pierwsze zdanie i kolejne, z tamtego wątku, to jak bym siebie widział :lol: :lol: .
Wiem, że nie jestem jedyny i czasami się zastanawiam, skąd "pomagierzy" mają tyle czasu i cierpliwości.
Dzisiaj odpuszczam. Trzeba trochę odpocząć. Może i na czacie zaistnieje. Do jakiegoś czasu był problem z pisanmiem
(no gdzie jest ta litera :oops: ), ale i z tym jest coraz lepiej.
Dobranoc.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 20 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 5 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO