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



Teraz jest 25 kwi 2024, o 13:22


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 24 ] 
Autor Wiadomość
PostNapisane: 10 mar 2012, o 22:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 lut 2012
Posty: 243
Lokalizacja: wlkp
Pomógł: 2

Zanim zabrałem się za "praktykę", przeczytałem całą obszerną teorię - nie wszystko w pełni zrozumiałem, ale gdy przyjdzie czas na kolejne ćwiczenia, to jasna sprawa, że wrócę do potrzebnych rozdziałów. Ok, no to do dzieła z czym mam obecnie problem...
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Analizuję (zapewne banalne) wyrażenie: #define KEY_DOWN !(PIND & KEY_PIN),
no, ale nie bardzo wiem jaką wartość bitową reprezentuje "PIND" (i od razu dlaczego właśnie taką, a nie inną?).
Chciałbym sobie rozpisać binarnie, co rzeczywiście wychodzi z tego iloczynu logicznego.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 mar 2012, o 22:46 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

PIND a raczej ogólnie PINx reprezentuje wartość rejestru odpowiadającego za stany wejść konkretnego portu.
Czyli jeżeli ustawiasz któryś z pinów jako wejście to w zależności od tego co masz na tym pinie otrzymujesz odpowiednią wartość.
Ale jest to rejestr 8-bitowy dlatego jest tam ta suma, aby wyciągnąć tylko wartość tego konkretnego pinu który Cię interesuje, który chcesz zbadać.

_________________
Jestem początkujący i moje porady mogą być błędne



Ostatnio edytowano 10 mar 2012, o 22:49 przez MirkoT, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 mar 2012, o 22:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

A jak myślisz ??

PinD odnosi się do operacji na pojedynczym bicie portu D do którego podłączony jest klawisz wskazany przez KEY_PIN

Proponuję doczytać :)

Różnicę między PIND a PORTD i wszystko stanie się jasne :)

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 mar 2012, o 22:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

o bestia mnie wyprzedziła :)

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 mar 2012, o 22:50 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

SunRiver napisał(a):
o bestia mnie wyprzedziła :)

hihihihi
a Ty zawsze chciałbyś być pierwszy ;)

_________________
Jestem początkujący i moje porady mogą być błędne



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

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

hehe :)

a co tam ostatni będą pierwszymi :)

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sty 2013, o 19:47 
Offline
Nowy

Dołączył(a): 06 sty 2013
Posty: 12
Pomógł: 0

Witam

Mam problem związany z przyciskiem micro switch.
Próbuje wgrać program z książki do mojej atmegi32 lecz efektem jest miganie diody - nie reaguje na przycisk.

Nie jestem pewny czy dobrze podłączyłem przycisk(jedna para nóżek do masy, druga do pinu mikrokontrolera)?

Obrazek
Sory za jakość ale nie miałem nic innego niż telefon pod ręką.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sty 2013, o 19:50 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

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

Czy do masy czy też plusa to zależy od schematu.

W przycisku musisz też sprawdzić omomierzem na których końcówkach występuje efekt przełącznia.

Bo mogłeś podłączyć końcówkami które są ze sobą zwarte i wtedy rzeczywiście nie będzie widać efektu przełączania.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sty 2013, o 19:52 
Offline
Moderator
Avatar użytkownika

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

wahuu --> jak się ma jakiś problem to zwykle wypada powiedzieć coś więcej na jego temat ... pokaż kod funkcji main() ... (bez obaw kody źródłowe funkcji main() z książki czy z DVD można publikować na forum tylko bibliotek nie - no ale tu na razie z żadnej biblioteki nie korzystasz) i powiedz tzn napisz co sprawia ci kłopot w tym kodzie - czego nie rozumiesz OK ? to łatwiej i szybciej będzie można ci pomóc

_________________
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: 6 sty 2013, o 20:15 
Offline
Nowy

Dołączył(a): 06 sty 2013
Posty: 12
Pomógł: 0

Program który wgrywam jest dla mnie jasny lecz nie działa w sposób jaki ma działać.

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


[ tylko proszę panie kolego - zajrzyj do tego postu i zobacz na przyszłość jak się używa znaczników [ syntax = c ] zamiast [ code ] OK ? mirekk36]

Przycisk podłączony mam jak na tym zdjęciu, zamiast tych rezystorów mam tam kabel do pinu atmegi(czyli chyba dobrze :?: ):
Obrazek

Gdy spradzam omomierzem pary pinów przycisku wyświetlacz pokazuje 9ohm



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sty 2013, o 20:17 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

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

Najpierw sprawdź czy przy naciskaniu zmienia ci się napięcie na nóżce mikrokontrolera.

Jeśli tak to wtedy można sie zabierać za analizę programu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sty 2013, o 20:24 
Offline
Nowy

Dołączył(a): 06 sty 2013
Posty: 12
Pomógł: 0

Jak przytrzymuje przycisk to mam 0V, gdy nie jest wciśnięty jest 5V



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sty 2013, o 20:36 
Offline
Nowy

Dołączył(a): 06 sty 2013
Posty: 12
Pomógł: 0

Nie przestawiałem ustawień fabrycznych w ogóle, procek taktuje mi z 1MHz i mam włączone piny do programatora JTAG. Czyli to chyba tego wina.
Pozmieniam fuse bity i dam znać czy działa.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sty 2013, o 20:39 
Offline
Moderator
Avatar użytkownika

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

wahuu napisał(a):
Nie przestawiałem ustawień fabrycznych w ogóle, procek taktuje mi z 1MHz i mam włączone piny do programatora JTAG. Czyli to chyba tego wina.
Pozmieniam fuse bity i dam znać czy działa.


To na prawdę powinieneś oglądać poradniki VIDEO bo są właśnie również dla ciebie w tym względzie - szczególnie ten na początek

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

polecam - ile rzeczy ci się wyjaśni - sam zobaczysz ;)

_________________
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: 6 sty 2013, o 20:43 
Offline
Użytkownik

Dołączył(a): 19 gru 2012
Posty: 712
Lokalizacja: Opole
Pomógł: 23

Przede wszystkim widzę że w definicjach preprocesora piszesz

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


Czyli definiujesz KEY_PIN na PC2

Jednak później w komentarzach (pewnie dlatego że skopiowane z innego projektu używasz PC6

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


Oczywiście to nie powoduje błędu w działaniu ale warto to zmieniać.

Ale problemem jest co innego:

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


To fragment ze strony Mirka eliminujący problemy ze stabilnością. Radzę poczytać ten artykuł: http://mirekk36.blogspot.com/2012/10/drgania-stykow-to-bajki-wiec-jak-to.html



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sty 2013, o 20:52 
Offline
Nowy

Dołączył(a): 06 sty 2013
Posty: 12
Pomógł: 0

A można jeszcze wiedzieć które piny atmegi32 zarezerwowane są dla JTAG?
Na MKAVRCalculator z płytki DVD niestety nie obsługuje atmegi32 więc nie zmienię fus bitów.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sty 2013, o 21:01 
Offline
Nowy

Dołączył(a): 06 sty 2013
Posty: 12
Pomógł: 0

Ok działa, wielkie dzięki za pomoc!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 lis 2014, o 22:07 
Offline
Nowy

Dołączył(a): 08 cze 2014
Posty: 10
Pomógł: 0

Witam, dorobiłem się BB oraz ATB 1.04,
przeczytałem w ciągu 4 dni całą teorię i dotarłem do warsztatów.
Problem pojawił się na przykładzie ze strony 191 - ostatni z tego rozdziału.

Wydaje mi się że kod mam przepisany poprawnie a mimo to eclipse wyrzuca błąd przy kompilacji :/

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



oraz błędy z konsoli:
Kod:
**** Build of configuration Release for project nauka ****

make all
Building file: ../main.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega32 -DF_CPU=8000000UL -MMD -MP -MF"main.d" -MT"main.d" -c -o "main.o" "../main.c"
../main.c:48: error: conflicting types for 'klawisz_wcisniety'
../main.c:26: error: previous declaration of 'klawisz_wcisniety' was here
../main.c: In function 'klawisz_wcisniety':
../main.c:50: error: 'klawisz' undeclared (first use in this function)
../main.c:50: error: (Each undeclared identifier is reported only once
../main.c:50: error: for each function it appears in.)
make: *** [main.o] Error 1

**** Build Finished ****



czego tu szukać?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 lis 2014, o 22:09 
Offline
Moderator
Avatar użytkownika

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

porównaj sobie pan nagłówek swojej funkcji:

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


z tym jak wygląda już to w ciele samej funkcji:

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


i zastanów się chwilę coś pan tu namieszał ;)

_________________
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 lis 2014, o 22:27 
Offline
Nowy

Dołączył(a): 08 cze 2014
Posty: 10
Pomógł: 0

ja już naprawdę mam problemy z oczami, normalnie bije pokłony...
dzięki :P działa :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 kwi 2016, o 19:20 
Offline
Nowy

Dołączył(a): 27 mar 2016
Posty: 3
Lokalizacja: Zamość
Pomógł: 0

Witam, odświeżę wątek bo również zaciąłem się na tym samym zadaniu. Mianowicie u mnie wygląda sytuacja w ten sposób, że po wgraniu programu do uC dioda cały czas miga. Po podłączeniu PC6 do GND dioda miga z nieznacznie mniejszą częstotliwością, ale da się to zauważyć. Po podłączeniu PC5 lub PC2 do GND nic się nie dzieje, dioda sobie miga. Prosiłbym o jakieś wskazówki jak to rozwiązać żeby program działał prawidłowo. Typ uC to ATmega 16, taktowanie 8 MHz, w Other wpisane -B 8.

Obrazek

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: 11 kwi 2016, o 19:24 
Offline
Użytkownik
Avatar użytkownika

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

A wyłączyłeś Interfejs JTAG?
Sprawdz zakładkę Fusy uproszczone w programie mkAVRCalculator.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 kwi 2016, o 19:27 
Offline
Nowy

Dołączył(a): 27 mar 2016
Posty: 3
Lokalizacja: Zamość
Pomógł: 0

Sprawa załatwiona! Dziękuje!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 kwi 2016, o 21:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Jeżeli kolega pomógł to proszę zaznaczyć w okienku. :)
to taka mocno dopingująca forma podziękowania na forum. ;)



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

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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO