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



Teraz jest 11 sty 2025, o 04:34


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 16 ] 
Autor Wiadomość
PostNapisane: 24 cze 2014, o 13:55 
Offline
Nowy

Dołączył(a): 20 sty 2014
Posty: 17
Pomógł: 0

Witam,

Ostatnio zainteresowało mnie pewne urządzenie, znane bardziej pod angielską nazwą jako SpeedoHealer/Speedometer Calibrator. Otóż owe urządzenie służy do powielania częstotliwości sygnałów pochodzących z czujnika prędkości i tym samym minimalizowania błędu wynikającego na przykład z wymiany kół na takie o wyższym pofilu. Pomyślałem sobie, że zamiast wydawać 300 zł, spróbuję podjąć się zadania i zbudować podobne urządzenie oparte na ATmega8. Dopiero raczkuję w programowaniu AVRów, dlatego potrzebuję pomocy. Razem z bluebookiem pana Mirka zrobiłem już multipleksowanie wyświetlacza LED, liznąłem ADC i kilka innych drobniejszych zagadnień, ale temat pomiaru okresu sygnału trochę mnie jeszcze przerasta.

Na chwilę obecną wiem jak to ma mniej więcej wyglądać. W pierwszej kolejności odbywać ma się pomiar okresu sygnału z wykorzystaniem przerwania na ICP1. Następnie chciałbym wykorzystać timer w trybie PWM do generowania sygnału o odpowiednio zmniejszonym okresie. "Zabawa" stanęła na samym początku, czyli na pomiarze okresu. Poniżej załączam to co udało mi się napisać. Czas wystąpienia dwóch zboczy narastających jest zapisywany do zmiennych czas1 i czas2. Jednak po wejściu do instrukcji warunkowej IF i wykonaniu obliczeń, wypadałoby wyzerować licznik przepełnień i przepisać wartość zmiennej czas2 do zmiennej czas1. Nie wiem w którym miejscu tego dokonać i czy w ogóle mój sposób na pomiar jest prawidłowy. Ważne jest, by mierzony był każdy okres sygnału, żaden nie może być pominięty.

Nie liczę na gotowe rozwiązanie, a na podpowiedzi, które pozwolą mi zrozumieć i samemu to napisać :)

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



Ostatnio edytowano 24 cze 2014, o 17:10 przez Miles, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 cze 2014, o 14:23 
Offline
Nowy

Dołączył(a): 20 sty 2014
Posty: 17
Pomógł: 0

Widziałem ten projekt, jednak tam pomiar realizowany jest z tego co pamiętam co 0,5 s, a ja muszę mierzyć czas każdego okresu. Próbowałem to jakoś przerobić, ale bezskutecznie. Dlatego zabrałem się za to od początku, od podstaw.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 cze 2014, o 18:19 
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

Przy takim mnożeniu na pewno przekroczysz rozmiar zmiennej wynik i przy okazji doczytaj na blogu o domyślnej promocji do typu int. Tak to można poprawić:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 cze 2014, o 19:07 
Offline
Nowy

Dołączył(a): 20 sty 2014
Posty: 17
Pomógł: 0

O możliwości przekroczenia zmiennej "wynik" sam się przekonałem podczas prób z wyświetlaczem, dlatego od razu to poprawiłem. W międzyczasie udało mi się również napisać trochę przekombinowany, ale działający kod :) Ściągnę jednak z Twojego, bo wydaje się bardziej dopracowany.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lip 2014, o 10:15 
Offline
Nowy

Dołączył(a): 20 sty 2014
Posty: 17
Pomógł: 0

Po krótkiej przerwie wracam do tematu. Skoro pomiar okresu udało mi się zrealizować, to chciałbym przejść do generowania impulsów. I tutaj pojawia się problem, bo atmega8 posiada tylko jeden timer 16 bitowy, którego użyłem już do pomiaru. Zrobienie generatora na timerze 8 bitowym będzie chyba mało precyzyjne. Co w takim wypadku zrobić? Szukać mikrokontrolera z dwoma timerami 16 bitowymi?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lip 2014, o 11:21 
Offline
Moderator
Avatar użytkownika

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

Miles napisał(a):
Szukać mikrokontrolera z dwoma timerami 16 bitowymi?


Długo szukać nie trzeba - np ATmega128

_________________
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: 7 lip 2014, o 11:41 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2011
Posty: 401
Lokalizacja: Siedlce
Pomógł: 7

Armata na muchy :D
ATTiny441/841 wystarczy:
Cytuj:
One 8-bit and Two 16-bit Timer/Counters with Two PWM Channels, Each

_________________
Czekamy na RedBook'a!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lip 2014, o 12:25 
Offline
Moderator
Avatar użytkownika

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

szopler napisał(a):
ATTiny441/841 wystarczy


Z ciekawości zapytam ;) pokaż mi jeden sklep w PL gdzie można kupić te procki ? ;)

Ale faktycznie to też dobra alternatywa bo mają nawet UARTcik ;)

_________________
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: 7 lip 2014, o 12:32 
Offline
Nowy

Dołączył(a): 20 sty 2014
Posty: 17
Pomógł: 0

Czyli do tak prostego zadania potrzebuję takiego kombajnu jak atmega128 i jest to jedyne słuszne rozwiązanie? Zauważyłem właśnie, że attiny441/841 jest trudno dostępnym mikrokontrolerem w Polsce...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lip 2014, o 12:37 
Offline
Moderator
Avatar użytkownika

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

Miles napisał(a):
Czyli do tak prostego zadania potrzebuję takiego kombajnu jak atmega128 i jest to jedyne słuszne rozwiązanie?


Sorki - ale jak słyszę takie bzdury to mi się coś gotuje ... pytasz to podpowiadam że akurat ten ma bo na szybko kojarzę, gdzie mówiłem że to jedynie słuszne rozwiązanie? Może jednak warto czytać ze zrozumieniem a mniej się domyślać ... wtedy nie będą wychodziły takie bzdury ... zaraz potem masz podpowiedź że można ATtiny ... też źle bo trudnodostępny to co ? .... jeszcze gwiazdkę z nieba podać koledze ?

To jeśli tak ze wszystkiego jesteś niezadowolony - sam poszukaj i znajdź najlepsze rozwiązanie dla siebie zamiast marudzić na to że ktoś coś próbuje podpowiedzieć ....

Masz całe stado innych procków PIC, Xmega, ARM/STM .... ale i pewnie w zwykłych AVR'ach by się coś znalazło - tylko szkoda się męczyć z szukaniem dla kogoś komu wszystko nie pasuje.

_________________
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: 7 lip 2014, o 12:51 
Offline
Nowy

Dołączył(a): 20 sty 2014
Posty: 17
Pomógł: 0

Doceniam to, że próbujecie podpowiedzieć. Między innymi dlatego się tutaj zarejestrowałem. Nie wiem skąd ta agresja? Nie wyrażam swojego niezadowolenia, tylko po prostu pytam. Dopiero zaczynam swoją przygodę z mikrokontrolerami i nie wszystko jest dla mnie tak oczywiste jak dla Was. Staram się ciągle czytać bluebooka i zdobywać nową wiedzę. Nie musicie od razu się tak na mnie rzucać...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lip 2014, o 13:02 
Offline
Moderator
Avatar użytkownika

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

Nie rzucam się .... no ale czasem warto jednak przemyśleć odpowiedź .... bo rozwiązań może być wiele ... być może nawet generator można zrobić na zewnętrznym i to specjalizowanym układzie ... albo kombinować pomiar na 8-bitowym ... nie wiem ... Nie siedzę w twoim projekcie ... ale też za mało danych

więc na proste pytanie o procka z dwoma timerami 16-bitowymi - padły dwie na szybko odpowiedzi ... Być może ktoś jeszcze coś podpowie ... ale to nadal nie oznacza po prostu - że sugeruje tu ktoś jedynie słuszne rozwiązania ... w tym rzecz

_________________
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: 7 lip 2014, o 13:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2014
Posty: 1089
Pomógł: 34

Hey!

Miles napisał(a):
Staram się ciągle czytać bluebooka i zdobywać nową wiedzę


Ja tez zaczynam i dokaldnie Cie rozumiem. Mozesz rzucic okiem tutaj np http://support.atmel.com/bin/customer.exe?=&action=viewKbEntry&id=691

Wybierz co Ci potrzebna i voilla :)

A rada od innego poczatkujacego - postaraj sie 2xrazy nawet note przeczytac - bo pewne oczywiste rzeczy przychodza po czasie ;) wiem bo samemu mnie sie to trafia :)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lip 2014, o 13:39 
Offline
Nowy

Dołączył(a): 20 sty 2014
Posty: 17
Pomógł: 0

Dzięki!

No i ogółem proszę mi wybaczyć brak profesjonalizmu, poprawię się :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lip 2014, o 16:10 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2011
Posty: 401
Lokalizacja: Siedlce
Pomógł: 7

mirekk36 napisał(a):
Z ciekawości zapytam ;) pokaż mi jeden sklep w PL gdzie można kupić te procki ? ;)


W Farnell jest tiny441 w obudowie SOIC14 za 6.18PLN/szt. (netto)

Koledze poszukującemu polecam:
ATMEL Microcontroller Selector

_________________
Czekamy na RedBook'a!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lip 2014, o 19:08 
Offline
Moderator
Avatar użytkownika

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

szopler napisał(a):
W Farnell jest tiny441 w obudowie SOIC14 za 6.18PLN/szt. (netto)


to mogę podać jeszcze Digikey, mouser itp .... to chyba każdy widzi ;)

pytałem o jakiś sklep nawet internetowy w Polsce ;)

_________________
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  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 16 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO