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