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



Teraz jest 6 lut 2025, o 11:13


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 21 lis 2013, o 21:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 48
Pomógł: 2

Witam forumowiczów,
piszę ponieważ chciałbym się poradzić co do projektu na uczelnię.

Dostałem projekt w którym muszę wykonać stoper z dokładnością do jednej mikrosekundy.
Czas ma być wyświetlany za pomocą 7 cyfr czyli np. 0,000001 s lub 9,999999 s.

Jakoś nie mam doświadczenia w programowaniu mikro-kontrolerów i pierwszym moim pomysłem było wykonanie tego za pomocą procesora ATMEGA8, rejestrów przesuwnych w połączaniu kaskadowym (tak jak poradniku w poradniku o rejestrach przesuwnych z blogu atnel) i siedmiu wyświetlaczy 7-segmentowych. Do wysyłania 7 bajtów używałbym sprzętowego SPI.
Lecz obawiam się że to rozwiązanie nie jest właściwe bo procesor może nie dać rady wysłać 7 bajtów w ciągu 1 µs.

Czy moje obawy są słuszne? Jeśli tak, czy mógłby ktoś mi polecić jakieś rozwiązanie, które umożliwiłoby mi wykonanie tego projektu poprawnie?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lis 2013, o 21:47 
Offline
Użytkownik

Dołączył(a): 05 lut 2013
Posty: 302
Pomógł: 19

Chyba zalozeniem projektu nie jest wyswietlanie czasu co 1µs tylko liczenie czasu z dokladnoscia do 1µs?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lis 2013, o 21:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 lut 2013
Posty: 600
Pomógł: 47

Wynik to bedzie mozna odczytac chyba tylko przy zaczymaniu stopera.
Jak bys chcial wyswietlac z taka szybkoscia to i tak by wszystkie segmenty swiecily.

------------------------ [ Dodano po: 2 minutach ]

No przynajmniej te po przecinku.

_________________
https://www.instagram.com/myfirstquadcopter/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lis 2013, o 22:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 48
Pomógł: 2

charsz napisał(a):
Chyba zalozeniem projektu nie jest wyswietlanie czasu co 1µs tylko liczenie czasu z dokladnoscia do 1µs?

Masz rację, źle to napisałem
kurnachatka napisał(a):
Wynik to bedzie mozna odczytac chyba tylko przy zaczymaniu stopera.
Jak bys chcial wyswietlac z taka szybkoscia to i tak by wszystkie segmenty swiecily.

------------------------ [ Dodano po: 2 minutach ]

No przynajmniej te po przecinku.

Tak, odczytanie czterech ostaniach cyfr byłoby tylko możliwe po zatrzymaniu odliczania czasu ( naduszeniu przycisku stop)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lis 2013, o 22:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 lut 2013
Posty: 600
Pomógł: 47

Sadze ze start i zatrzymanie musialo by sie odbywac za pomoca przerwania zboczem zeby nie tracic czsu na eliminacje drgania stykow.
Chyba ze wyzwalanie bylo by jakims sygnalem z zewnatrz?

_________________
https://www.instagram.com/myfirstquadcopter/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lis 2013, o 22:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 48
Pomógł: 2

Rozpoczęcie odliczania, zakończenie odliczania oraz resetowanie zegara ma się odbywać za pomocą przycisków. Mam też wyprowadzić poza obudowę jakieś gniazdo które umożliwiło by w przyszłości rozszerzenie możliwości stopera o komunikację z innym urządzeniem.

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

Czy moje rozumowanie jest dobre:
Przy użyciu kwarcu 16MHz czas pomiędzy taktami procesora wyniesie T= 0,0000000625 s
Jeśli chciałbym wysłać za pomocą SPI 7 bajtów to trwało by to t=2*T*7*8=0,000007 s

Czyli ten pomysł nie nadaje się do wykonania takiego projektu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lis 2013, o 23:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 lip 2013
Posty: 143
Pomógł: 1

chyba ciężko będzie się z tym uporać przy użyciu mikrokontrolera (8bitowego)... dołączenie podstawowych bibliotek do obsługi wejść, wyjść + przerwania to około 400 linii kodu w asm a większość poleceń trwa więcej niż jeden cykl zegara :)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 lis 2013, o 00:26 
Offline
Moderator
Avatar użytkownika

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

Może coś źle rozumiem ale jeśli to ma być zwykły stoper to w czym problem ?

1. Ustawić Timer1 aby zliczał (tykał) co 1us
2. po kliknięciu przycisku - wystartować timer
3. po kolejnym kliknięciu - zatrzymać timer i ODCZYTAĆ ile to trwało mikrosekund

.... tyle że tu trzeba się zastanowić po co w ogóle taka rozdzielczość stopera dla ludzkiego palucha ? to jest (tak mi się wydaje) niedorzeczność - ale jak mówię może źle zrozumiałem założenia projektu. Czas reakcji człowieka - taki świadomy to można mierzyć chyba w setkach milisekund, no może w dziesiątkach ... już chyba prawie nie w pojedynczych milisekundach .... a gdzie do pojedynczych mikrosekund ?

poza tym oczywiście - drgania styków ;)

_________________
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: 22 lis 2013, o 00:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 20 sie 2013
Posty: 795
Lokalizacja: Poznań
Pomógł: 59

może warto by się pokusić o troszkę inne podejście do tematu. MIanowicie:
-naciśnięcie start
-liczenie jedynie czasu
-naciśnięcie stop
-wyświetlenie czasu
-reset i powrót na górę

Klawisze w przerwaniach, pętla licząca czas ze skokiem 1 us, flagi start, stop, reset

Tak po krótce to widzę

Mirek mnie ubiegł. Co do drgań styków można to przecież w hardware rozwiązać.
Co do opóźnienia człowieka - można przecież w łatwy sposób rozbudować to poprzez bramkę laserową.



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 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