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



Teraz jest 23 kwi 2024, o 16:08


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 28 ] 
Autor Wiadomość
PostNapisane: 20 maja 2015, o 11:37 
Offline
Użytkownik

Dołączył(a): 05 wrz 2012
Posty: 47
Pomógł: 0

Witam,
nie kompiluje się projekt w Eclipse dla Atmega 644P z użyciem biblioteki MK_USART. Pod Atmegę 32 jest ok. Co należy pozmieniać w tej bibliotece aby działała dla Atmega 644P. Lub jaką inną mogę ją zastąpić aby uruchomić serwer www z poradnika http://mirekk36.blogspot.com/2015/02/av ... erver.html.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 maja 2015, o 11:46 
Offline
Moderator
Avatar użytkownika

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

Buczek napisał(a):
Witam,
nie kompiluje się projekt w Eclipse dla Atmega 644P z użyciem biblioteki MK_USART. Pod Atmegę 32 jest ok. Co należy pozmieniać w tej bibliotece aby działała dla Atmega 644P. Lub jaką inną mogę ją zastąpić aby uruchomić serwer www z poradnika http://mirekk36.blogspot.com/2015/02/av ... erver.html.


Masz tą bibliotekę MK_USART ? jeśli tak to z jakiego źródła ? z Greenbooka? czy bierzesz coś z Bluebooka ? czy może jeszcze z innego ?

pytam bo w obu książkach są różne wersje - więc jak podpowiesz to łatwiej będzie mi odpowiedzieć

_________________
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: 20 maja 2015, o 13:28 
Offline
Użytkownik

Dołączył(a): 05 wrz 2012
Posty: 47
Pomógł: 0

Master wszystko wg Twojego przepisu bibliotekę mam z Greenbooka z ostatniej lekcji ja skopiowałem.
Popraweczka naniesiona również ale to nie to.

char * uart_get_str(char * buf) {
int c; // <----------- prawidłowy typ zmiennej
char * wsk = buf;
if( ascii_line ) {
while( (c = uart_getc()) ) {
if( 13 == c || c < 0) break;
*buf++ = c;
}
*buf=0;
ascii_line--;
}
return wsk;
}



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 maja 2015, o 13:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Musisz zmienić nazwy rejestrów jak i nazwy przerwań. Zobacz na przykładzie
http://forum.atnel.pl/topic10414.html co trzeba zrobić (zmienić).


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 maja 2015, o 13:36 
Offline
Moderator
Avatar użytkownika

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

Buczek napisał(a):
wszystko wg Twojego przepisu bibliotekę mam z Greenbooka

A no to właściwa biblioteka - po co więc szukać innej ;) oj panie kochany - a podmiana rejestrów dla innego procka to co ? ... Poczytaj rzeczywiście wątek który poleca kolega wyżej - a jeśli jeszcze coś będzie nie tak to pytaj ... pokaż też wtedy ew fragmenty biblioteki które podmieniłeś

_________________
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: 20 maja 2015, o 14:00 
Offline
Użytkownik

Dołączył(a): 13 lut 2015
Posty: 99
Pomógł: 6

Możesz też użyć tej biblioteki, albo wyciągnąć z niej potrzebne rejestry.

https://github.com/jnk0le/Easy-AVR-USART-C-Library

Tylko weź pod uwagę, że mkusart może używać UDIRE zamiast TXCIE.

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

dosyć ciekawy warunek :)

_________________
AVR-UART-lib
AVR-FAST-ENCODER
RFM7x-lib



Ostatnio edytowano 28 cze 2016, o 01:20 przez jnk0le, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 maja 2015, o 14:19 
Offline
Moderator
Avatar użytkownika

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

jnk0le napisał(a):
dosyć ... ciekawy warunek

Ciekawy bo ? ;)

_________________
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: 20 maja 2015, o 15:02 
Offline
Użytkownik

Dołączył(a): 13 lut 2015
Posty: 99
Pomógł: 6

Chwila, chwila ... uart_getc zwraca int16_t ?

_________________
AVR-UART-lib
AVR-FAST-ENCODER
RFM7x-lib



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 maja 2015, o 15:20 
Offline
Moderator
Avatar użytkownika

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

jnk0le napisał(a):
Chwila, chwila ... uart_getc zwraca int16_t ?

zwraca typ int, no właśnie ;) czyli warunek wtedy nie wydaje się być dziwny hmm ? ;)

_________________
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: 20 maja 2015, o 19:47 
Offline
Użytkownik

Dołączył(a): 05 wrz 2012
Posty: 47
Pomógł: 0

Rejestry udało mi się pozmieniać, lecz zostało jeszcze jedno żółte ostrzeżenie.
efekt jest taki, że na LCD wyświetlają się napisy (mrugają podczas próby łączenia strony z AVR), a strona z napisem Hello World się nie wyświetla (mieli mieli i mieli przy próbie łączenia się z AVR).

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


Obrazek

A Consola pokazuje coś takiego


Obrazek



Ostatnio edytowano 20 maja 2015, o 19:59 przez Buczek, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 maja 2015, o 19:49 
Offline
Użytkownik

Dołączył(a): 13 lut 2015
Posty: 99
Pomógł: 6

mirekk36 napisał(a):
zwraca typ int, no właśnie ;) czyli warunek wtedy nie wydaje się być dziwny hmm ? ;)

A co ma na celu takie udziwnianie ?
Przecież wystarczy zwrócić NULL w przypadku pustego bufora, A zabawy w sprawdzanie czy coś nadeszło (bo znak przychodzący może być NULLem) są troszeczkę trudne gdy w przerwaniu jest wycinany jeden znak z pary CR LF (bo jeśli sprawdzamy czy przyszedł null to chyba dane przychodzące obejmują cały zakres 8 bitów).

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


I czemu jeszcze nikt się jeszcze nie przyczepił do listingu (#3) ? ;)

Buczek napisał(a):
... mieli ... nie wyświetla ...


Jak coś nie działa to debugujesz u podstaw - w twoim przypadku należy sprawdzić czy transmisja rs232 w ogóle działa.

_________________
AVR-UART-lib
AVR-FAST-ENCODER
RFM7x-lib



Ostatnio edytowano 25 maja 2015, o 16:48 przez jnk0le, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 maja 2015, o 20:11 
Offline
Moderator
Avatar użytkownika

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

jnk0le napisał(a):
A co ma na celu takie udziwnianie ?

Jakie udziwnienie - zakładam na przyszłość odbiór binarki, więc wtedy przesyłanie NULA mija się z celem bo to normalny bajt. Odpowiedź w postaci dwóch bajtów to dodatkowo możliwość przekazywania rozszerzonych komunikatów błędów np: -1, -2 ... itd To nie żadne udziwnienie tylko normalna technika programowania w C.

------------------------ [ Dodano po: 1 minucie ]

Cytuj:
A Consola pokazuje coś takiego

A consola pokazuje CAŁKIEM COŚ innego - to żółte podkreślenie to nie żaden błąd kompilacji, jakbyś sukcesywnie oglądał moje poradniki - chociażby tylko te o programowaniu WIFI to byś wiedział o co chodzi a także jak można i pozbyć się tej żółtej pchełki na dwa sposoby jeśli cię drażni.

------------------------ [ Dodano po: 2 minutach ]

poczytaj te błędy z konsoli i zobacz jakich funkcji nie masz zdefiniowanych

_________________
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: 20 maja 2015, o 20:23 
Offline
Użytkownik

Dołączył(a): 13 lut 2015
Posty: 99
Pomógł: 6

mirekk36 napisał(a):
jnk0le napisał(a):
A co ma na celu takie udziwnianie ?

Jakie udziwnienie - zakładam na przyszłość odbiór binarki, więc wtedy przesyłanie NULA mija się z celem bo to normalny bajt. Odpowiedź w postaci dwóch bajtów to dodatkowo możliwość przekazywania rozszerzonych komunikatów błędów np: -1, -2 ... itd To nie żadne udziwnienie tylko normalna technika programowania w C.


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 czemuś takiemu uniknąłem scalania a następnie wyłuskiwania bajtów, no i działa analogicznie do scanf'a ;)

_________________
AVR-UART-lib
AVR-FAST-ENCODER
RFM7x-lib



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 maja 2015, o 21:16 
Offline
Użytkownik

Dołączył(a): 05 wrz 2012
Posty: 47
Pomógł: 0

Mirek

consola wyświetla że mam nie zdefiniowaną funkcję uart_puts_P, ale przeglądam twój poradnik i ty też nigdzie jej nie definiowałeś a tobie się kompilowało bez problemów.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 maja 2015, o 22:21 
Offline
Moderator
Avatar użytkownika

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

jnk0le napisał(a):
dzięki czemuś takiemu uniknąłem scalania a następnie wyłuskiwania bajtów, no i działa analogicznie do scanf'a

Ależ oczywiście, że można w C to robić na wiele sposobów, poprzez argumenty również w związku ze wskaźnikami ;) ale to o czym piszę nie jest także niczym nowym i osobliwym

------------------------ [ Dodano po: 2 minutach ]

Buczek napisał(a):
Mirek

consola wyświetla że mam nie zdefiniowaną funkcję uart_puts_P, ale przeglądam twój poradnik i ty też nigdzie jej nie definiowałeś a tobie się kompilowało bez problemów.


Bo sobie ją po prostu dopisałem - zdaje się, że w książce jej nie ma ... no ale ... zajrzyj do książki nawet do Bluebooka, albo i do Greenbooka chociażby do biblioteki LCD i zobacz jak się taką funkcję tworzy

lcd_str_P()

w Bluebooku opisywałem o co chodzi w funkcjach z postfixem _P ... warto o tym pamiętać - żeby później gdy się to widzi nie być skonsternowanym i umieć sobie poradzić trzema ruchami szpady ;)

_________________
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: 20 maja 2015, o 23:19 
Offline
Użytkownik

Dołączył(a): 05 wrz 2012
Posty: 47
Pomógł: 0

Zajrzę jutro, dzisiaj już biorę moją szpadę pod kołdrę i idę spać;)
dzięki za nocny pojedynek z serwerem, mam coś ciekawego w głowie, nie do końca wiem czy da się to wykonać na Twoim module Wifi ale powalczę z tym serwerem do ostatniej kropli krwi lub złamania szpady;).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 maja 2015, o 12:58 
Offline
Użytkownik

Dołączył(a): 13 lut 2015
Posty: 99
Pomógł: 6

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

Tak jakby co ;)

_________________
AVR-UART-lib
AVR-FAST-ENCODER
RFM7x-lib



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 maja 2015, o 18:54 
Offline
Użytkownik

Dołączył(a): 05 wrz 2012
Posty: 47
Pomógł: 0

czy ja tą definicję muszę dopisać MK_USART?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 maja 2015, o 19:27 
Offline
Użytkownik

Dołączył(a): 13 lut 2015
Posty: 99
Pomógł: 6

Nie, ale będziesz musiał zawsze wpisywać stringi w PSTR("costam")

_________________
AVR-UART-lib
AVR-FAST-ENCODER
RFM7x-lib



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

Dołączył(a): 05 wrz 2012
Posty: 47
Pomógł: 0

Nie rozumem tego wcale:
w tórym miejscu definicja tej funkcji musi się znajdować aby ten serwer ruszył. Mirek twierdzi że ją sobie gdzieś dopisał ale gdzie?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 maja 2015, o 20:38 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

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


oraz to co niżej do pliku mkuart.h:

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 maja 2015, o 20:46 
Offline
Moderator
Avatar użytkownika

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

anshar napisał(a):
To co niżej wklej do pliku mkuart.c:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


oraz to co niżej do pliku mkuart.h:

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


To rozwiązanie polecam bardziej niż to z dodatkowym makrem, które pomija konieczność wpisywania PSTR()

_________________
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: 21 maja 2015, o 20:52 
Offline
Użytkownik

Dołączył(a): 13 lut 2015
Posty: 99
Pomógł: 6

mirekk36 napisał(a):
anshar napisał(a):
To co niżej wklej do pliku mkuart.c:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


oraz to co niżej do pliku mkuart.h:

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


To rozwiązanie polecam bardziej niż to z dodatkowym makrem, które pomija konieczność wpisywania PSTR()

Z tego co widzę pojawiła się lepsza alternatywa mojej funkcji, ale co takiego złego w makrze na PSTR() ?


Autor postu otrzymał pochwałę

_________________
AVR-UART-lib
AVR-FAST-ENCODER
RFM7x-lib



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 maja 2015, o 20:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Czytelność kodu?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 maja 2015, o 20:57 
Offline
Moderator
Avatar użytkownika

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

jnk0le napisał(a):
Z tego co widzę pojawiła się lepsza alternatywa mojej funkcji, ale co takiego złego w makrze na PSTR() ?

Alternatyw może być tyle ilu programistów na świecie i każda jest dobra ...

Ja nie mówię - że ta czy siamta jest najlepsza - ot po prostu skłaniam się do tej bez dodatkowych makr - właśnie ze względu na czytelność kodu ale też ze względu na to - że w 90% przypadkach kodów używa się PSTR() ... wtedy jest wszystko jasne .... makro to "zasłania" i później po stokroć łatwiej o pomyłkę ... więc nie tylko czytelność kodu - bo jak nie widać PSTR() to gdzieś w głowie zaciera się później różnica - i o co w tym chodzi ....

Ale jeśli sam piszesz swoje programy i tylko ty ich używasz i tak się przyzwyczaiłeś - porobiłeś swoje makra - to czemu miałbyś ich nie używać ;) działa? - działa .... więc nie ma problemu

_________________
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: 21 maja 2015, o 21:31 
Offline
Użytkownik

Dołączył(a): 13 lut 2015
Posty: 99
Pomógł: 6

Nie żebym sie czepiał czy coś, ale co do czytelności makr

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 przypadkiem bardziej czytelne od czterokrotnego wyliczania MYUBBR, gdzieś daleko wyżej ? ;)

_________________
AVR-UART-lib
AVR-FAST-ENCODER
RFM7x-lib



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 maja 2015, o 21:57 
Offline
Użytkownik

Dołączył(a): 05 wrz 2012
Posty: 47
Pomógł: 0

Panowie wracając do tematu,
teraz wszystko się kompiluje, ale strona się nie ładuje. Pewnie nie mam komunikacji po Uarcie. Sprawdziłem mkuart.c, przerwania i rejestry mam poprawione. Chyba że jest jakiś babor którego nie widzę.
Na razie idę spać jutro sprawdzę jeszcze konfigurację Wifi.

Zamieszczam kod może wam coś się rzuci w oczy czego ja nie widzę

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



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

Dołączył(a): 13 lut 2015
Posty: 99
Pomógł: 6

Tak jak pisałem wcześniej, zacznij od uart_puts("hello world") i patrzysz czy putty ci coś wyświetla.

_________________
AVR-UART-lib
AVR-FAST-ENCODER
RFM7x-lib



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

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