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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 20 maja 2025, o 01:42


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
    Autor Wiadomość
    PostNapisane: 22 wrz 2014, o 12:37 
    Offline
    Nowy

    Dołączył(a): 15 sty 2014
    Posty: 11
    Pomógł: 0

    Witam,

    Buduję rejestrator ADC z zapisem/odczytem na kartę SD.Układ oparty jest na procesorze Atmega 1284P. Taktowany jest zewnętrznym kwarcem 16MHz. Cały układ pracuje na napięciu 5V poza kartą SD (zasilanie 3.3V + 74LCV125D). Od strony elektronicznej-hardware'owej wszystko pracuje prawidłowo, problemem jest oprogramowanie.

    Urządzenie składa się z wyświetlacza, potencjometrów (ADC), przycisków zrobionych na drabince rezystorów oraz podświetlania przycisków za pomocą diód led.
    Wyświetlacz 4x40 i podświetlanie przycisków mam zrobione na 3 rejestrach przesuwnych. Dane wysyłam za pomocą sprzętowego SPI.

    Na sprzętowym SPI mam również podłączoną kartę SD, na którą chciałbym zapisywać dane.
    Na karcie SD chciałbym rejestrować sygnał z 5 kanałów ADC w krótkich odstępach czasowych( np. co 1ms – zależy mi na dokładności) i zapisywać je na karcie SD w formacie .csv. Później chciałbym te dane odtwarzać i sterować wypełnieniem wyjść PWM z taką samą prędkością jak zapis nie zakłócając tym samym pracy wyświetlacza, czy też podświetlania klawiszy.

    Główny problem najprawdopodobniej polega na traceniu się wyników pomiędzy przełączaniem się na kolejny bufor. Kolejnym problemem może być choć nie musi sposób wysyłania danych przez SPI. Na jednym sprzętowym SPI jest Karta SD + bufor 74LCV125D oraz 3 rejestry przesuwne 74HC595, do których podłączone są diody oraz wyświetlacz 4x40. Zatrzask dla rejestrów przesuwnych jest na pinie PA7 natomiast CS dla karty jest na pinie PB4.

    W temacie topic7793.html#p87881 starałem uzyskać pomoc niestety od dłuższego czasu nikt nie odpowiada.

    W moim miasteczku nie ma raczej osoby, która interesowałaby się programowaniem mikrokontrolerów w C. Stąd moja ogromna prośba o zdalną pomoc.

    Z góry dziękuję za odpowiedzi i pozdrawiam



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 wrz 2014, o 13:01 
    Offline
    Użytkownik

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

    A czy próbowałeś zrobić sam zapis na kartę?
    Co prawda piszesz, że z częścią sprzętową jest wszystko OK, ale...
    Chodzi mi nie o same testy zapisu na kartę, ale o zapis tylko i wyłącznie na kartę
    w takim reżimie jak oczekujesz tego po gotowej aplikacji? Czyli 5 ADC co 1ms?
    Bez klawiszy, podświetlenia i wyświetlacza.
    W tamtym temacie przedstawiłeś kod liczący ponad 1000 linii i trudno to analizować :-(

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



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 wrz 2014, o 14:17 
    Offline
    Nowy

    Dołączył(a): 15 sty 2014
    Posty: 11
    Pomógł: 0

    Niestety nie wiem jak mam zrobić taki test zapisu na kartę...Chodzi Ci o sprawdzenie prędkości zapisu w Kb/s za pomocą programu wgranego na atmege czy na PC za pomocą jakiegoś oprogramowania służącego do sprawdzania prędkości zapisu??
    Widziałem, że na stronie elm-chana były robione takie testy...

    Odnośnie programu, który zawarłem w temacie wcześniejszym to chodziło mi o sprawdzenie tylko paru funkcji odnośnie zapisu.

    Czy mam poprawną konfigurację ADC?
    Czy funkcje "adcinttostr_buf..." zapełniania poszczególnych buforów jest poprawna? Czy konwersja z int na string ma odbywać się tak często?
    Czy funkcja "zapis" służąca do przełączania pomiędzy kolejno zapychającymi się buforami jest poprawnie napisana?
    Czy funkcja "FatFS_Write" wywoływana jest w odpowiednim miejscu?
    Czy funkcja switch do przełączenia się kanałów ADC w przerywaniu od ADC jest poprawna oraz czy warunek (while(ADCSRA & (1<<ADSC));) o zakończonej konwersji Analog Cyfra jest poprawny?
    Czy konfiguracja timerów i innych peryferiów jest poprawna?

    Między innymi na te pytania chciałem otrzymać odpowiedź....
    A wkleiłem cały program żeby nie wklejać osobno poszczególnych funkcji.

    Pozdrawiam



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

    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