ATNEL tech-forum https://forum.atnel.pl/ |
|
Pytanie do poradnika AVR-EEPROM-Struktury cz.2 https://forum.atnel.pl/topic22588.html |
Strona 1 z 1 |
Autor: | miki53 [ 29 wrz 2019, o 17:03 ] |
Tytuł: | Pytanie do poradnika AVR-EEPROM-Struktury cz.2 |
Mam mały problem związany z poradnikiem avr - eeprom - struktury cz.2 Przepisywałem go z poradnika , biblioteki mam z GB wszystko niby ok sprawdzane po kilka razy a pojawia mi się jeden błąd którego w poradniku nie było język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. OPIS BŁĘDU język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. Jeśli wstawię słówko -> const to w komendach AT błędy się mnożą jak króliki Nie wiem czemu w moim kodzie mimo że jest przepisany kropka w kropkę z poradnika Deklaracja extern TCFG pgm_cfg PROGMEM nie widzi stałej tak jak w poradniku |
Autor: | xentis [ 29 wrz 2019, o 17:16 ] |
Tytuł: | Re: Pytanie do poradnika AVR-EEPROM-Struktury cz.2 |
miki53 napisał(a): Nie wiem czemu w moim kodzie mimo że jest przepisany kropka w kropkę z poradnika Odpowiedź jest prosta - kod z poradnika był kompilowany na starym winavr, Ty zapewne próbujesz to kompilować w najnowszym atmel toolchainie który narzuca nowe zasady, i niestety jak dane we flash to musi być const.Deklaracja extern TCFG pgm_cfg PROGMEM nie widzi stałej tak jak w poradniku Cytuj: Jeśli wstawię słówko -> const to w komendach AT błędy się mnożą jak króliki Pokaż jak to robisz i jak wyglądają te "króliki"------------------------ [ Dodano po: 13 minutach ] Przypuszczam że const dodajesz do deklaracji/definicji samej zmiennej, ale już w funkcjach które używają tej zmiennej nie zmieniasz deklaracji zmiennych funkcji na const, stąd kompilatorowi się czkawka odbijają różnice w deklaracjach tych zmiennych. |
Autor: | mirekk36 [ 29 wrz 2019, o 20:15 ] |
Tytuł: | Re: Pytanie do poradnika AVR-EEPROM-Struktury cz.2 |
Cytuj: variable 'pgm_cfg' must be const to jest klucz w błędach które ci się pojawiają i słusznie pisze kolega wyżej ... na to zaś odpowiedź masz w dużo późniejszym poradniku z bloga http://mirekk36.blogspot.com/2012/08/ec ... zytaj.html |
Autor: | miki53 [ 1 paź 2019, o 18:46 ] |
Tytuł: | Re: Pytanie do poradnika AVR-EEPROM-Struktury cz.2 |
Plik komendy at.c W tym pliku pojawiło się najwięcej błędów Próbowałem sobie z tym poradzić przy pomocy Mirka poradników ale bez rezultatu język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Tu podaję wyświetlane błędy |
Autor: | JarekB [ 2 paź 2019, o 05:59 ] |
Tytuł: | Re: Pytanie do poradnika AVR-EEPROM-Struktury cz.2 |
język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. dołożyłbym to |
Autor: | miki53 [ 2 paź 2019, o 14:16 ] |
Tytuł: | Re: Pytanie do poradnika AVR-EEPROM-Struktury cz.2 |
Wstawiłem ale to nie pomaga ------------------------ [ Dodano po: 49 minutach ] Spróbowałem zastosować to (przedstawione niżej ) z poradnika mi nie działa |
Autor: | JarekB [ 3 paź 2019, o 05:51 ] |
Tytuł: | Re: Pytanie do poradnika AVR-EEPROM-Struktury cz.2 |
Może spróbuj jednak zacząć od pisania małych fragmentów programu. Odłóż cały obecny projekt. Stwórz sobie nowy testowy zadeklaruj typ strukturalny zdefiniuj zmienne i zacznij z nich korzystać. Wtedy będzie można łatwiej dojść do tego. Teraz wysłałeś posta na zasadzie coś nie działa. No to coś trzeba zrobić. Tak sobie kiedyś ćwiczyłem main.c język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. test.c język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. test.h |
Autor: | miki53 [ 3 paź 2019, o 14:58 ] |
Tytuł: | Re: Pytanie do poradnika AVR-EEPROM-Struktury cz.2 |
Co z tymi błędami zrobić jak z tego wyjść ? opiszę najkrócej jak można aby było łatwiej przeanalizować język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
(Mimo że programowanie jest fajne to jednak taka walka z przeciwnościami jest zniechęcająca) |
Autor: | JarekB [ 3 paź 2019, o 19:13 ] |
Tytuł: | Re: Pytanie do poradnika AVR-EEPROM-Struktury cz.2 |
Myślę sobie że powinieneś na chwile ten projekt odłożyć na bok i zacząć od początku. Tak jak Ci podałem przykład, czyli zdefiniowanie jakiegoś małego typu strukturalnego. Wygenerowanie najpierw zmiennej tego typu w pamięci RAM. Potem próba "obróbki" tej zmiennej. Dalej stworzenie przebrnięcie tego typu strukturalnego we flash dalej w eeprom. Następnie korzystając z poradnika Mirka kopiować w te i we te te zmienne. Z ramu do eeprom z flasz do ram i do eeprom Na koniec jak już to opanujesz to umieść w definiowanej strukturze wskaźnik na funkcje. void (*funkcja)(void); Wywołaj tę funkcje. Wejdź potem na wyższy poziom i w definicji struktury umieść wskaźnik do funkcji z argumentem w postaci jak niżej void (*funkcja)(struct TWOJTYPSTRUKTURALNY * zmienna) Za każdym razem kompiluj i patrz czy nie robisz babola. Później pójdzie z górki. Zobacz Tu masz błąd w 275 linii. Nie było wcześniej błędów? |
Autor: | miki53 [ 4 paź 2019, o 12:23 ] |
Tytuł: | Re: Pytanie do poradnika AVR-EEPROM-Struktury cz.2 |
Szkoda że nie mogę z korzystać z tego poradnika z powodu nie tyle błędów programu co z powodu niezgodności programu w którym został napisany a eclipse w którym chcę go otworzyć Miałem nadzieję że dzięki niemu nauczę się czegoś , chciałem spróbować go przerabiać do swoich potrzeb ( jako sterownik ) ale nic z tego |
Autor: | JarekB [ 4 paź 2019, o 12:47 ] |
Tytuł: | Re: Pytanie do poradnika AVR-EEPROM-Struktury cz.2 |
Ja bym tak szybko nie rezygnował. Nie ważne w czym piszesz ostateczną robotę robi kompilator i to on może czasem nie zgadzać się z tym co napisałeś Ale tych różnic między starym WINAVR a nowym kompilatorem nie ma tak wiele. Błędy które ci kompilator wytknął raczej wskazują że nie do końca dobrze podzieliłeś projekt na pliki. Ale mogę się mylić. |
Autor: | miki53 [ 4 paź 2019, o 13:20 ] |
Tytuł: | Re: Pytanie do poradnika AVR-EEPROM-Struktury cz.2 |
Ten projekt był na żywca przepisany z poradnika Mirka i dzieliłem go na pliki tak jak było w poradniku więc tu chyba nie ma pomyłki tak myślę. Tu chodzi o różnice między tymi kompilatorami wstawiałem const w funkcje i bez rezultatu Nie wiem jak to przejść |
Autor: | xentis [ 5 paź 2019, o 13:22 ] |
Tytuł: | Re: Pytanie do poradnika AVR-EEPROM-Struktury cz.2 |
Widzisz, wklejasz tu fragmenty kodu, i w taki sposób niezwykle trudno pomóc nie widząc reszty. Czasem jest tak że gdzieś zamiast średnika jest przecinek, albo zamiata nawiasu klamrowego okrągły i wywala błędy, ale nie dotyczące nawiasu a zupełnie czego innego i w innym miejscu kodu, bo dla kompilatora to oznacza zupełnie co innego niż to czego oczekuje programista. I może (ale tylko może) być tak że błędy które tu wklejasz są powodowane przez coś co jest zupełnie w innym miejscu kodu. Dla tego koledzy już wcześniej Ci sugerowali założenie projektu od nowa, i wrzucanie do niego małe segmenty kodu i sprawdzanie czy kompiluje się poprawnie po każdym takim wzbogaceniu nowego kodu. Wtedy szybciej idzie wyłapać źródło problemu. A i też można się przy tym dużo nauczyć, bo trzeba te segment wydzielać "z głową", a przecież piszesz że chcesz się uczyć... Więc może spróbuj tą drogą. np ten błąd: miki53 napisał(a): // komendy_at.c:37:15: error: 'at_al1_service' undeclared here (not in a function) moze oznaczać to że zmian dokonałeś w pliku c, ale już zapomniałeś o poprawie deklaracji w pliku h.
|
Autor: | miki53 [ 7 paź 2019, o 11:01 ] |
Tytuł: | Re: Pytanie do poradnika AVR-EEPROM-Struktury cz.2 |
Czy tę strukturę mam napisane dobrze? Jeśli coś jest nie tak, czy czegoś brakuje to proszę poprawcie na przykładach bo od tego szukania odpowiedzi w poradnikach i literaturze kręci się w głowie |
Autor: | JarekB [ 7 paź 2019, o 11:31 ] |
Tytuł: | Re: Pytanie do poradnika AVR-EEPROM-Struktury cz.2 |
No widzę tu jeden problem Definiujesz typ strukturalny TALARM w main.c No i zmenne alarm_1 i alarm_2 też w main.c Raczej bym zdefiniował to poza funkcją main.c Dodatkowo jak już tak działasz to zrób sobie tablicę alarmów język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. wtedy odwołanie staje do kolejnych alarmów staje się banalne język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. Gdy dołożysz sobie następny alarm to dodajesz tylko kolejny indeks To tak na szybko na zasadzie wędki W poradniku o snake część druga Mirek to opisuje bardziej szczegółowo. O tu masz link do tego o czym piszę https://youtu.be/MOgXcDJ29B0?t=149 ------------------------ [ Dodano po: 41 minutach ] Zobacz jaką można zrobić ciekawą rzecz: język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
------------------------ [ Dodano po: 53 minutyach ] A wtedy wyświetlanie alarmu sprowadzasz do jednej prostej funkcji: język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. Oczywiście mogłem zrobić jakąś literówkę ale chodzi o idee tego co można zrobić z tablicą struktur |
Autor: | JarekB [ 7 paź 2019, o 13:15 ] |
Tytuł: | Re: Pytanie do poradnika AVR-EEPROM-Struktury cz.2 |
No trochę "nababoliłem" w ostatniej części wpisu. No cóż cały czas się uczę i czasem takie potworki mi się zdarzają Niestety nie mogę tego wyedytować i poprawić Coś się porobiło że raz mogę edytować raz nie. |
Autor: | miki53 [ 7 paź 2019, o 18:40 ] |
Tytuł: | Re: Pytanie do poradnika AVR-EEPROM-Struktury cz.2 |
Mam parę pytań 1 - dlaczego użyłeś zmiennej uint8_t active; jakie ma zadanie ? 2 - co znaczy słowo costam i jego zadanie 3 - dlaczego tak chcesz wyświetlić zawartość tablicy lcd_int( costam.godz ); skoro wskazujesz tylko na jeden jej element |
Autor: | JarekB [ 7 paź 2019, o 19:37 ] |
Tytuł: | Re: Pytanie do poradnika AVR-EEPROM-Struktury cz.2 |
miki53 napisał(a): Mam parę pytań 1 - dlaczego użyłeś zmiennej uint8_t active; jakie ma zadanie ? 2 - co znaczy słowo costam i jego zadanie 3 - dlaczego tak chcesz wyświetlić zawartość tablicy lcd_int( costam.godz ); skoro wskazujesz tylko na jeden jej element Ad1. Użyłem tej zmiennej jako flaga prawda/fałsz. Później w pętli język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. Ad2. Ad3. Tu trochę popłynąłem. Chciałem pokazać jak z wielu osobnych funkcji zrobić jedną uniwersalną do wyświetlenia wszystkich alarmów. Spróbuje to jeszcze raz napisać. język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Nie mam na czym sprawdzić ale tak jak pisałem chodziło o idee. Do funkcji można by również przekazać wskaźnik do struktury ale wtedy dobieranie się do poszczególnych zmiennych robi się inaczej. To jest w linku który ci podesłałem |
Autor: | miki53 [ 9 paź 2019, o 16:40 ] |
Tytuł: | Re: Pytanie do poradnika AVR-EEPROM-Struktury cz.2 |
Mam fragment z poradnika pt. snake którego nie rozumiem. Jest w nim mowa o strukturze do której możne wpisywać dane za pomocą dwóch funkcji i odczytywać zawartość jej za pomocą jednej funkcji Jak wyświetlać na LCD zawartość tej struktury dla dwóch ustawień Na początku poradnika szło fajnie ale po zmianie tematu i natłoku informacji trudno było wyłuskać dalszą część działania struktury Prosiłbym o pomoc w rozwikłaniu problemu wyświetlania zawartości tej struktury na LCD Na przykładzie pobranym z poradnika |
Strona 1 z 1 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |