Odpowiedz 
 
Ocena wątku:
  • 3 Głosów - 3.33 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Programowanie w języku C w środowisku AVR Studio4
SQ9JXB Offline
Początkujący
**

Liczba postów: 64
Dołączył: 22-03-2010
Post: #41
RE: Programowanie w języku C w środowisku AVR Studio4
"Proszę napisać, czy po usunięciu z kodu zbędnych opóźnień, działa u was wszystko OK, "

Na wyświetlaczu nie ma nic.

Dopiero wprowadzenie poprawki Kolegi Bogdana SP3IQ jest wyświetlenie ABCD_


Jak uruchomić podświetlenie wyświetlacza?

Janek SQ9JXB
(Ten post był ostatnio modyfikowany: 24-01-2012 10:32 przez SQ9JXB.)
23-01-2012 12:03
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP9LAP Offline
Jarek
**

Liczba postów: 53
Dołączył: 15-03-2010
Post: #42
RE: Programowanie w języku C w środowisku AVR Studio4
Pin BL do masy.
(Ten post był ostatnio modyfikowany: 24-01-2012 16:00 przez SP9LAP.)
24-01-2012 16:00
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ2EER Offline
Jacek sk
***

Liczba postów: 182
Dołączył: 17-06-2009
Post: #43
RE: Programowanie w języku C w środowisku AVR Studio4
Witam - mam prośbę do Marcia prowadzącego kurs - czy możesz podać jak powinny być poustawiane fusebity dla atmegi32 z kwarcem 16MHz - u mnie coś złe działa wszystkie programy działają ale jakby były spowolnione kilka razy - 1 sekunda trwa jak pisałem wcześniej nie 4 sekundy a 12 sekund to jest sprawdzone na pierwszym i drugim programie gdzie diody powinny teoretycznie zapalać się co 1 sekundę - dopisanie w pierwszej linii programu #define F_CPU 16000000 nic nie dało - pozdrawiam Jacek.
24-01-2012 22:19
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP4EJT Offline
Marcin
****

Liczba postów: 340
Dołączył: 06-05-2011
Post: #44
RE: Programowanie w języku C w środowisku AVR Studio4
Proszę Jacku, zaznaczyłem odpowiedzialną za to część czerwoną elipsą:
İmage
To będzie lekcja 8 :
Nasz programik potrafi wyswietlać na LCD tylko pojedyńcze znaki - korzystamy w tym celu oczywiście z funkcji bajt_lcd()
Przydałaby się funkcja wyświetlająca całe wyrazy ... żeby to zrobić musicie poznać Tablice ... Przykłady zapisu deklaracji tablicy:
Kod:
char tablica[10];
int liczby[];
Pierwsze to tablica o nazwie "tablica" składająca sie z 10 elementów char (czyli 8 bitowych),
Drugie to tablica, o któej nic nie wiadomo z ilu elementów sie składa, wiadomo natomiast że składa się z wartości int (czyli 16 bitowych).
Przy zapisie wyrazów(a nawet zdań) będziemy korzystać z tablic, które składają się ze znaków czyli char.
Kod:
char tab[]="jakis_wyraz"
tworzy tablicę o nazwie tab 12 elementową, bo jest 11 znaków + ostatni dodawany automatycznie - znacznik końca tablicy "\0" - specjalnie napisałem \0 to nie pomyłka. 0 (samo zero) potraktowane zostanie jako kolejny element tablicy - czyli znak ASCII o kodzie 48 (jeśli nie wiecie co to tablica znaków ASCII to poszukajcie w necie - przyda sie wam).
Wracamy do naszego ostatniego przykładu tablicy ... Jesli w kodzie swojego programu umieścicie definicje tej tablicy a po niej
Kod:
bajt_lcd(tab[3]);
to wyświetli wam czwarty znak tablicy (bo numeracja zaczyna sie od "0" ) - czyli literę i.
Jeśli umieścicie w kodzie
Kod:
bajt_lcd(tab[0]);
bajt_lcd(tab[7]);
to Atmega prześle do wyświetlacza pierwszy znak tablicy (czyli "j"), a następnie ósmy znak z tablicy (czyli "y").
Czyli już wiecie że liczba w nawiasie kwadratowym określa nam który znak z tablicy będzie brany pod uwagę.
Co zrobic by wyświetlały się całe tablice znaków (czyli całe napisy). Wklejcie na samym końcu kodu progrramu (przed ostatnim nawiasem klamrowym) to :
Kod:
char tab[]="to jest napis";
    int i=0;
    while(tab[i]!=0)
    {
        bajt_lcd(tab[i]);
        i=i+1;
    }
skompilujcie i uruchomcie, a zobaczycie efekt. Tłumaczę linijka po linijce co to znaczy:
1. definiujemy tablice znaków o nazwie tab i treści to jest napis (+ znacznik końca tablicy czyli zero, którego tu nie widzimy - ale zawsze na końcu każdej tablicy jest)
2. deklarujemy, że będziemy używac zmiennej i która początkowa wartość będzie równa 0
3. pętla while będzie wykonnywać polecenia pomiędzy nawiasami klamrowymi do momentu kiedy i-ty element tablicy będzie zerem - czyli znacznikiem końca tablicy. Dokładnie zappis ten oznacza "wykonaj jesli i-ty element tab jest różny od zera. != oznacza "różny" (nierówny)
5. wyślij do lcd i-ty element tablicy (pamiętamy że przy deklaracji ustawiliśmy wartość i na 0, więc zacznie wyświetlać od pierwszego (zerowego dla Atmegi) elementu tablicy
6. zwiększ wartość i o 1.
Potem pętla wraca do ponownego sprawdzenia warunku czy i-ty (następny) element tablicy nie jest już zerem czyli znacznikiem końca tablicy. Mam nadzieję że to zrozumiecie ... Spróbujcie to uruchomic u siebie a ja jutro wstawie nowa wersję obsługi wyświetlacza. Jesli wstawicie zamiast i=i+1; to: i=i+2; to wyświetli Wam oczywiście co drugi znak tablicy ... jednak może przeoczyć znacznik końca tablicy !
(Ten post był ostatnio modyfikowany: 25-01-2012 4:41 przez SP4EJT.)
25-01-2012 0:42
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ2EER Offline
Jacek sk
***

Liczba postów: 182
Dołączył: 17-06-2009
Post: #45
RE: Programowanie w języku C w środowisku AVR Studio4
Witam - dzięki Marcin - rozumiem ze pozostałe fusebity mam poustawiać tak jak na twoim obrazku?
25-01-2012 0:45
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP4EJT Offline
Marcin
****

Liczba postów: 340
Dołączył: 06-05-2011
Post: #46
RE: Programowanie w języku C w środowisku AVR Studio4
(25-01-2012 0:45)SQ2EER napisał(a):  Witam - dzięki Marcin - rozumiem ze pozostałe fusebity mam poustawiać tak jak na twoim obrazku?
Chyba nie, wydaje mi sie że tylko ten zaznaczony przeze mnie jest w twoim przypadku istotny.

Ludzie, nie róbcie sobie jaj ! Nie wierze w to że wszyscy "kursanci" wszystko rozumieją. PYTAJCIE, Pytajcie i pytajcie - postaram się nie pozostawić Was bez pomocy. Szkoda byłoby żeby ktoś zrezygnował z okazji "ujeżdżenia" Atmegi i C. bo czegoś nie rozumie i myśli że potem będzie jeszcze trudniej. Z każdym dniem nauki jest coraz bardziej z górki. Chyba że nadal chcecie zazdrościć innym ... :/
(Ten post był ostatnio modyfikowany: 25-01-2012 11:19 przez SP4EJT.)
25-01-2012 11:18
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ6ADE Offline
Radjoamator.
****

Liczba postów: 539
Dołączył: 05-04-2010
Post: #47
RE: Programowanie w języku C w środowisku AVR Studio4
Spójrz na stronę nr. 25 dokumentacji. Tabelka 2
Bity CKSEL3-0
Może masz włączony oscylator RC ?

tylko na FM UKF -> Just True Sound Hi-Fi Smile
25-01-2012 13:10
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ9JXB Offline
Początkujący
**

Liczba postów: 64
Dołączył: 22-03-2010
Post: #48
RE: Programowanie w języku C w środowisku AVR Studio4
(25-01-2012 13:10)SQ6ADE napisał(a):  Spójrz na stronę nr. 25 dokumentacji. Tabelka 2

A nie można jaśniej dla laików?



Cytat:Nie wierze w to że wszyscy "kursanci" wszystko rozumieją.

Ano nie rozumieją co niektórzy, bo zapewne zapomniałeś o jednym.
Piszesz o Tablicy i jej deklaracjach tak?

A to może na początek wyjaśnienie co to jest Tablica, jej budowa itd.

NO chyba że pozostali wszystko wiedzą, programowanie mają w jednym palcu, to wiedzą co się z czym je. To dla takich przedszkolaków jak JA nie warto tego pisać tylko ciągnąć lekcje dalej.
A JA sobie w wolnej chwili będę kombinował co i jak.

Pozdrawiam

Janek SQ9JXB
25-01-2012 19:46
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP4EJT Offline
Marcin
****

Liczba postów: 340
Dołączył: 06-05-2011
Post: #49
RE: Programowanie w języku C w środowisku AVR Studio4
Janek, nie ma problemu, spróbujemy podciągnąć twoje wiadomości na ten temat.
Żeby było mi łatwiej napisze kilka pytań a ty szczerze odpowiedz których zagadnień nie znasz:
1. bramka logiczna
2. stan logiczny
3. bit
4. bajt
5. binarny zapisz liczb
6. szesnastkowy zapis liczb
7. ciąg liczb - ze szkoły (matematyka)
8. ciąg znaków
9. zmienna typu char
10. zmienna typu int
11. czy umiesz sprawdzić do którego portu Atmegi masz podłączony wyświetlacz ?
12. czy wiesz jak numeruje się poszczególne wyprowadzenia portów i ile jest portów w Atmedze 32 (bo taką chyba masz )

Tyle pytań. Najlepiej sformułuj odpowiedź 1. wiem 2. nie wiem 3. wiem .... itd ...
(Ten post był ostatnio modyfikowany: 25-01-2012 21:49 przez SP4EJT.)
25-01-2012 21:09
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ9JXB Offline
Początkujący
**

Liczba postów: 64
Dołączył: 22-03-2010
Post: #50
RE: Programowanie w języku C w środowisku AVR Studio4
Tu nie chodzi o podciągnięcie MOICH wiadomości tylko o informacje pomocnicze prawda?
Bo jeżeli mam szukać informacji samemu to nie ma sensu sie uczyc w Moim przypadku
Ale z materiałów wnioskuję że trzeba być informatykiem aby to przerabiać.

Pytania 3; 4; 5; 6 - nie stanowią problemu.

Pozostałe niestety tak. Ale mną sie nie przejmuj.

Janek SQ9JXB
25-01-2012 21:47
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Odpowiedz 


Skocz do:


Użytkownicy przeglądający ten wątek: 25 gości