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



Teraz jest 28 wrz 2026, o 00:42


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 87 ]  Przejdź na stronę Poprzednia strona  1, 2, 3
Autor Wiadomość
PostNapisane: 9 lis 2013, o 22:41 
Offline
Użytkownik

Dołączył(a): 13 wrz 2013
Posty: 173
Lokalizacja: Birmingham, UK
Pomógł: 0

Opisałem to wyraźnie w moim poście wczoraj rano a potem jeszcze w następnych postach wyjaśniałem. Chodzi, że w kodzie na początku obsługi przerwań w pliku d_led.c (ćwiczenie dotyczące multipleksowania wyświetlaczy ledowych) jest kod wygaszający wyświetlacze, który na płycie DVD ma postać:
Kod:
ANODY_PORT = (ANODY_PORT & 0xF0);   // wygaszenie wszystkich wyświetlaczy
Końcówka powinna być odwrotna: 0x0F i tak też było w erracie do ćwiczeń tej książki.
Poza tym, ja nie mówiłem o błędzie w książce, ale na płycie dvd.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 lis 2013, o 22:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 paź 2013
Posty: 57
Pomógł: 0

F0 = 0b11110000
0F = 0b00001111
Wszystko zależy od tego jakim stanem portu sterujesz anoda.
A co do błędu który opisujesz. Proponuje dokładnie przeczytać ten fragment książki i się nad nim zastanowić.
Jest tam mowa o negacji bitów i ciut wyżej jest to wytłumaczone.

_________________
Chomikujemy



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 lis 2013, o 23:09 
Offline
Użytkownik

Dołączył(a): 13 wrz 2013
Posty: 173
Lokalizacja: Birmingham, UK
Pomógł: 0

Mipsa napisał(a):
F0 = 0b11110000
0F = 0b00001111
Wszystko zależy od tego jakim stanem portu sterujesz anoda.
A co do błędu który opisujesz. Proponuje dokładnie przeczytać ten fragment książki i się nad nim zastanowić.
Jest tam mowa o negacji bitów i ciut wyżej jest to wytłumaczone.

Wyżej bardzo dokładnie wyjaśniłem, jak jest sterowana anoda i tak w książce jest napisane, że anody są sterowane przez tranzystory pnp. Zatem jeśli z portu sterowana jest baza tranzystora, i na niej wystąpi "zero", to tranzystor przewodzi i podaje +5V na anodę wyświetlacza, nieprawdaż? Więc zero na porcie, nie wygasza wyświetlacz, ale zasila go.
Nie rozumiem, co masz na myśli o negacji bitów. Tutaj jest napisana linia kodu, w której nie mówi się o żadnej negacji. Wydaje mi się, że mylisz sprawę zmiennej licznik, która jest rzeczywiście negowana, ale tutaj nie ma mowy o niej.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 lis 2013, o 23:18 
Offline
Moderator
Avatar użytkownika

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

rysiekm55 napisał(a):
Końcówka powinna być odwrotna: 0x0F i tak też było w erracie do ćwiczeń tej książki.
Poza tym, ja nie mówiłem o błędzie w książce, ale na płycie dvd


No faktycznie biorąc pod uwagę tę linię:

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


to rzeczywiście na wejściu do przerwania wygaszenie 4 wyświetlaczy powinno wyglądać tak:

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


a nie tak:

Cytuj:
ANODY_PORT = (ANODY_PORT & 0xF0);


Jest jednak nadal na stronie

http://atnel.pl/uaktualnienia-programow-do-dvd.html

dostępne uaktualnienie z erratą do kodów do DVD ... czyli owszem przedostał się ten błąd na DVD ponownie do nowego wydania książki. Gorzej - przedostał się jeszcze inny bo okazuje się, że akurat cały projekt 03_Multi_LED ma załączony profil DEBUG i przez to wielu czytelników całkowicie początkujących ma kłopot z jego pierwszą kompilacją ..... (a sam nie wiem jak to się stało) .... nie mniej jednak jestem tylko człowiekiem a nie robotem.

Ale dziękuję za zwrócenie uwagi.

------------------------ [ Dodano po: 9 minutach ]

Dlatego teraz już ląduje uaktualnienie tego przykładu tym razem w taki sposób, począwszy od zdefiniowania MASKI w pliku d_led.h

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


a w procedurze obsługi przerwania będzie tak:


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

_________________
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: 9 lis 2013, o 23:38 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 paź 2013
Posty: 57
Pomógł: 0

No ok . Ja popatrzyłem szybko do mnie do książki(pierwsze wydanie) i u mnie tego błędu nie znalazłem(chyba już dziś za dużo soczku jabłkowego wypiłem) i przez to napisałem o tej negacji myślałem że po prostu pomyliłeś wiersze w książce.
Albo już po prostu nie wiem co pisze hehe

_________________
Chomikujemy



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2013, o 00:03 
Offline
Użytkownik

Dołączył(a): 13 wrz 2013
Posty: 173
Lokalizacja: Birmingham, UK
Pomógł: 0

Cieszę się, że sprawa się ostatecznie wyjaśniła. Akurat tego drugiego błędu nie zauważyłem, ponieważ, gdy robię ćwiczenia z książki, to nie robię na dokładnych kopiach projektów, ale tworzę swoje własne projekty z plikami pod tymi nazwami,a potem wklejam kod w plików oryginałów, dzięki temu mam większą kontrolę nad tym co robię.

Rzeczywiście ten uaktualniony sposób z maską anody jest znacznie bardziej czytelny.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2013, o 16:51 
Offline
Użytkownik

Dołączył(a): 13 wrz 2013
Posty: 173
Lokalizacja: Birmingham, UK
Pomógł: 0

Od paru dni rozgryzam ćwiczenie dotyczące obsługi LCD. W pliku nagłówkowym zdefiniowałem, które porty mikrokontrolera mają być podłączone do linii LCD. Mam malutki problem, płytka na której zamierzam ćwiczyć ma linię RW nie podłączoną, czy w takiej sytuacji będzie działać kod z tej lekcji, czy muszę coś w nim zmieniać?

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2013, o 16:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 lut 2013
Posty: 376
Lokalizacja: Kłopoty-Stanisławy
Pomógł: 33

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


Autor postu otrzymał pochwałę

_________________
50 znaków Atnela ....



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2013, o 17:24 
Offline
Użytkownik

Dołączył(a): 13 wrz 2013
Posty: 173
Lokalizacja: Birmingham, UK
Pomógł: 0

acid3 napisał(a):
W pliku lcd44780.h musisz ustawić -
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Dzięki kolego. To było wyraźnie napisane, chyba byłem ślepy, że nie zauważyłem tego.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2013, o 21:24 
Offline
Użytkownik

Dołączył(a): 13 wrz 2013
Posty: 173
Lokalizacja: Birmingham, UK
Pomógł: 0

W końcu działa zadanie z LCD! Potwierdza to dołączona fotka. Testowałem to na płytce audio procesora, do którego w najbliższej przyszłości chciałbym napisać oprogramowanie, o czym już wcześniej wspominałem.
Wcześniej udało mi usprawnić mój programator. Dobudowałem w nim możliwość zasilania programowanej płytki (przepraszam Mirek, ale ukradłem pomysł z twojego programatora), dodatkowo rozdzieliłem zasilanie procka programatora i reszty dokładając dodatkowe kondensatory filtrujące.
Obrazek

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2013, o 22:05 
Offline
Moderator
Avatar użytkownika

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

rysiekm55 napisał(a):
przepraszam Mirek, ale ukradłem pomysł z twojego programatora


Wiesz, gdybym ja skrzętnie ukrywał schematy swoich modułów jak to robią niejednokrotnie niektórzy producenci - to mógłbyś tak powiedzieć :lol: ... a ja właśnie specjalnie je udostępniam bo wolę aby ludzie korzystali ze sprawdzonych rozwiązań i cieszę, się że się przydało ;)

------------------------ [ Dodano po: kilkunastu sekundach ]

a, no i dzięki za pozdrowienia z LCD z fotki :lol: - SUPER!

_________________
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: 12 lis 2013, o 20:25 
Offline
Użytkownik

Dołączył(a): 13 wrz 2013
Posty: 173
Lokalizacja: Birmingham, UK
Pomógł: 0

Jeszcze pozostaję przy ćwiczeniu o LCD, gdyż chciałbym dokładnie przestudiować i zrozumieć wszystkie funkcje obsługujące LCD zawarte w pliku lcd44780.c. W książce jest napisane, że można napisać procedurę, za pomocą której uzyskuje się przemalowanie kodów dla standardu np WIN1250.
Czy można dowiedzieć się coś więcej jak dałoby to zrobić?

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2013, o 20:54 
Offline
Moderator
Avatar użytkownika

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

No a zobacz przykład z przemalowaniem kodów 0x80-0x87 na kody 0x00-0x07 ;) .... po to dałem ten przykład - i na podobnej zasadzie można zrobić z kodami WIN1250

_________________
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: 12 lis 2013, o 23:19 
Offline
Użytkownik

Dołączył(a): 13 wrz 2013
Posty: 173
Lokalizacja: Birmingham, UK
Pomógł: 0

Dziękuję, spróbuję to zrobić jak napisałeś. Pozdrawiam

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lis 2013, o 07:07 
Offline
Użytkownik

Dołączył(a): 13 wrz 2013
Posty: 173
Lokalizacja: Birmingham, UK
Pomógł: 0

Wciąż nie mogę zrozumieć, dlaczego była konieczność przemalowania kodów 0x80-0x87 na kody 0x00-0x07, a nie można było użyć bezpośrednio kodów 0x00-0x07 do wywoływania własnych znaków.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lis 2013, o 07:23 
Offline
Moderator
Avatar użytkownika

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

rysiekm55 napisał(a):
a nie można było użyć bezpośrednio kodów 0x00-0x07 do wywoływania własnych znaków.


ależ można ;) jak najbardziej ... ale myślę, że pominąłeś w opisie w książce WAŻNY MAŁY SZCZEGÓŁ. Najpierw jednak dwa słowa wyjaśnienia.

1. przykład ten ma pokazać jakiś sposób (jeden z wielu) na w ogóle przemapowywanie znaków w locie
2. przykład ten ma pomagać w unikaniu przerywania stringów ;)

skupmy się na pkt.2

wyobraźmy sobie że nie ma tego przemapowania i posługujemy się kodami znaków od 0 do 7 OK ?

czyli prosty przykład - definiujesz sobie np pod znakiem o kodzie 0 (zero) literkę 'ą'

no i teraz chcesz wyświetlić napis "kącik"

jak to zrobić - no proszę np tak:

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


wiesz chyba że \x00 to zapis HEX wewnątrz stringa kodu znaku ... ale widzisz chyba że to kod znaku = 0 tak ?

więc co to za string ? zastanowiłeś się ? pamiętasz jak działa string w C ? - string zawsze kończy się zerem .... a zatem typowa pętla wysyłająca string czy to na LCD czy na UART czy gdziekolwiek jak się zachowa ?

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


jeśli rozumiesz działanie tej pętli to chyba widzisz że zatrzyma się ona na końcu stringa - jego koniec to znak 0 a zatem zamiast napisu "kącik" na swoim LCD zobaczysz napis

Cytuj:
"k"


i to wszystko ;) zrób sobie najlepiej test na własnym LCD - ja zwykle gdy mi coś nie może zaskoczyć w głowie - to zaraz robię test na żywca ... wystarczy tylko wyłączyć tą konwersję znaków 0x80-0x87 na 0x00-0x07

Owszem możesz powiedzieć - ale przecież nie muszę tak wyświetlać znaku 'ą' pod kodem = 0 - mogę to zrobić tak:

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


możesz - jak lubisz ;) sprawdź jednak ile to zajmie pamięci flash i pomyśl tylko ile musiałbyś się nakombinować chcąc wtedy wpisać np takie dwa wyrazy:

Cytuj:
"żółtą gęślą"


:lol:

a tymczasem dodają jeszcze konwersję np na WIN1250 - ja mogę sobie napisać wręcz tak:

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


bezpośrednio w kodzie swojego programu .... to jest NAJWYGODNIEJSZE i będzie działać ;) .... owszem to też ma swoje wady ale nie o tym teraz mowa - czasem się BARDZO BARDZO przydaje

_________________
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: 15 lis 2013, o 21:08 
Offline
Użytkownik

Dołączył(a): 13 wrz 2013
Posty: 173
Lokalizacja: Birmingham, UK
Pomógł: 0

Dziękuję Mirku za tak dokładne wyjaśnienie. Podziwiam Cię, że opisując to tak dokładnie poświęcasz tyle swojego cennego czasu dla mnie, który tylko kupił od Ciebie książkę i czasami udziela się tutaj na Twoim forum, które uważam za jedno z najlepszych w tej dziedzinie, wydaje mi się, że nawet lepsze od znanego anglojęzycznego AVRfreak.
Wracając do meritum sprawy, wcześniej domyślałem się, ale nie byłem w 100% pewny, że chodzi o ten adres "zerowy", który dla stringów jest zarezerwowany do zakończenia go.
W ten weekend zamierzam sie pobawić się przemalowywaniem adresów znaków, a także wypróbuję większy wyświetlacz 4x40, tym razem na większym procku (potrzebna dodatkowa druga linia E)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lis 2013, o 22:06 
Offline
Użytkownik

Dołączył(a): 13 wrz 2013
Posty: 173
Lokalizacja: Birmingham, UK
Pomógł: 0

Witam ponownie tutaj po małej przerwie, ale miałem inne sprawy do zrobienia. Dziś uruchomiłem swój drugi zestaw uruchomieniowy AVT3505 z Atmega162. Podłączyłem do niego wyświetlacz 4x40 i dołączyłem drugą linię E nazywając ją E1. Dla tej drugiej linii wprowadziłem dodatkowe linie kodu, np w funcjach przesyłania półbaita i całego bajta, użyłem warunku sprawdzającego w której linii jest aktualnie znak, jeśli są 2 dwie pierwsze linie, to jest sterowana oryginalna linia E, jeśli zaś jest w wierszach 3 i 4, to sterowana jest linia E1.
Zaś w funkcji inicjacyjnej skopiowałem linie kodu z sygnałem E i zmieniając E na E1:Według mnie teoretycznie powinno działać, ale niestety działają tylko dwie linie wyświetlacza, dwie pozostałe pozostają z ciemnymi kropkami, co wydaje, że ta część wyświetlacza nie została nawet zainicjowana.

Sprawdziłem, nie działał, ale wymieniłem na drugi i teraz się inicjuje się druga część wyświetlacza.
Dziś przeglądałem forum i znalazłem, że ten temat był już rozgryzany na początku roku, w tym wątku topic2276.html, i jeden z kolegów już napisał przerobiony kod do obsługi takiego wyświetlacza, muszę przestudiować i zastosować u siebie.
Pozdrawiam.

_________________
sig off ;(



Ostatnio edytowano 24 lis 2013, o 15:07 przez rysiekm55, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lis 2013, o 15:02 
Offline
Użytkownik

Dołączył(a): 13 wrz 2013
Posty: 173
Lokalizacja: Birmingham, UK
Pomógł: 0

Zastosowałem kod kolegi jwalentek z wyżej wspomnianego wątku, jedynie w części inicjacyjnej lcd dodałem kod dla trybu 8 bitowego ustawianie linii E2 (zmieniłem pierwotne E i E1 na E1 i E2), a także dodałem kod odczytu baitu na podobnej zasadzie jak zapisu, uzależniając od zmiennej e, z użyciem switcha, dla wartości e=1 ustawiając linię E1 i dla e=2 linię E2.
Wyświetlacz działa na wszystkich wierszach, tylko mam mały problem z ustawianiem kursora np dla wiersza 3 i 4, gdy wpisuję np lcd_locate(3,0) kursor ustawia sie od połowy wyświetlacza. Może należy zmienić gdzieś adresowanie?

------------------------ [ Dodano po: 14 minutach ]

Gdy wpiszę lcd_locate(3, -16) to zaczyna od początku linii. To samo dzieje sie dla linii 3. Można to zmienić w funkcji locate, dla linii 3 i 4 poprzez wcześniejsze wpisanie do x liczby -16, ale może jest jakiś inny ciekawszy pomysł?

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lis 2013, o 18:55 
Offline
Użytkownik

Dołączył(a): 13 wrz 2013
Posty: 173
Lokalizacja: Birmingham, UK
Pomógł: 0

Obrazek

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lis 2013, o 18:56 
Offline
Moderator
Avatar użytkownika

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

O! i poszło ;)

_________________
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: 24 lis 2013, o 22:12 
Offline
Użytkownik

Dołączył(a): 13 wrz 2013
Posty: 173
Lokalizacja: Birmingham, UK
Pomógł: 0

Dzięki Mirek.
Doszedłem co było przyczyną, że tak źle mi przesuwało znaki w 2 dolnych liniach, w kodzie z książki dla 3 i 4 wiersza były inne adresy pierwszych znaków niż dla wiersza 1 i 2, a powinny być dokładnie te same.
Dla mojego wyświetlacza 4x40 adresy dla 1 i 3 linii mieszczą się między 0x00 i 0x27, a dla linii 2 i 4 adresy znaków są w przedziale od 0x40 i 0x67

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 gru 2013, o 10:36 
Offline
Użytkownik

Dołączył(a): 13 wrz 2013
Posty: 173
Lokalizacja: Birmingham, UK
Pomógł: 0

Po wielu dniach bojów w końcu doszedłem do końca w pisaniu programu do przedwzmacniacza audio z udziałem kości TDA8425, o którym kiedyś wspominałem. Program ma jeszcze pewnie wiele błędów logicznych, jak na razie udało mi usunąć te wszystkie wykrywane przez kompilator. W programie jest wykorzystana obsługa LCD oraz programowa obsługa I2C. Z tym drugim miałem wiele problemów, żeby właściwie zastosować ją do sterowania kości TDA. Zastosowałem tez zapis do wewnętrznej pamięci EEPROM (pierwotnie była pamięć zewnętrzna komunikująca się przez I2C)
W pamięci EEPROM utworzyłem zmienną tablicową, do której zapisuję oraz odczytuję z niej z użyciem funkcji eeprom_write_byte() i eeprom_read_byte().
Mam pytanie, nie wiem jak włączyć opcję zapisu danych do pamięci EEPROM w czasie programowania, obecnie zapisuje dane tylko pamięci programu?

------------------------ [ Dodano po: 23 minutach ]

Już znalazłem i zrobiłem, należało we właściwościach programatora w zakładce Flash/EEPROM zaznaczyć opcję "Upload EEPROM Image from build"

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 gru 2013, o 13:09 
Offline
Moderator
Avatar użytkownika

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

rysiekm55 napisał(a):
W pamięci EEPROM utworzyłem zmienną tablicową, do której zapisuję oraz odczytuję z niej z użyciem funkcji eeprom_write_byte() i eeprom_read_byte().
Mam pytanie, nie wiem jak włączyć opcję zapisu danych do pamięci EEPROM w czasie programowania, obecnie zapisuje dane tylko pamięci programu?

------------------------ [ Dodano po: 23 minutach ]

Już znalazłem i zrobiłem, należało we właściwościach programatora w zakładce Flash/EEPROM zaznaczyć opcję "Upload EEPROM Image from build"


No to niestety idziesz od początku złą drogą ... i się zakałapućkasz na przyszłość ... szczególnie z tym co napisałeś na końcu że ładujesz od razu zawartość do eeproma po kompilacji ....

zobacz przecież na moim blogu masz w tym zakresie fajny poradnik - na prawdę warto go obejrzeć i wykorzystać w praktyce a zobaczysz jak się to powinno robić i jaką drogą iść ... bo zapisywanie pojedynczych zmiennych eeprom_write_byte() ... każdej z osobna czy ich odczyt to hmmm taka droga troszkę z Bascoma i szybko okaże się strzałem w kolano, ok obejrzyj to :

http://mirekk36.blogspot.com/2012/11/av ... iazek.html

gorąco polecam

_________________
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: 28 gru 2013, o 21:00 
Offline
Użytkownik

Dołączył(a): 13 wrz 2013
Posty: 173
Lokalizacja: Birmingham, UK
Pomógł: 0

Dzięki kolego Mirku, za cenne rady, chętnie obejrzę poradnik i nawrócę się na właściwą drogę.

------------------------ [ Dodano po: 31 minutach ]

Czy chodziło o ten poradnik "AVR-EEPROM Struktury"? http://mirekk36.blogspot.co.uk/2012/11/ ... iazek.html

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 gru 2013, o 14:59 
Offline
Użytkownik

Dołączył(a): 13 wrz 2013
Posty: 173
Lokalizacja: Birmingham, UK
Pomógł: 0

Obejrzałem ponad 2 godziny poradnik. W związku z tym mam dodatkowe pytania. Jeśli chce zapisać jakieś dane w eepromie, to tworzę strukturę w programie i mogę potem zapisywać dane z tej struktury w pamięci eeprom za pomocą wymienionych funkcji. Potem po zapisie, przy starcie programu, mogę sprawdzać zawartość zapisanej struktury w eeromie, czy jest nie jest czasem pusta (ale któryś element nie jest pusty. za pomocą funkcji "check and load defaults", a także czytać zapisanej struktury w eepromie za pomocą innej funkcji.
W funcjach zapisu są adresy komórek (wskaźniki) w pamięci ram i pamięci eeprom. Czy muszę je znać, czy prostu je deklaruję pod odpowiednimi nazwami?

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 gru 2013, o 15:30 
Offline
Moderator
Avatar użytkownika

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

po to jest C żeby nie trzeba było znać żadnych tam wskaźników tzn cyfr/bezpośrednich adresów komórek .... no przecież w poradniku jest pokazane że operujesz już tylko na strukturze .... i jak trzeba to ją zapisujesz lub robisz update a jak trzeba to ją odczytujesz

_________________
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  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 87 ]  Przejdź na stronę Poprzednia strona  1, 2, 3

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