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



Teraz jest 3 cze 2026, o 05:12


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 62 ]  Przejdź na stronę Poprzednia strona  1, 2, 3  Następna strona
Autor Wiadomość
PostNapisane: 2 cze 2013, o 17:38 
Offline
Moderator
Avatar użytkownika

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

Jeszcze raz powiem - masz na DVD dobrze działający przykład - dlaczego się na nim nie wzorujesz ? nie sprawdzisz ?

wiem i rozumiem że chcesz napisać to po swojemu i super .... no ale piszesz kod tak że nie da się go normalnie czytać i totalnie wbrew wszystkim zasadom dobrego programowania o jakich piszę w książce - więc tym bardziej warto podglądać kody na DVD i się uczyć.

u ciebie makra kończysz średnikami :( masakra

stosujesz nazwy które w ogóle nic nie mówią

Kod:
#define ZEGAR_ON PORTA


piszesz kod w C czy preprocesorze?

Kod:
#define TIMER_CTC TCCR0 |= (1<<WGM01); // załączam trym CTC timera
#define TIMER_1024 TCCR0 |= (1<<CS02)|(1<<CS00); // ustawiay dzielnik taktowanie na 1024
#define TIMER_39 OCR0 = 39; // dodatkowy dzielnik dzieki któremy uzyskamy taktowanie około 200 hz
#define TIMER_CTC_ON TIMSK |= (1<< OCIE0); // zezwolenie na wykonywanie przerwań w trybie CTC


takie podejście to niestety masakra

to takich kilka baboli ci pokazuję

_________________
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: 2 cze 2013, o 18:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2013
Posty: 56
Pomógł: 0

Nie wiem kurde,
jedyne co zauważyłem to że brak mi tego sei(); ale to nic nie daje.

jak pisze wewnątrz while to się diody zapalają a to przerwanie nie działa.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 cze 2013, o 18:11 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

Spróbuj zakomentować linie

60. ZEGAR_ON = (ZEGAR_ON & 0xF0);
w przerwaniu
bo chyba tu zerujesz całą młodszą połówkę portuA


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 cze 2013, o 18:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2013
Posty: 56
Pomógł: 0

Teraz działa.
Znowu muszę sobie wszystko rozpisać, żeby to wyczaić.
Dzięki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 cze 2013, o 18:32 
Offline
Moderator
Avatar użytkownika

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

Cytuj:
Nie wiem kurde,


nie masz płyty DVD do książki ?

_________________
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: 8 cze 2013, o 20:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2013
Posty: 56
Pomógł: 0

Jak uruchomić LCD na tej płytce??
Naumiem uruchomić nawet tego gotowego programu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 cze 2013, o 22:11 
Offline
Moderator
Avatar użytkownika

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

NOOB napisał(a):
Jak uruchomić LCD na tej płytce??
Naumiem uruchomić nawet tego gotowego programu.


a przyznaj się szczerze tak z ręką na sercu - przeczytałeś chociaż raz a porządnie rozdział o LCD ? o tym jak się tworzy bibliotekę do LCD ?

pytasz jak uruchomić ? a napisałeś chociaż co i jak w ogóle podłączyłeś ? jak skonfigurowałeś podłączenia w pliku nagłówkowym ? - wiesz w ogóle co to konfiguracja w tym pliku nagłówkowym ? .....

może jednak zacznij zadawać obszerniejsze pytania bo jak będziesz je tak skracał to kolejne będzie się składało może z jednego albo połówki wyrazu :(

_________________
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 cze 2013, o 11:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2013
Posty: 56
Pomógł: 0

Przeczytałem nawet 2 razy i nic nie zrozumiałem.
Więc pomyślałem że uruchomię gotowy program, i zacznę śledzić jego działanie i doczytywać wszystko z książki raz jeszcze.
Ale ja tego nawet uruchomić nie umiem. Prawdopodobnie źle podpinam, a nie wiem gdzie to podpiąć.
Przypiąłem do portu B ale nic się dzieje. Tylko się świeci ale to back light gdzie nie przypnę to się świeci



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 cze 2013, o 16:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2013
Posty: 56
Pomógł: 0

[syntx=c]// tu konfigurujemy port i piny do jakich podłączymy linie D7..D4 LCD
#define LCD_D7PORT B
#define LCD_D7 7
#define LCD_D6PORT B
#define LCD_D6 6
#define LCD_D5PORT B
#define LCD_D5 5
#define LCD_D4PORT B
#define LCD_D4 4


// tu definiujemy piny procesora do których podłączamy sygnały RS,RW, E
#define LCD_RSPORT B
#define LCD_RS 0

#define LCD_RWPORT B
#define LCD_RW 1

#define LCD_EPORT B
#define LCD_E 2[/syntax]

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


w książce pisze że w warunku if są sprawdzane 4 młodsze bajty. ale dlaczego akurat 4, gdzie to jest zapisane żeby brać pod uwagę 4 a nie przykład 8



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 cze 2013, o 16:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2013
Posty: 56
Pomógł: 0

po odłączeniu ekranu wszystko hula,
Ale dlaczego sprawdza 4 najmłodsze bity, a nie 5 lub 6



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 cze 2013, o 17:01 
Offline
Moderator
Avatar użytkownika

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

NOOB napisał(a):
w książce pisze że w warunku if są sprawdzane 4 młodsze bajty. ale dlaczego akurat 4, gdzie to jest zapisane żeby brać pod uwagę 4 a nie przykład 8


i w tej samej książce masz to napisane - w rozdziale o LCD przy inicjalizacji gdy przechodzimy na tryb 4-bitowy

_________________
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 cze 2013, o 17:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2013
Posty: 56
Pomógł: 0

sprawdza 4 bo jesteśmy w trybie 4 bitowym? a jak by był tryb 8 bitowy to by sprawdzał 8??



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 cze 2013, o 17:11 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2013
Posty: 56
Pomógł: 0

ale gdzie jest uwarunkowane że sprawdza akurat 4 bity?? gdzie??
i jak wygląda takie sprawdzanie??
Musi być na pierwszym miejscu 1 żeby była prawda czy może być gdziekolwiek?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 cze 2013, o 17:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2013
Posty: 56
Pomógł: 0

czyli sprawdza tylko pierwszy bit??



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 cze 2013, o 17:33 
Offline
Moderator
Avatar użytkownika

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

NOOB napisał(a):
ale gdzie jest uwarunkowane że sprawdza akurat 4 bity?? gdzie??


Niestety nie ominie cię tutaj poczytanie i to sporo oraz zrozumienie jak działają wyświetlacze LCD zgodne z HD44780 .... jeśli mało ci informacji w książce to akurat tak się składa że internet aż trzeszczy od informacji w tym zakresie - chodzi o te wszystkie przebiegi czasowe i takie czyste podejście elektroniczne - bo zadajesz pytania w ogóle w oderwaniu od wszystkiego. Ja rozumiem że można czegoś nie rozumieć - tym bardziej jak się nie ma nic wspólnego z elektroniką tylko programowaniem - no ale na ZEUSA - to wtedy nie można pomijać tych informacji bo nic nie zrozumiesz .... a z pytań wynika mi że ty chcesz na skróty jakby

_________________
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 cze 2013, o 17:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2013
Posty: 56
Pomógł: 0

a ja nie wiem czego ty nie rozumiesz w moim pytaniu.
Dlaczego sprawdza 4 bity, po czym mam to poznać.
oraz kiedy jest prawda kiedy na pierwszym bicie jest 1 czyli 0001
czy na wszystkich 1111, czy jedynka może być gdziekolwiek 0100.
I dlaczego jest tak ciężko udzielić wprost odpowiedzi.



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

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

Cytuj:
I dlaczego jest tak ciężko udzielić wprost odpowiedzi.


po prostu trudno mi pisać od nowa książkę na forum .... w książce MASZ WYRAŹNIE napisane że sprawdzany jest bit BusyFLAG na 7 bicie a w dokumentacji LCD też masz to napisane. Ja chętnie pomagam każdemu - ale najpierw ustalmy że chociaż spróbujemy razem odnosić się do tego co przekazałem w książce - a ty jedyne co piszesz - to że przeczytałeś i nic nie zrozumiałeś .... to pokaż może - tzn odnieś się do fragmentu w którym piszę o BusyFlag i nie rozumiesz

proszę bardzo co masz np w książce:

Obrazek

poza tym zobacz:

Obrazek

Obrazek

i co ? więc skończ proszę z tym tonem na forum bo zaczyna mi się to nie podobać.

_________________
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 cze 2013, o 18:24 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2013
Posty: 56
Pomógł: 0

czyli każdy if odpowiada za jeden bit. a cała funkcja odpowiada ze za polówkę bajtu tak??



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 cze 2013, o 17:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2013
Posty: 56
Pomógł: 0

W rozdizale o LCD jest coś takiego

LCD_FUNC, LCD_FUNC8B, LCD_FUNC4B, LCD_FUNC2L, LCD_FUNC5x7
LCDC_ONOFF, LCD_DISPLAYON, LCDC_CURSOROFF, LCDC_ENTRYR,
LCD_CLS, LCD_HOME

W kodzie jest że to komendy sterujące i maja liczby zapisane szesnastkowo.
Co to za liczby?? za co one odpowiadają??



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 cze 2013, o 17:52 
Offline
Użytkownik

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

To te komendy:
Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 wrz 2013, o 15:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2013
Posty: 56
Pomógł: 0

Postanowiłem wrócić do sprawy tego wyświetlacza LCD.
Autor książki pokazuje jak zrobić od razu uniwersalną bibliotekę.
I jest tam tego taki natłok że się gubię.

Chcę sobie zrobić prosty programik który pisze jaki tekst, bez zbędnych innych funkcji.
Najprostszą możliwość jaka się da.
Czy poda mi ktoś w punktach taki algorytm co zrobić.
Załóżmy że RW jest na stałe ustawione 0 tylko zapis żeby było łatwiej

Tak samo zrobiłem z wyświetlaczem 7-seg tak żeby w ogóle zapalić jedną diodę, ale to był łatwiejszy temat.

Nad LCD siedzę już 3 dzień i potrafię tylko zmieniać tekst w gotowcu.



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

Dołączył(a): 28 maja 2013
Posty: 56
Pomógł: 0

a powie mi ktoś chociaz jak czytac ta tabelkę z rozkazami??

jak mam

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


to coś LCDC_FUNC|LCDC_FUNC4B|LCDC_FUNC2L|LCDC_FUNC5x7 daje w wyniku 00101000
i jak mam na to patrzeć w tabelce na która linijkę??



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 wrz 2013, o 13:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2013
Posty: 56
Pomógł: 0

Udało mi się uruchomić wyświetlacz dzięki, wyjaśnieniu jakie podesłał mi inny użytkownik forum.
czy mogę chociaż prosić o wyjaśnienie jak działa ustawianie kursora

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


w tabelce nie znalazłem ustawianie kursora do następnego wiersza, a jak chcę przesunąć kursor np. o 10 miejsc to mi tu jest potrzebna pętla z rozkazem odpowiednim a tu niema

Ponieważ masz wystarczającą liczbę postów aby wiedzieć że przy wstawianiu kodów stosujemy syntax=c - Leci ostrzeżenie - Różowy J.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 wrz 2013, o 15:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2013
Posty: 56
Pomógł: 0

rozumiem że nie pomożecie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 wrz 2013, o 15:22 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3230
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 91

Gdzie jest napisane że odpowiedź/pomoc ma by udzielona natychmiast?

Trzeba poczekać, ludzie wrócą z pracy/szkoły i ktoś odpowie.

_________________
http://www.jaglarz.info



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 wrz 2013, o 16:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2013
Posty: 56
Pomógł: 0

ale używam lcd_write_cmd czyli wysyłam komendę, a w tabelce nie mam czegoś takiego. Jest cos takiego jak przesunąć kursor w prawo o 1 pozycje, to musiałbym pętle jakaś zrobić.
I co oznacza to sumowanie (0x80 + y + x) i dlaczego jest 0x80??



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 wrz 2013, o 17:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2013
Posty: 56
Pomógł: 0

chodzi mi o tabelkę z rozkazami



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 wrz 2013, o 08:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 sie 2013
Posty: 230
Lokalizacja: Zabrze
Pomógł: 17

NOOB napisał(a):

w tabelce nie znalazłem ustawianie kursora do następnego wiersza, a jak chcę przesunąć kursor np. o 10 miejsc to mi tu jest potrzebna pętla z rozkazem odpowiednim a tu niema



Nie ma potrzeby ustawiania kursora w następnym wierszu jakimś specjalnym rozkazem wbudowanym w mikrokontroler LCD. Najprościej: każda pozycja na LCD (nie zależnie od linii) ma swój adres i mikrokontroler wyświetlacza widzi tylko te adresy. O tym pisał już GwynBleidD. Gdy chcesz ustawić drugą linię wyświetlacza po prosu w tej funkcji podajesz y = 1, a reszta jest wyliczana. A jak chcesz przesunąć kursor o 10 miejsc to zwiększasz wartość x o dziesięć (x = x+10) (np. robisz swoją funkcję w tym celu) i taką wyliczoną wartość podajesz na funkcje lcd_locate, a ona wyznacza adres tej przesuniętej pozycji na wyświetlaczu.

_________________
40-32:2=4!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 wrz 2013, o 19:11 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2013
Posty: 56
Pomógł: 0

powie mi ktos dlaczego timer się nie włącza??

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


jak wkleję zawartość ISR do while to działa ale z nadaniem odpowiedniego opóźnienia.
tylko zmienna licznik przed while i bez static



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 wrz 2013, o 19:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2013
Posty: 56
Pomógł: 0

teraz działa, dzięki



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: 62 ]  Przejdź na stronę Poprzednia strona  1, 2, 3  Następna strona

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