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



Teraz jest 7 lut 2025, o 22:53


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 29 ] 
Autor Wiadomość
PostNapisane: 19 lut 2013, o 16:46 
Offline
Użytkownik

Dołączył(a): 19 lut 2013
Posty: 50
Pomógł: 0

Witam, mam problem z konfiguracją terminala PuTTy, szukałem w internecie, ale nie znalałem, jednak dowiedziałem się o filmie gdzie Pan Mirek dokładnie opisał jak tego termianala skonfigurować, aczkolwiek nie mogę znaleźdź tego filmu w internecie. Czy mógłbym prosić o link do tego filmiku?

Pozdrawiam.



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

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

Poprzeglądaj mojego bloga

www.mirekk36.blogspot.com

i videoporadniki związane np z modułami Bluetooth

_________________
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: 19 lut 2013, o 18:28 
Offline
Użytkownik

Dołączył(a): 19 lut 2013
Posty: 50
Pomógł: 0

Ok uruchomiłem PuTTy, jednak chciał bym przesłać tam wartość zmiennej i, a widzę tylko zielony prostokąt.
Dopiero zaczynam z UART, ale bardzo bym chciał to opanować.
Posiadam moduł startowy atmega8 z FT232, także podłączenia są prawidłowo podłączone.

Proszę, oto program:

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


Uczyłem się z pewnego poradnika, jednak nie rozumiem tego fragmentu:

UBRRH = (BAUD_PRESCALE >> 8);
UBRRL = BAUD_PRESCALE;

Skonfigurowałem PuTTy na speed 4800, COM3.

Czy w programie jest coś nie tak?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2013, o 18:51 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

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

2. Lepiej umieść to w pętli nieskończonej, bo dostaniesz tylko 1 znak
3. To jest wpisanie starszego i młodszego bajtu:
np. BAUD_PRESCALE = 0xAABB
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2013, o 19:02 
Offline
Użytkownik

Dołączył(a): 19 lut 2013
Posty: 50
Pomógł: 0

Ok, teraz zielony prostokąt po odbiorze znaku zmienia wiersz jak po enterze, ale nie widzę tego znaku, tylko czarny ekran. Jeśli umieściłem w pętli, to po jakimś czasie pokazało się 'Ę' na terminalu, ale nie mam pojęcia dlaczego. Zapala się również dioda Rx jeśli nacisnę backspace lub PPM na terminalu, jeśli przesyłam znak dioda Tx, także działa przesyłanie danych, pozostaje tylko kwestia zobaczenia tego w terminalu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2013, o 19:07 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Upewnij się że częstotliwość taktowania mikrokontrolera jest zgodna z symbolem F_CPU

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2013, o 19:10 
Offline
Użytkownik

Dołączył(a): 19 lut 2013
Posty: 50
Pomógł: 0

W pliku makefile ustawiłem częstotliwość taktowania na 1Mhz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2013, o 19:15 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Jak masz w makefile to w programie F_CPU jest niepotrzebne.
Zauważ, że w makefile i w programie możesz sobie wpisać cokolwiek a nie zmieni to częstotliwości taktowania mikrokontrolera, którą zmienia się przestawiając fusebity lub zmieniając rezonator kwarcowy.

Najprostszy test program migający diodą z wykorzystaniem _delay_ms(). Jak się czas zgadza z tym ustawionym w _delay_ms to F_CPU jest równe częstotliwości taktowania mikrokontrolera.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2013, o 19:23 
Offline
Użytkownik

Dołączył(a): 19 lut 2013
Posty: 50
Pomógł: 0

No cóż, czas ustawiony w delay_ms nie zgadza mi się od jakiegoś dłuższego czasu :oops: a ja miałem pewność że to jednak 1Mhz. :shock:
Spróbuję ustawić to jakoś ustawić za pomocą fusebitów.

Edit:

Przecież mam rezonator kwarcowy 16 Mhz na tej płytce, ustawią w związku z tym może transmisję 9600 bodów?



Ostatnio edytowano 19 lut 2013, o 19:28 przez miccaldo, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2013, o 19:26 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

F_CPU zmień z 1000000UL na 16000000UL, a prędkość możesz wybrać dowolną.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2013, o 19:35 
Offline
Użytkownik

Dołączył(a): 27 lis 2012
Posty: 291
Pomógł: 6

A może zamiast Putty spróbujesz Forum\Poradniki\Niezbędne dla rozdz. 5.8 RS232C- Instrukcja terminala v1.9b! Polecam też Forum\Poradniki\Niezbędne dla rozdz. 5.8 Podstawy RS232C



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2013, o 19:49 
Offline
Użytkownik

Dołączył(a): 19 lut 2013
Posty: 50
Pomógł: 0

Ok, ustawiłem delay_ms(1000), ale miga dość szybko, ale mam rezonator 16Mhz, a w makefile ustawiłem 1Mhz, więc może plik makefile zmienie. Myślę że ten terminal PuTTy jest ok, później może posprawdzam inne i zobaczę który będzie najlepszy.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2013, o 19:53 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Tak. W makefile zmień na 16000000UL.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2013, o 20:03 
Offline
Użytkownik

Dołączył(a): 19 lut 2013
Posty: 50
Pomógł: 0

No nie wiem, ustawiłem plik makefile na 16Mhz, ale przy delay_ms(1000) dioda co sekundę nie miga, zncznie szybciej. Może jednak zobaczyć w fusebitach?



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

Dołączył(a): 05 maja 2012
Posty: 256
Pomógł: 3

No chyba jasne jest, że również w fusebitach musisz na zewnętrzne 16MHz przestawić... Bo program wie, ze chciałbyś mieć 16Mhz, ale tego jeszcze mikrokontroler nie wie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2013, o 20:39 
Offline
Użytkownik

Dołączył(a): 19 lut 2013
Posty: 50
Pomógł: 0

Zmieniłem na zewnętrzny kwarc, 8 - 16 Mhz, w makefile również ustawione jest 16 Mhz i dioda miga bardzo szybko, prawie niezauważalnie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2013, o 20:48 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Może pokażesz program. Po zmianie F_CPU zrób Clean i Build i dopiero wtedy zaprogramuj procesor.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2013, o 21:05 
Offline
Użytkownik

Dołączył(a): 19 lut 2013
Posty: 50
Pomógł: 0

Oto program:

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


Sądzę że jednak może coś z tym plikiem makefile bo samemu tworzę go w winavr. Może spróbuję z eclipse.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2013, o 21:13 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

No w porządku. Warto przejść na Eclipse, ale spróbuj najpierw wyczyścić pliki wynikowe i skompilować na nowo. Możesz też wkleić to co tam się pojawia w konsoli podczas kompilacji. Bo to ewidentnie widać, że program czeka przykładowo 1 mln cykli zegara i dla 1MHz to opóźnienie 1 sekundy, ale dla zegara 16 razy szybszego to 1/16 sekundy.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lut 2013, o 14:13 
Offline
Użytkownik

Dołączył(a): 19 lut 2013
Posty: 50
Pomógł: 0

Ok, mam już Eclipse, ale nadal nie mogę uporać się z tym delay...
Screeny z Mkvcalculator:

Obrazek

Scr z Eclipse:

Obrazek

A tutaj jeszcze jakieś errory wyskakują:

Obrazek

Robiłem Clean pliku, kilka razy.

Może jeszcze z logi z konsoli:

14:05:39 **** Incremental Build of configuration Release for project UART ****
make all
Building file: ../main.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega8 -DF_CPU=16000000UL -MMD -MP -MF"main.d" -MT"main.d" -c -o "main.o" "../main.c"
Finished building: ../main.c

Building target: UART.elf
Invoking: AVR C Linker
avr-gcc -Wl,-Map,UART.map -mmcu=atmega8 -o "UART.elf" ./main.o
Finished building target: UART.elf

Invoking: AVR Create Extended Listing
avr-objdump -h -S UART.elf >"UART.lss"
Finished building: UART.lss

Create Flash image (ihex format)
avr-objcopy -R .eeprom -O ihex UART.elf "UART.hex"
Finished building: UART.hex

Create eeprom image (ihex format)
avr-objcopy -j .eeprom --no-change-warnings --change-section-lma .eeprom=0 -O ihex UART.elf "UART.eep"
c:\WinAVR-20070525\bin\avr-objcopy.exe: there are no sections to be copied!
make: [UART.eep] Error 1 (ignored)
Finished building: UART.eep

Invoking: Print Size
avr-size --format=avr --mcu=atmega8 UART.elf
AVR Memory Usage
----------------
Device: atmega8

Program: 118 bytes (1.4% Full)
(.text + .data + .bootloader)

Data: 0 bytes (0.0% Full)
(.data + .bss + .noinit)


Finished building: sizedummy


14:05:40 Build Finished (took 1s.156ms)

Niestety dioda miga nadal ze sporą częstotliwością.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lut 2013, o 14:53 
Offline
Moderator
Avatar użytkownika

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

miccaldo --> czy ty posiadasz pierwszą książkę ?

http://atnel.pl/mikrokontrolery-avr-jezyk-c.html

przecież tam masz wszystko jak na dłoni ... napisz tylko czego nie rozumiesz - bo kręcisz się w kółko na podstawowych błędach, patrzę na te twoje kody i widzę

a to

#define F_CPU xxxxxx w kodzie

a to jakieś

DDRC = 0x02; .......

albo

PORTC ^= _BV(PC5);

boisz się przesunięć bitowych ? czy jak ? ...

_________________
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 lut 2013, o 15:30 
Offline
Użytkownik

Dołączył(a): 19 lut 2013
Posty: 50
Pomógł: 0

Właśnie kupiłem całkiem niedawno pewną książkę ale nie był to zbyt dobry zakup, a nie wiedziałem jeszcze o Pana książce, ale będę musiał ją nabyć w najbliższym czasie.

Nie rozumiem dlaczego ta dioda nie miga w wyznaczonym czasie, chociaż częstotliwość taktowania procesora jest prawidłowa w fusebitach, jak i pliku makefile. Muszę się z tym uporać bo uniemożliwia mi to komunikację z termianalem.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lut 2013, o 15:35 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Nie wiem skąd takie dziwne błędy. Zainstaluj najnowsze WinAVR, a w Eclipse nie kopiuj projektu tylko utwórz nowy.

_________________
Dragonus Cracovus: Biomagia



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

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

miccaldo napisał(a):
Właśnie kupiłem całkiem niedawno pewną książkę ale nie był to zbyt dobry zakup, a nie wiedziałem jeszcze o Pana książce, ale będę musiał ją nabyć w najbliższym czasie.

Nie rozumiem dlaczego ta dioda nie miga w wyznaczonym czasie, chociaż częstotliwość taktowania procesora jest prawidłowa w fusebitach, jak i pliku makefile. Muszę się z tym uporać bo uniemożliwia mi to komunikację z termianalem.



to może na razie skup się na jednej rzeczy czyli np na prawidłowym miganiu diodą LED a terminal sobie odstaw na później bo za dużo rzeczy na raz próbujesz - popełniając podstawowe błędy. Prosty program na miganie diodą - no MEGA najprostszy i z informacją dokładnie jak to odpalić masz w razie czego w moim poradniku VIDEO

http://mirekk36.blogspot.com/2012/12/av ... aczac.html

proszę obejrzyj i sprawdź sam - zobaczysz, że w końcu coś wyjdzie - a później rzeczywiście jak będziesz mógł to zdobądź książkę - aby pozbyć się tych złych nawyków programowania, które szerzą niektóre kocie blogi bo się nie wykaraskasz z tego

jeśli coś ci nie wyjdzie jak w tym poradniku VIDEO to pisz ;) śmiało

_________________
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 lut 2013, o 17:56 
Offline
Użytkownik

Dołączył(a): 19 lut 2013
Posty: 50
Pomógł: 0

Tak ja jakiś czas temu właśnie zaczynałem od migania diodą ;) i wszystko było ok, funkcja delay działała prawidłowo, aż w pewnym momencie właśnie zaczęło się psuć, ale nie zwracałem na to szczególnej uwagi, a szedłem dalej przez przerwania, timery, pwm itd, i nadszedł czas na UART. Teraz jednak widzę że muszę ten błąd rozwiązać. Oglądałem filmik. Miałem starą wersję winavr, ściągnąłem najnowszą, usunąłem Eclipse, skonfigurowałem od nowa, spróbowałem jeszcze raz, dioda miga teraz trochę wolniej, ale w dalszym ciągu jedna sekunda to nie jest... Zmniejszyła się również ilość błędów, z 4 zrobił się 1,

make: *** [UART.elf] Error 1

Jakieś pomysły jak to naprawić? Sprawdzę to jeszcze na drugiej atmedze.

------------------------ [ Dodano po: 14 minutach ]

Już chyba widzę w czym problem, otóż jeśli ustawię procesor na powiedzmy 1 Mhz, dioda miga blisko jednej sekundy, ale jeśli zmienię w mkAVRcalculator na 8 Mhz, miga znacznie szybciej, jeśli ustawię w Eclipse z 1 Mhz, na 8 Mhz(powinno być ok) to nic się nie zmienia. Więc problem chyba z plikiem mfile?

------------------------ [ Dodano po: 21 minutach ]

Już jest ok, zrobiłem clean, build, przesłałem i chodzi. Teraz spróbuję z terminalem ;)

------------------------ [ Dodano po: 38 minutach ]

A dlaczego zamiast znaku 'a' otrzymuję taki: <0>?

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: 20 lut 2013, o 18:40 
Offline
Moderator
Avatar użytkownika

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

a to dlatego że w ogóle nie masz inicjalizacji UARTA poprawnej :( .... trzeba ustawić jego prędkość, wspomagaj się moim blogiem dokąd nie zdobędziesz książki:

http://mirekk36.blogspot.com/2013/01/rs ... trick.html

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: 20 lut 2013, o 19:19 
Offline
Użytkownik

Dołączył(a): 19 lut 2013
Posty: 50
Pomógł: 0

Ok, zmieniłem ten wzór na ((F_CPU+UART_BAUD*8UL) / (16UL*UART_BAUD)-1), no tak ale coś oprócz prędkości jest nie tak? bo nadal te dziwne znaki się wyświetlają. Zmieniłem również terminal na v1.9, jakoś bardziej tam widać co się dzieje.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lut 2013, o 19:29 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

To oznacza właśnie że w a jest 0, czyli żaden znak pisany. Bez słówka static byłaby dowolna liczba (losowa wartość). a to tylko nazwa zmiennej.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lut 2013, o 19:44 
Offline
Użytkownik

Dołączył(a): 19 lut 2013
Posty: 50
Pomógł: 0

Działa, dziękuję za pomoc :)



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


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