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



Teraz jest 31 sty 2025, o 15:49


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
Autor Wiadomość
PostNapisane: 23 wrz 2012, o 00:08 
Offline
Użytkownik
Avatar użytkownika

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

Zadanie - nieblokujący odczyt ADC (z wykorzystaniem przerwania zamiast while (ADCSRA & (1<<ADSC));)
Pomysł: Uruchomić FreeRunning, w przerwaniu od ADC sprawdzać kanał i przypisywać ADCW do zmiennej_nr_kanalu.
Wada: Każdy kanał - jedna zmienna w RAM.

Inne pomysły?
...

_________________
Czekamy na RedBook'a!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 wrz 2012, o 07:24 
Offline
Moderator
Avatar użytkownika

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

każde rozwiązanie ma swoje wady i zalety. wszystko zależy co jest dla ciebie ważniejsze? A ciężko to wywnioskować po tym ni to pytanu ni stwierdzeniu :( w każdym bądź razie można to jeszcze robić w pętli głównej co ściśle określony czas i tak żeby nie stosować z tego while( ADCSR....

Można też w przerwaniu jakiegoś timera itp itd

_________________
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: 23 wrz 2012, o 08:30 

Pomógł: 0

Sam po prostu olewam wewnętrzne ADC i stosuję zewnętrzne i tylko obrabiam przylatujący sygnał. Sam przetwornik zajmuje się całą resztą, łącznie z kalibracją itp.



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 23 wrz 2012, o 09:35 
Offline
Użytkownik

Dołączył(a): 15 lut 2012
Posty: 344
Lokalizacja: Bydgoszcz
Pomógł: 11

Jak kiedyś bawiłem się przetwornikiem A/D w AVR to używałem przerwania tego przetwornika. Jak znajdę kod źródłowy to się nim chętnie podzielę :).

Pozdrawiam!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 wrz 2012, o 11:39 
Offline
Moderator
Avatar użytkownika

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

Panowie ale mam nadzieję że wiecie o tym że z adc można korzystac w trybie na żądanie i to bez sprawdzania tej flagi ? czy nie wiecie?

_________________
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: 23 wrz 2012, o 11:47 
Offline
Moderator
Avatar użytkownika

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

Ale ja dokładnie piszę o sytuacji bez free runingu ;)

_________________
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: 23 wrz 2012, o 11:47 
Offline
Użytkownik

Dołączył(a): 15 lut 2012
Posty: 344
Lokalizacja: Bydgoszcz
Pomógł: 11

Ok poniżej mój kod źródłowy do ADC - przerobiony by był według nowych standardów ;)


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


Wadą jest to że ten mój potworem mierzy tylko na jednym kanale :cry: ale może wezmę się za przerobienie na tryb wielokanałowy ;) .



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 wrz 2012, o 11:55 
Offline
Użytkownik

Dołączył(a): 29 mar 2012
Posty: 595
Lokalizacja: Jaworzno
Pomógł: 39

Tak przy okazji poczytaj o volatile, np na blogu Mirka.

_________________
Pozdrawiam
PP



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 wrz 2012, o 12:00 
Offline
Użytkownik

Dołączył(a): 15 lut 2012
Posty: 344
Lokalizacja: Bydgoszcz
Pomógł: 11

Tak tak, zapominałem o volatile ale to już przez lekki pośpiech... Po prostu chciałem pokazać jak można taki pomiar na przerwaniu od przetwornika zrobić...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 wrz 2012, o 14:10 
Offline
Użytkownik
Avatar użytkownika

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

mirekk36 napisał(a):
Panowie ale mam nadzieję że wiecie o tym że z adc można korzystac w trybie na żądanie i to bez sprawdzania tej flagi ? czy nie wiecie?

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

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


Zmienne "Pomiar_..." globalne z volatile.

_________________
Czekamy na RedBook'a!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 wrz 2012, o 14:18 
Offline
Moderator
Avatar użytkownika

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

ale to co napisałeś to FreeRuning Mode z użyciem ISR( ADC_vect ) ;) więc to nadal nie to co ja mam na myśli .

_________________
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: 23 wrz 2012, o 14:29 
Offline
Użytkownik
Avatar użytkownika

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

Ja tego nie używam w trybie FreeRuning tylko do pojedynczych pomiarów wywoływanych wywołaniem (masło maślane) funkcji start_pomiaru_adc(kanal); :lol:

_________________
Czekamy na RedBook'a!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 wrz 2012, o 14:44 
Offline
Moderator
Avatar użytkownika

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

Ok - jasne - nie zauważyłem ;) ... ale wkrótce chyba opiszę jeszcze na blogu kilka ciekawych możliwości.

_________________
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: 13 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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