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



Teraz jest 27 kwi 2024, o 06:46


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 115 ]  Przejdź na stronę 1, 2, 3, 4  Następna strona
Autor Wiadomość
PostNapisane: 16 sty 2012, o 18:41 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

Witam,
W weekend złożyłem nowy układ i dziś zacząłem go programować. Stwierdziłem, że łatwiej będzie kontrolować program pisząc go stopniowo i sprawdzając po kolei każdy etap. I tak właśnie utknąłem już na początku, bo na przerwaniach, nie wiem czemu nie chcą działać. Wzoruję się na książce i sprawdzałem czy wszystko ustawiam, ale często tak jest, że jak człowiek tkwi w jakimś błędzie to może go po prostu sam nie znaleźć, a może się okazać banalnym błędem. Dlatego też postanowiłem poprosić o spojrzenie na mój kod "świeżym" okiem. Z góry dziękuje za odpowiedź :)

Kod programu:
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: 16 sty 2012, o 20:37 
Offline
Moderator
Avatar użytkownika

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

1. Podstawa podstaw, inicjalizację różnych modułów robi się RAZ na początku programu. A kolega lcd_init() nie wiedzieć czemu wielokrotnie gdzieś tam w jakiejś dziwnej pętli wykonuje.

2. A cóż to za konstrukcja while( KEY ) {}; gdzie key to jakiś SW_POWER czy tam SW_DOL ? Oj do przeczytania ponownie rozdział i to ten o podstawowej obsłudze klawiszy - bo coś kolega przekombinował na maxa - tak pisany program będzie się wciąż blokował i zawieszał - i to wcale nie dziwne :(

3. same przerwanie od przepełnienia timera wydaje się być akurat poprawnie skonfigurowane jak również uruchomione, ale przydałoby się zadając pytanie na forum uporządkować kod i dać własne komentarze co kolega chce osiągnąć a tak ? Gdzie niegdzie są komentarza a w innych bardziej newralgicznych miejscach nie ma. Poza tym jakieś zakomentowane bloki kodu - po co ?

Nie wspomnę już o tym, (po raz kolejny na forum panowie), że pytania trzeba bardziej precyzować a nie wrzucać cały kod i pytać co jest źle ? Bo tu źle jest dużo - ale też ciężko się domyślać jak choinka, bo przecież panie autor nawet nie napisałeś co chciałeś osiągnąć tym programem. A jak się może ktoś domyśleć - jeśli program jest absolutnie nieczytelnie napisany i zawiera błędy jak wyżej hmmm? Toż zdanie, że przerwania tu nie działają - to jakieś nieporozumienie - bo one akurat działają. Za to cały program w funkcji głównej main() to niestety nieporozumienie jakby trochę albo ja nic nie rozumiem z niego (taka możliwość też jest)

dla przypomnienia (a było o tym w książce)

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


Dlatego np bardzo chętnie dalej pomogę ale:

1. proszę napisać poprawnie - przynajmniej mega podstawową obsługę klawiszy - tak jak w pierwszych lekcjach w książce (już nie mówię o SuperDebounce() - OK ?

2. proszę uporządkować kod - tzn wszystkie sekcje na właściwe miejsca

3. proszę wstawić własne komentarze chociaż

4. Opisać co wg kolegi program miał robić i jak się zachowywać

wtedy to będzie można coś podpowiedzieć.

_________________
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: 16 sty 2012, o 21:33 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

1) A więc tak: ta dziwna pętla wykonuje się tylko raz ponieważ później program wchodzi w drugą pętle nieskończoną -> tak chciałem rozwiązać przycisk POWER - czyli program cały czas sprawdza czy jest wciśnięty - jeśli tak to są inicjalizację itd i od razu (po pierwszym przejściu) program wchodzi w druga pętle w której wykonuje dalej program. Czyli tak jakby ta druga pętla miała być dopiero pętlą główną programu Nie można robić jednej pętli w drugiej?

2)Ten fragment kodu:
Kod:
 _delay_ms(30);
 while(SW_POWER) {};
_delay_ms(30);


odpowiada za zapobieganie drganiom switcha, czyli dopiero po puszczeniu przycisku wykonuje się przypisane mu działanie. Opierałem się na kursie: http://hobby.abxyz.bplaced.net/index.php?pid=4&aid=2
Z tego co widzę w Pana książce jest po prostu tylko jeden "delay" i "if" zamiast "while"... Rozwiązanie z powyższego kursu nie jest poprawne?

3) Zakomentowany jeden fragment kodu został po to żeby zaraz nie musiał pisać jeszcze raz konfiguracji Timera2 (z tego co wiem komentarze nie są brane pod uwagę przez kompilator a nie zakomentowałem nie wiadomo jak dużo, ale następnym razem będę po prostu usuwał takie fragmenty przed wrzuceniem na forum)

4) Sprecyzowałem pytanie o przerwania, ponieważ myślalem, ze reszta jest dobrze, bo generalnie wszystko działa tylko właśnie nie zapala się dioda LED_CZ - czyli nie wykonuje się funkcja przerwania - jeśli same w sobie są ok to może to być przyczyna tego że a jednej nieskończonej pętli while przechodzę w drugą, ale z drugiej strony czemu miałoby to szkodzić?



Usunąłem zakomentowany fragment i dodałem więcej komentarzy opisujących działanie i cel użytych instrukcji:
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: 16 sty 2012, o 22:10 
Offline
Moderator
Avatar użytkownika

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

Nie taka hmmm obsługa klawiszy może być jak z tej strony, którą podałeś - tyle że ona jest TOTALNIE blokująca i całkowicie kłóci się z ideami, które staram się jak najszybciej w książce wybić ludziom z głowy jeśli chcą programować. I niestety takie kursy internetowe - tylko cofają ludzi w tym aby pójść do przodu - ucząc takiego podejścia, no ale to nie nowina akurat. Pamiętaj - podstawa to programowanie i pisanie funkcji nieblokujących....

Więc proponuję wybrać jedno źródło nauki - bo tak to sam mieszasz sobie mocno w głowie niestety :( ..... ale ok

znalazłem ZONKA w twoim programie. Wcześniej go nie zauważyłem bo i jest trudny do zauważenia a wyniknął niestety z twojej nieuwagi - wszystkiemu - tzn może źle - temu że nie działa tobie przerwanie Timera0 jest winna jedna linia programu:

TIMSK |= (TOIE0);

i teraz spróbuj dojść sam dlaczego ? i gdzie jest błąd w tej linii OK ?

PS - dawaj kody programów w znacznikach syntax=c a na końcu /syntax. Zresztą można to wybrać ładnie z pokla wyboru - "Listing kodu" nad okienkiem w którym piszesz post i samo się zaznaczy tak.

_________________
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: 16 sty 2012, o 22:45 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

W takim razie zdecyduję się na Pana kurs i przerobię tą obsługę switchy, nie wiedziałem, że tamten sposób jest niepoprawny. - a jeśli można o lepsze wyjaśnienie czym się charakteryzują funkcje blokujące? (to takie kiedy nic innego nie może być robione? ) :)

Już widzę.... błąd jak się spodziewałem masakrycznie podstawowy, ale po tym jak sam go napisałem nie potrafiłem go wychwycić, bo automatycznie człowiek widzi, ze "przecież jest ok". Powinno być:

TIMSK |= (1<<TOIE0);

Dziękuję :)

PS - Zapamiętam na przyszłość.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 sty 2012, o 23:01 
Offline
Moderator
Avatar użytkownika

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

Tylko nie zrozum mnie źle. W tym kursie o którym piszesz zadziała taka obsługa klawisza - tak jak to masz w kodzie. Ale pomyśl sobie co będzie gdybyś w jednej pętli chciał wykonywać jakieś zadanie i jednocześnie obsługiwać klawisz czy klawisze. Każde wciśnięcie i przytrzymanie go na dłużej - spowoduje absolutne wstrzymanie pętli głównej i zatrzymanie wszystkich procesów. A zatem koniec. A jeśli przynajmniej zrobi się to w ten początkowy prosty sposób jak podałem - to chociaż z małym opóźnieniem na eliminację drgań styków, to pętla dalej może działać.... A potem w książce jest dalej jak działać żeby w ogóle się tych opóźnień pozbyć i mieć przy okazji zaawansowaną obsługę klawiszy....

Ale cieszę, się że sam na końcu dostrzegłeś błąd ;)

_________________
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: 16 sty 2012, o 23:25 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

No widzę już przewagę zastosowania "if" zamiast "while" w tym przypadku :) I doczytam sobie jeszcze w takim razie o zaawansowanej obsłudze klawiszy, przyda mi się na pewno do projektu :)

I dziękuje jeszcze raz za odpowiedź :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 sty 2012, o 13:27 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

Doczytałem rozdział o układzie wielozadaniowym - genialny! :)

Jednak w swoim układzie mam mały problem z kolejnym przerwaniem, a mianowicie od PCF8583.
Żeby nie było, że mam zły program postawiłem wykorzystać gotowy program z płyty do wyświetlania czasu na LCD (08_TWI - ściągnąłem ten poprawiony). Ponieważ wykorzystuje wejście INT1 zamiast INT0 pozmieniałem odpowiednie fragmenty kodu:

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


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


Sama komunikacja z PCF mi działa ponieważ udaje mi się wgrać odpowiednią, godzinę oraz po ręcznym ustawieniu int1_flag =1 udaje mi się wyświetlić godzinę. Zastanawiam się też czy błąd nie leży gdzieś po stronie sprzętowej, ponieważ po wgraniu czasu i późniejszym odczytywaniu go godzina w ogóle się nie zmienia. Tak jakby zegar stał w miejscu. Gdzie mogę szukać przyczyny? Czyżby coś nie tak z kwarcem... ?
Użyłem takiego: http://www.tme.eu/pl/details/mc-14632.7 ... 32768khz/#
Fakt że był on wylutowany z poprzedniego układu i użyty ponownie tutaj, ale nóżki lutownicze się nie pourywały i trzyma się mocno.

Po prostu wolę się spytać gdzie zacząć szukać przyczyny zanim sobie sam zdewastuje układ ;)

Pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 sty 2012, o 16:08 
Offline
Moderator
Avatar użytkownika

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

No dobrze ale podstawowe pytanie czy podłączyłeś wyjście INT z PCF'a do wejścia INT1 procka ? sorki, że pytam ale może to to ?

albo czy np nie zapomniałeś o globalnym zezwoleniu na przerwania sei(): ? ;)

nie widać całego kodu więc tylko można się domyślać.

_________________
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 sty 2012, o 16:54 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

Podłączyłem na stałe na płytce -> pin7 PCF (INT) z pinem 5 Atmegi8 (INT1).


cały kod jest kodem z płyty z ćwiczenia 08_TWI - przerobiłem tylko na INT1 zamiast INT0 (oraz ustawienie LCD dla swojego podlaczenia) :)
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: 19 sty 2012, o 17:54 
Offline
Moderator
Avatar użytkownika

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

Podłącz sobie przede wszystkim w celu testu diodę LED katodą bezpośrednio do pinu INT układu RTC a anodą przez rezystor do VCC i sprawdź czy mruga ładnie co sekundę - wtedy będziesz miał pewność że RTC prawidłowo pracuje

Jeśli mryga to ja bym zrobił kolejny test - znowu podłączyłbym RTC do procka (PD3) i w przerwaniu teraz już programowo mrugałbym na jakimś pinie diodą LED (taki debuger 1-siodowy ;) ) .... żeby zobaczyć czy przerwanie działa. To też dioda powinna mrugać co sekundę. Jeśli nie to szukaj przyczyny w połączeniach .... albo dalej w kodzie

to tak na razie tyle co na szybko mogę podpowiedzieć bo dopiero wieczorkiem zasiądę na dłużej do kompa

_________________
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 sty 2012, o 19:07 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

Wkładałem inny PCF8583 (z Pana układu testowego) i dzieje się to samo a w tamtym układzie działa więc myślę że RTC samo w sobie działa prawidłowo.

Dałem dodatkowo diodę do migania w przerwaniu i nie mruga - czyli przerwanie tak jakby nie było generowane (ale konkretnie w moim układzie bo w Pana testowym działało) - jeśli ścieżki i połączenia są ok jest duże prawdopodobieństwo że coś z tym kwarcem? bo chyba on ma znaczący wpływ na generowanie właśnie przerwania w RTC?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 sty 2012, o 20:21 
Offline
Moderator
Avatar użytkownika

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

Poczekaj poczekaj, bo ja już się totalnie pogubiłem w tym co piszesz. Jaki ty układ testujesz ? mowa o zestawie uruchomieniowym ATB wraz z konwerterem ATmega8 czy jak ???? Opisz to jakoś w punktach żeby było wiadomo co ci działa i w jakim układzie działa, a co nie działa i w jakim układzie.....

Bo z jednej strony widać wyżej że piszesz iż odczyt z PCF'a działa a wciąż dopytujesz czy to może być jakiś kwarc bo on jest rzekomo odpowiedzialny za generowanie przerwania - normalnie już totalna mieszanka ;) ....

Jeśli masz na myśli kwarc zegarkowy podłączony do RTC to jak on mógłby być zepsuty jeśli dajesz radę odczytywać godzinę z RTC ???? toż bez kwarca on byłby martwy. Na razie to widzę, że jesteś totalnie podenerwowany i rozkojarzony i piszesz niestety bez składu i ładu.

Usiądź , uspokój się opisz wszystko po kolei bo już kod podałeś i dojdziemy co jest nie tak. I nie doszukuj się winy w kwarcach skoro i procek i RTC działają.

opisz w punktach np:

1. zrobiłem na zestawie ATB to i to, to mi działało, to też a np to nie

2. zrobiłem własny układ (o ile to miałeś na myśli) i to mi działa a tamto nie
- odczyt działa
- zapis działa
- nie działa przerwanie

... i jak mówię nie szukaj przyczyny w wadliwych elementach - pokaż ew zdjęcie tego co zrobiłeś - bo musiałeś mocno namieszać ;) - to pomożemy

_________________
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 sty 2012, o 20:48 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

No właśnie miałem na myśli kwarc zegarkowy podłączony do RTC, ale skoro bez niego w ogóle RTC byłby martwy to rzeczywiście się zapędziłem.

A więc tak:

W zestawie ATB wgrałem program przykładowy z płyty i wszystko działa (zapis odczyt i przerwania - czas się wyświetla i zmienia)

W moim własnym układzie:
- działa zapis czasu
- działa odczyt czasu (jednak odczytana godzina jest zawsze taka jaką ją zapisałem na RTC tak jakby zegar nie szedł dalej)
- nie działa przerwanie

Przesyłam zdjęcie projektu PCB (fragment RTC) - w gotowym układzie musiałbym wylutować wyświetlacz LCD żeby był widoczny ten fragment (jeśli będzie to konieczne również zrobię - nie jest to aż taki problem).

Dla lepszej przejrzystości zostawiłem tylko elementy i połączenia dotyczące RTC:
http://www.pl.image-share.com/ijpg-88-267.html



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 sty 2012, o 22:23 
Offline
Moderator
Avatar użytkownika

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

No teraz już jaśniej, w takim razie przypomnij mi tylko czy działa tzn miga ci dioda LED podpięta bezpośrednio do wyjścia INT układu RTC w twojej własnej płytce ?

_________________
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 sty 2012, o 22:53 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

Nie miga :/

Na płytce ATB mruga



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 sty 2012, o 00:09 
Offline
Moderator
Avatar użytkownika

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

grubson89 napisał(a):
Nie miga :/

Na płytce ATB mruga


No to ewidentnie w takim razie nawet nie masz co sprawdzać w procku - na 100% nie działa ci ten RTC i albo masz coś nie tak z połączeniami albo rzeczywiście z kwarcem ?

_________________
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 sty 2012, o 00:47 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

RTC zamieniałem ten z płytki ATB z tym u mnie i to samo...

W takim razie sprawdzę jeszcze trzy razy połączenia a jak będą ok to wymienie kwarc i dam znac jaki efekt.

Dziękuje za pomoc :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 sty 2012, o 00:58 
Offline
Moderator
Avatar użytkownika

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

Jasne, czekam na info

_________________
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 sty 2012, o 18:05 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

Kupiłem nowy kwarc, wlutowałem i działa :)

Jednak po wyłączeniu zasilania i ponownym załączeniu czas na zegarze wraca do tego który został ostatnio wgrany.

wgrywam powiedzmy 18.30.00 -> przy ciągłym zasilaniu sekundy lecą, dioda mruga -> wyłączam zasilanie -> włączam i znów jest 18.30.00 i znów od tego momentu leci czas....

A właśnie takie pytanie jeszcze techniczne.... Jeśli do podtrzymania zegara użyłem kondensatora 0,22F to powinienem zrezygnować z jednej diody schotky'ego (tej od kondensatora)? Czy można ją zostawić? Bo może tu gdzieś tkwi problem?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 sty 2012, o 18:46 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

dioda "zablokowała" naładowanie się kondensatora i przez to nie jest on w stanie podtrzymywać pracy RTC? Dobrze kombinuje?



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

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

Masz przecież schemat zestawu ATB. Rzuć pan okiem na ten schemat w części poświęconej RTC. Zobacz jak to się robi. Bo coś czuję, że namieszałeś coś hmmm ? ;) używa się dwóch diod shottky a nie jednej.

Albo pokaż schemat jak ty to podłączyłeś żeby pomóc - bo kto wie na podstawie takiego opisu coś ty zmajstrował z tą diodą? ;)

_________________
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 sty 2012, o 20:25 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

No tworzyłem swój na podstawie ATB i mam dwie diody, ale w książce było napisane, że jeśli się używa kondensatora a nie baterii to można jedną diodę pominąć, dlatego się pytam :)

Schemat podłączenia RTC:
http://www.pl.image-share.com/ijpg-89-41.html



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

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

No to jeszcze raz spójrz na schemat z ATB i znajdź u siebie babola - bo wcale nie stworzyłeś swojego w zakresie przynajmniej zasilania z kondka na podstawie tego z ATB :(

Podpowiem, tylko że masz rację, że ten kondensator nigdy ci się nie naładuje - więc wiesz co i jak - a pomimo to źle łączysz mając nawet schemat ATB ;)

przypominam go:

http://atnel.pl/atb_sch/schematy_atb_pliki/image008.jpg

_________________
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 sty 2012, o 20:44 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

No czyli tym babolem jest właśnie ta dioda przy kondensatorze, bo powinienem go podłączyć tak jak element VCAP na schemacie ATB a nie jak BAT? I dobrze zrozumiałem czemu akurat przy kondensatorze nie powinno być diody -> że się nie naładuje po prostu? :)

Przyznam się, że przy tworzeniu trochę rozpędziłem się widząc układ w książce (odpowiednio przy temacie o RTC) i tam była dioda i ją wrzuciłem, równocześnie nie do końca rozumiejąc schemat ATB (właśnie ten VCAP był dla mnie zagadkowy) a później doczytałem, że dioda jest dla baterii nie dla kondensatorów... i mi się wtedy wyjaśniło, że swoją drogą jest VCAP a swoją drogą jest BAT na tym schemacie (wcześniej myslałem, że pod BAT dajemy albo baterię albo kondensator).
Trochę zakręciłem, ale podsumowując już rozumiem schemat :)



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

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

grubson89 napisał(a):
ale podsumowując już rozumiem schemat :)


I o to chodziło - a dobrze rozumiesz teraz jak widać ;)

_________________
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 sty 2012, o 20:50 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

Generalnie za szybko chciałem zrobić układ, a za wolno myślałem :D i to nie pierwszy i na pewno nie ostatni taki poślizg, ale podobno to "nie wstyd zrobić błąd, wstydem jest go bezmyślnie powtarzać" :)

Więc dziękuje za podpowiedzi i cierpliwość dla początkującego :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 sty 2012, o 21:02 
Offline
Moderator
Avatar użytkownika

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

Najważniejsze że w tych zakresach masz na czym się wzorować, bo pod ręką zawsze jest schemat zestawu uruchomieniowego. Masz zestaw na którym zawsze możesz porównać czy działa ci prototypowe rozwiązanie na nim - więc to już połowa sukcesu.

A popełniać błędy - przy projektowaniu pierwszych płytek hmmm a któż ich nie popełnia ? ;) myślisz, że mi się to nie zdarza ?

Dużo gorzej i dłuższą drogę mają osoby, które zaczynają tylko od płytki stykowej, nie mając na czym się oprzeć i sprawdzić, pomyśl ile oni tracą cennego czasu. Więc i tak jesteś do przodu jak myślę.

A początkującym - każdy z nas był - w sumie nie dawno ;)

_________________
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 sty 2012, o 21:35 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

No prawda, płytka testowa jest mocno przydatna, a pana książka jest arcydziełem dla ludzi takich jak ja, którzy chcą szybko i przyjemnie nauczyć się programować. Wyjaśnienie + gotowe przykłady dla szerokiego (przynajmniej jak na początkującą osobę) zastosowania - nic tylko tworzyć własne układy i uczyć się wykorzystywać tą wiedzę w praktyce :)

Jeśli napotkam (a pewnie tak będzie) jakiś problem w trakcie dalszej pracy pozwolę sobie znów pomęczyć Pana pytaniami :)

Pozdrawiam :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sty 2012, o 01:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 gru 2011
Posty: 204
Lokalizacja: Boguchwała
Pomógł: 3

grubson89 napisał(a):
No prawda, płytka testowa jest mocno przydatna, a pana książka jest arcydziełem dla ludzi takich jak ja, którzy chcą szybko i przyjemnie nauczyć się programować. Wyjaśnienie + gotowe przykłady dla szerokiego (przynajmniej jak na początkującą osobę) zastosowania - nic tylko tworzyć własne układy i uczyć się wykorzystywać tą wiedzę w praktyce :)
Jeśli napotkam (a pewnie tak będzie) jakiś problem w trakcie dalszej pracy pozwolę sobie znów pomęczyć Pana pytaniami :)
Pozdrawiam :)

Jak czytam twój post, to mam wrażenie że chcesz lekcji...podstaw od autora książki. Kliknij w wyszukiwarkę internetową np. "programowanie mikrokontrolerów" i znajdziesz wątki które będą ci przydatne w tym temacie. No ale z książką trzeba jeszcze się przespać :lol:



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

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