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



Teraz jest 26 sty 2025, o 22:25


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 17 ] 
Autor Wiadomość
PostNapisane: 2 lip 2014, o 09:56 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sty 2013
Posty: 106
Pomógł: 0

Witam Wszystkich,

Ostatnio staram sie zmodyfikowac kod z Green Booka, a dokladnie dzial dotyczacy ASCII AT. Pierwszy krok to zapisanie do tablicy TAB odebranego stringa po odebraniu odpowiedniej komendy AT, a wlasciwie jego czesc bez komendy AT.

Oczywiscie caly zabieg przypisu wyslanego ciagu znakow ASCII do TAB odbywa sie w obsludze poszczegolnych komenda AT, jak np. :

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


Wiec, przy inicjalizacji tablicy na TAB={"ATNEL"}, i wyslaniu stringa PWM=OK +(CR) otrzymuje:
Obrazek


Wszystko dziala tak jak powinno, nadpisalo nam jedynie odebrane znaki, pozostawiajac koncowke EL.

Na tym etapie chcialbym was prosic o pomoc.
W celu wyslania adresu do tablicy TAB musialem zmodyfikowac m.in. nastepujace czesci kodu i przekazywac w nich wskaznik to tablicy *wskPWM :

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


Oczywiscie musialem zmodyfikowac wszystkie funkcje serwisowe w polecenia_at[AT_CNT]:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

No i w pliku main.c dodalem adres poczatku tablicy:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Moje pytanie to, w jaki sposob z latwoscia przeniesc wskaznik do tablicy zainicjonowanej w pliku main.c do pliku at_komendy.c bez nadmiarowego w moim przypadku modyfikowania wszystkich funkcji bioracych udzial w UART_RX_STR_EVENT.

Potrzeba mi jedynie adres tablicy TAB w "funkcji serwisowej" at_pwm_service w celu podmienienia jej wartosci.
A jestem pewien na 100 % ze moje "wymysly" mozna wykonac w znacznie ciekawszy sposob :geek:

Pewnie dodatkowo potrzebowac jeszcze bede globalnej zmiennej do zapisu stalego poczatku do TAB no i ostatnio modyfikowanegej komorki w TAB w tejze funkcji serwisowej. :twisted:

Wielkie dzieki ! ;)



Ostatnio edytowano 3 lip 2014, o 08:43 przez barszczz, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lip 2014, o 16:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sty 2013
Posty: 106
Pomógł: 0

Dodatowo mam kolejne pytanie. Czytałem Blue Booka odnośnie tablic i z tego co zrozumiałem to po inicjalizacji tablicy np. char TAB[100] i po skompilowaniu i wgraniu programu zabieg ten powinien mi zarezerwować 100 bajtów w pamięci Flash, w celu zaoszczędzenia miejsca w pamięci RAM. Następnie wartości w tablicy ulokowanej w Flash-u mogę podmieniać za pomocą wskaźników. Z noty katalogowej:

pamięci Flash 32kx8bit
pamięci EEPROM 1024B
pamięci SRAM 2048B

W moim projekcie chcę sczytać po UART-cie kilka tablic 252 elementowych a następnie przesłać je do kolejnego urządzenia.
Poniżej inicjalizuje i dostaję przepełnienie pamięci:
Obrazek

10 * 252 = 2520 B, więc rozumiem, że pamięć RAM jest przepełniona ale czemu tablice 2D nie została ulokowana we Flash ?

Dlaczego wyświetla mi się informacja, że program jest przepełniony do 148.4%, lecz po kompilacji nie dostaję żadnego błędu czy warning-u ?

Z tego co rozumiem to PROGMEM powinien sugerować kompilatorowi umieszczenie danych we Flash, ale dodatkwo Tab[10][252] PROGMEM powinien mieć podane zawartości tablicy. Wydawało mi się, że po inicjalizacji wszystkie komórki powinny mieć wartość zero i nie powinno być żadnego warning-a, no a tu skucha :? :
Obrazek

Jednak porównując dwa screen-y widzimy, że pamięć programu nie przekracza już 100 % i dane przeniosły się do pamięci Flash ?

ile zajmuje Tablica 2D =>252*10=2520 B
o ile zwiekszyło się zajęcie we Flash => 6362 -3842 = 2520 B

Z wyliczeń wszystko się zgadza, ale skąd ten warning ? Jakie wartości mam w tejże tablicy 2D ? Nie są to same zera ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lip 2014, o 16:26 
Offline
Użytkownik

Dołączył(a): 24 kwi 2013
Posty: 454
Pomógł: 30

Samym wskaźnikiem nie ruszysz danych we flashu.
Jest możliwość zapisu przez program (poczytaj np. o bootloaderch), ale to grubsza sprawa.
Także standardowo flash należy traktować jako pamięć tylko do odczytu, czyli zainicjować zmienne/tablice docelowymi wartościami.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lip 2014, o 16:44 
Offline
Moderator
Avatar użytkownika

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

Dokladnie skad pomysl ze tablice we flashu mozna zmieniac ... w bluebooku na pewno nic takiego nie napisalem

_________________
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 lip 2014, o 03:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sty 2013
Posty: 106
Pomógł: 0

mirekk36 napisał(a):
w bluebooku na pewno nic takiego nie napisalem

oczywiscie znowu cos pokielbasilem.

Wrocilem znowu do dzialu 'tablice jako argument funkcji' i teraz widze, ze we Flash-u mozna definiowac tablice jedynie do odczytu zdefiniowanych w niej wartosci, a natomiast zapisywac mozemy jedynie w RAM i EEPROM.
No tak, ale gdy nie starcza RAM-u, a i wewnetrzny EEPROM to za malo. Z tego co mi sie wydaje to jest jeszcze nadzieja w zewnetrznej pamieci EEPROM :ugeek: ?

Z drugiej strony skoro mozemy jedynie odczytywac zawartosci zdefiniowanych tablic we Flash-u to przy projekcie, gdzie chcemy odebrac np. 10 tablic po UART-cie i zachowac je "gdzies" tak, aby po odbiorze np. komendy AT START, wszystkie tablice zostaly przeslane po kolei do innego urzadzenia.

Cos mi sie wydaje, ze powininem to zrobic nastepujaco:
1) odebrac ciag stringow do tablica[252]
2) zdefiniowac ta tablice jako TAB1[252] do pamiecia Flash;
3) Zapisac kolejny ciag stringow do tej samej tablicy w RAM tablica[252]
4) po debraniu kolejnego calego string-a znowu zapisac do Flash jako TAB2[252]
itd. az do odebrania wszystkich tablic

W tym przypadku, w RAM-ie potrzebne nam bedzie dodatkowe 252 bajty, a nie tak jak poprzednio 2520. Pamiec Flash jest na tyle pojemna, aby z latwoscia przetrzymywac przeslane tablice, po odebraniu komendy START.
Tylko czy taki zabieg sie da zrealizowac ? Mogli zabrac polowe pojemnosci z Flash i przydzielic do RAM-u, zycie byloby latwiejsze :lol:

Mam jeszcze kilka pytan odnosnie pamieci Flash, ale wpierw wroce do Blue book-a, zeby nie wypalic z kolejna glupota 8-)

Dacje mi znac, w ktorym kierunku ruszyc bo pewien nie jestem czy moge ot tak w po wykonaniu jednej funkcji i odebraniu stringa, zapisac go do Flash (oczywiscie bez jakiejkolwiek mozliwosci jego modyfikacji).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lip 2014, o 06:26 
Offline
Moderator
Avatar użytkownika

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

przed chwilą pisałeś że niby zrozumiałeś :(

barszczz napisał(a):
oczywiscie znowu cos pokielbasilem.

Wrocilem znowu do dzialu 'tablice jako argument funkcji' i teraz widze, ze we Flash-u mozna definiowac tablice jedynie do odczytu zdefiniowanych w niej wartosci, a natomiast zapisywac mozemy jedynie w RAM i EEPROM


a tu znowu piszesz:

barszczz napisał(a):
znowu zapisac do Flash jako TAB2[252]


więc zastanów się proszę ... i nie wypisuj takich rzeczy bo się totalnie już pokręcisz

barszczz napisał(a):
Pamiec Flash jest na tyle pojemna, aby z latwoscia przetrzymywac przeslane tablice, po odebraniu komendy START


wiesz co to znaczy że pamięć Flash jest "TYLKO DO ODCZYTU" czy nie wiesz?

_________________
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 lip 2014, o 06:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sty 2013
Posty: 106
Pomógł: 0

Z tego co wyczytalem i przejrzalem na Forum, w pamieci FLASH zapisany jest kod progarmu i inne dane wykorzystywane do jego poprawnego dzialania jak np. jakies zdefiniowane skroty, uzywane teksty, obrazki, itd.
W RAM mamy natomiast stos, dane wygenerowane podczas uzytkowania programu, zmienne i itd.

Wczesniejsze gdybania z ulokowaniem odebranej tablicy do pamieci FLASH z tego co rozumiem sa bledne a taki zabieg raczej niewykonywalny, gdyz we Flash-u definiujemy dane przed zaladowaniem naszego programu do kontrolera a po wsadzie nie mozna juz tam ingerowac - no jedynie odczytyawc dane, ktore wczesniej zaladowalismy podczas kompilacji i wgraniu programu do Flesh.

Taki przyklad definicji tablic ze stringami oraz ich wywolywanie znalazlem na blogu Mirka ( zalaczam linka, bo pewnie wroce do tego za kilka dni :) ):
http://mirekk36.blogspot.com/2013/11/ta ... ogmem.html

To teraz kolejne rozwiazanie to pamiec EEPROM, wewnetrzna badz zewnetrzna, niestety wewnetrzna jest zewnetrzne z tego co wyczytalem to mozna polaczyc kilka o innym adresie, aby uzyskac wieksza pojemnosc. Niestety przy moim obecnym stanie wiedzy programowania AVR, nauka obcowania z zew. EEPROM i zapis oraz odczyt danych, moglaby troche potrwac :roll:

Z tematu:
topic2559.html
widze dwa kolejne podejscia. Jedeno to zmienic kontroler na pojemniejszy np. na:
ATMega644:
Flash:64kx8bit;
EEPROM:2048B;
SRAM:4096B

Drugie to uzyc karty SD (nauka zapisu i odbioru danych tego zagadnienia, a w niebieskiej ksiazce wspomniano, ze temat nie nalezy do najlatwiejszych ).


Nastepne rozwiazanie to nie ladowac tak wielkich tablic albo zmniejszyc ich ilosc do 2-3 :(

Kolejna rzecz jaka przychodzi mi do glowy to komunikacja pomiedzy AVR a PC. Po wyslaniu komendy AT START, PC wysle pierwsza cala tablice, a AVR po odbiorze przesle ja po ISP do kolejnego zewnetrznego urzadzenia.
Urzadzenie to bedzie wysterowane danymi z tablicy np. PWM dla LED1,3,5,10 = 166, i ten stan ma sie utrzymywac przez t1=1 sec. W tym przypadku timer bedzie zliczal ms, a po uplywie 1000 ms do wyslana powinna zostac kolejna tablica z nowym PWM do innych diod i stan ten trwac bedzie np t2=500 ms.

Tak sobie rozmyslam czy w tych czasach t1 badz t2, kontroler nie moze wyslac informacji do PC ze tablica zostala wyslana i mozliwe jest wyslanie kolejnej ? W tym wypadku potrzebna bedzie mi jedna tablice [252], ktora bedzie update-wana po wyslaniu jej do zewnetrznego urzadzenia i przeslana ponownie po uplywie wyznaczonego czasu. Jak to widzicie ?

Czy przypadkiem np. stan t3=10ms nie bedzie za krotki na taka komunikacje pomiedzy AVR PC a PC AVR lacznie z wyslaniem stringa i jego odebraniem, przygotowaniem go do wysylu (konwersja z ASCII na HEX) i wyslaniem do sterownika LED ?

Czy jest to do zrobienia, a moze da sie zrobic cos lepiej i latwiej ? Jesli znowu wypisuje jakies wlasne teorie to z gory przepraszam, ale jak to sie mowi tonacy brzydko sie chwyta 8-)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lip 2014, o 06:35 
Offline
Moderator
Avatar użytkownika

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

Powiedz mi po co ci porównywać takie długie tablice przesyłane przez UART? pytam bo szczegółów twojego pomysłu nie mogę niestety kompletnie zrozumieć .... a wydaje mi się , że wymyślasz w tym momencie jakąś iście cyrkową sztuczkę i idziesz mega złą drogą ....

_________________
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 lip 2014, o 06:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sty 2013
Posty: 106
Pomógł: 0

mirekk36 napisał(a):
wiesz co to znaczy że pamięć Flash jest "TYLKO DO ODCZYTU" czy nie wiesz?


kurcze nie zdazylem wczesniej wyslac swojego nowego posta. Po przejrzeniu Blue booka wydaje mi sie, ze juz zalapalem. Do Flash, mozemy zaladowac program, i zdefiniowane elementy jak np. Tablice ze stringami badz inne gotowe do wywolania dane na etapie programowania i wsadu do kontrolera.
Po zaladowaniu naszego programu, mozemy jedynie odczytywac 'zapisane kartki' ale dostepu do takiego 'zeszytu', nawet jesli jest w wiekszosci czysty, nie mamy.



Ostatnio edytowano 3 lip 2014, o 06:52 przez barszczz, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lip 2014, o 06:38 
Offline
Moderator
Avatar użytkownika

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

dokładnie teraz dobrze ;) ... chociaż w kolejnej mojej książce Yellowbook'u trochę zaburzę ten tok myślenia bo pokażę, że jednak można zapisywać do Flash ;) z poziomu programu ... no ale na razie pamiętaj - że jest TYLKO do ODCZYTU żeby nie mieszać sobie w głowie

_________________
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 lip 2014, o 06:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sty 2013
Posty: 106
Pomógł: 0

Postaram sie przyblizyc pomysl. Tak jak wspominalem w temacie:
http://forum.atnel.pl/topic867.html

Mam tablice LED gdzie uzylem kilkanascie WS2803. Jest tam sporo diodek, ma to byc moj wyswietlacz Liter, Cyfr, czy obrazkow. Ot taka zabawka, na potrzeby polaczenia nauk z ksiazek, bloga i oczywiscei poradnikow na YT. Zastosowan takiej zabawki pewnie znajde sporo, ale skonstruowanie tego panelu no i teraz proba rozruchu trwa juz jaaaakis czas :)

Ponizej wstawiam graficzna interpretacje co ma brac udzial w komunikacji i jak chce wysterowac moja tablice LED:
Obrazek

W tym wypadku mam juz program na PC, gdzie wybieram recznie jakie diody maja sie swiecic w pierwszej sekundzie, jakie w drugiej i itd. Powiedzmy, ze chce wyswietlac po kolei 10 liter, "BLUE BOOK!"
Ustawiam kazda literke recznie (odpowiadajace jej diody w Panelu), na PC zapisuje mi to w postaci Tablicy [10][252] i jestem gotowy do wysylu danych. Moge zapisac dany szablon do txt a nastepnie wczytac go spowrotem, wiec takich najrozniejszych obrazkow w sekwencji najchetniej wysylalbym wiecej anizeli 10 :cry:

Tak jak wspomnialem ta czesc jest juz zrobiona i moge wyslac ciag danych w postaci stringow ASCII np.

Dane nadchodzące z PC wyglądają następująco:

(Numer Paczki=1)
,E9,00,E9,E9,00,00,E9,00,00,00,00,E9,00,00,00,00,E9,E9,00,00,00,00,E9,00,00,00,00,00,00,00,00,E9,00,00,00,00,00,E9,00,00,00,00
od razu po niej wyslana
(Numer Paczki=2)
,E9,00,00,00,00,00,E9,00,00,00,E9,00,00,00,E9,00,00,00,00,00,00,00,E9,00,00,00,00,00,00,00,E9,00,00,00,00,00,00,E9,00,00,00,00

Dane to stringi, które są podzielone na kilka ‘paczek’ po około 130 znakow. W tym przykładzie dla kilku pinów ustalam PWM na poziomie 233, gdzie E9= 1110 1001.

Teraz moj problem polega na tym jak to odebrac i wyslac do WS2803...najchetniej to wgralbym wszystkie tablice do AVR a potem po wyslaniu komendy START uruchomil sekwencje.
Niestety jestem mocno poczatkujacy i nie podejrzewalem, ze takie wgrywanie tablic tak zzera miejsce w RAM :mrgreen: .

Powoli koncza mi sie pomysly a zmniejszenie ilsoci znakow w sekwencji to troszke dolujace rozwiazanie :cry:

Mam nadzieje, ze troszke rozjasnilem swoj zamiar.
Dzieki za pomoc !

------------------------ [ Dodano po: 43 minutach ]

mirekk36 napisał(a):
chociaż w kolejnej mojej książce Yellowbook'u trochę zaburzę ten tok myślenia bo pokażę, że jednak można zapisywać do Flash z poziomu programu


No to juz mi smaczku Pan narobil 8-) Prosze zarezerwowac jedna i dla mnie :)

Z okazji takich dobrych zoltych wiesci no i w celu wyjasnienia dlaczego drecze was takimi glupimi pytaniami ponizej wysylam zdjecia z procesu powstawania panelu :)
Obrazek
Jak sie uda to jakos ruszyc to oczywisce podesle wiecej :)

Moze teraz zaintersuje innych do pomocy :)
W sumie kazdy krok czy piasnia programu na AVR czy to do obslugi PWM czy do sterownika LED byl stawiany dzieki pomocy tego forum :o

Zauwazylem, ze wymyslajac sobie jakikolwiek projekt i powoli dazac do konca, mozna zrozumiec zagadnienie oraz zapamietac znaaacznie szybciej ! No i te nietypowe problemy jak tutaj :)

No nic pora wracac do roboty, a potem sprobowac ruszyc chociaz jedna literke :roll:



Ostatnio edytowano 3 lip 2014, o 08:19 przez barszczz, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lip 2014, o 08:06 
Offline
Moderator
Avatar użytkownika

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

niestety nie wyjaśniłeś po co ci porównywanie takich długich tablic albo się pogubiłem w tych wyjaśnieniach

a dokładnie masz rację że wgrywanie takich dużych tablic jest hmmm mało trafionym pomysłem ... tzn wielu tablic

_________________
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 lip 2014, o 08:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sty 2013
Posty: 106
Pomógł: 0

mirekk36 napisał(a):
niestety nie wyjaśniłeś po co ci porównywanie takich długich tablic albo się pogubiłem w tych wyjaśnieniach


Przepraszam, ale ja tez teraz nie rozumiem :oops:.
Wydaje mi sie, ze nigdzie nie wspominalem o porownywaniu tych dlugich tablic. Ja chce je jedynie przeslac z PC i wgrac do AVR i przeslac do sterownika LED w odpowiednich odcinkach czasowych (przeze mnie ustalonych, moga byc rozne badz takie same).

Tak aby np. moc wyswietlac rozne teksty badz cyfry co 0.5 sec., dodatkowo co kazda iteracje np. zwiekszac jasnosc i itd.

Jesli chodzi o porownywanie stringow, to z dzialu odnosnie komend AT interesuje mnie sposob rozpoznania komendy i wyluskiwanie wartosci PWM ze string-a. Tam bedzie uzyte porownanie kilku pierwszych znakow w celu wybrania "funkcji serwisowej ". Wydaje mi sie,ze to tyle uzywania porownywania stringow.

Wydaje mi sie, ze nie rozumiem uzytego pojecia "porownania tablic" :roll:


Obecnie staram sie na PC odbierac wyslane stringi z AVR, jesli po wyslaniu jedenego "wsadu" do sterownika diod bede mogl odebrac informacje, ze AVR jest gotow na wyslanie kolejnej nowej tablicy (nowego wsadu) to moze to zadziala ?
Nie wiem tylko jak to sie sprawdzi przy, wiekszych predkosciach zmian ekranu ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lip 2014, o 11:02 
Offline
Moderator
Avatar użytkownika

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

Nie no to wychodzi na to - że mi się coś pomieszało (przez te długie opisy i dwa wątki twoje - podobne na forum) - przepraszam ;) dlatego tak dopytywałem .... ale jeśli nie mówiłeś o ich porównywaniu to 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 lip 2014, o 11:49 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sty 2013
Posty: 106
Pomógł: 0

...zawsze staram sie opisywac rzeczy jak najdokladniej i tak jak rozumiem dany problem, aby zobaczyc czy aby na pewno dobrze wszystko pojmuje :oops:...pewnie stad tak slaby odzew na moje posty :lol:

...jakby ktos dal mi znac w jaki sposob podejsc do wysylania tych wielkich tablic bede bardzo wdzieczny.. :mrgreen:

W najblizszym czasie poprobuje z tym odezwem ze strony AVR do PC o wyswietlanym aktualnie "ekranie" i zezwoleniu na nadpisanie Tablicy tak, aby po wyswietleniu wczesniejszego mozna przejsc do tej nowo nadpisanej.
Nie wiem czy to zadziala, nie mam zadnej praktyki w tym temacie... :roll:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lip 2014, o 14:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sty 2013
Posty: 106
Pomógł: 0

Cytuj:
Zrozumiałem że:
1. Chcesz wyświetlać na panelu statyczne teksty co 1 lub 0.5 sek.
2. Chcesz od strony PC komunikować się RS232 z urządzeniem posiadającym jakiś AVR i sterującym SPI panelem.


Tak to sie zgadza, chce wygenerowac sobie recznie badz programowo z PC rozne literki cyferki, obrazki, piktogramy i itd. Nastepnie zapisac je sobie w programie w postaci Tabeli[x][252], gdzie x to ilosc ekranow do wyswietlenia. Nastepnie nastawic szybkosc sekwencji i ilosc iteracji i START --> wszysko po ISP leci do panelu diod i zostaje wyswietlone, aż miło to zobaczyć :)

Cytuj:
Jeśli Cię dobrze zrozumiałem to sensownym rozwiązaniem wydaje się trzymanie wzorów czcionek w pamięci flash mikrokontrolera
i przetrzymywanie samych napisów w pamięci RAM.


Udało mi się już to zrobić, zmieniałem w programie AVR jasności piktogramu itd. Niestety w ten sposób projekcik ten traci na atrakcyjności i uniwersalności. Marzy mi się ręczne ustawienie piktogramów w każdej chwili z PC bez ciągłego wgrywania nowego wsadu z nowymi "ekranami" we Flash-u.

mokrowski napisał(a):
Jeśli i on Cię nie zadowala, znajdź wersję z interfejsem XMEM (poruszamy się w obszarze ATmega). Ten interfejs pozwala podłączyć pamięć
do ATmegi tak że traktuje ona ją jak ,,przedłużenie" tej w mikrokontrolerze. Najmniejsze to: ATmega8515, ATmega162...


Muszę powiedzieć, że o tym to nie słyszałem. Nastawiając w mkAVR Calculator atmega161 widzę:
Flash 16 384
EEPROM 512
INT RAM 1 024
EXT RAM 64 512

rozumiem, że w tym wypadku chodzi o EXT RAM >? Czy zapis i odczyt z EXT RAM jest prosty czy tutaj zaczynają się nowe schody ? Czy mam rozumiec ze ta pojemność EX RAM już tam jest czy w tym wypadku mogę podłączyć pamięć do atmegi i maksymalna jej ilość po podłączeniu to 64 512 ?

mokrowski napisał(a):
Czy Ty o to pytałeś, o informacje dotyczące architektury rozwiązania czy o problemy programistyczne?



W pierwszy poście pisałem o pomoc programistyczną, gdyż modyfikując program z GreenBooka odnośnie komend AT w celu przesłania wskaźnika Tabeli, gdzie sczytane mają zostać wartości z UART-a, zmodyfikować musiałem dość sporo funkcji (modyfikować to za duże słowo, po prostu musiałem dodać nowy argument) i zastanawiam się czy nie mogłem zrobić jakiegoś globalnego wskaźnika czy innego trick-u obcego początkującym.

A następnie z czasem rozmowy wyszły kolejne problem z tym jak taki projekt ugryźć i co będzie potrzebne.
Dzięki za pomoc !



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lip 2014, o 15:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sty 2013
Posty: 106
Pomógł: 0

barszczz napisał(a):
Obecnie staram sie na PC odbierac wyslane stringi z AVR, jesli po wyslaniu jedenego "wsadu" do sterownika diod bede mogl odebrac informacje, ze AVR jest gotow na wyslanie kolejnej nowej tablicy (nowego wsadu) to moze to zadziala ?
Nie wiem tylko jak to sie sprawdzi przy, wiekszych predkosciach zmian ekranu ?


a jak wg. Ciebie sprawdzi się takie coś ? Czy to jest realne ?



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: 17 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 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