Witam
Jest to pierwszy taki szerszy mój projekt w tej dziedzinie. Mam AT8, która generuje sygnał zegarowy 1 MHz. Ten sygnał taktuje pewien układ i ten układ zwraca sygnał analogowy o częstotliwości około 1MHz (w każdym razie musiałbym próbkować co 1 us).
Jednocześnie musiałbym te wyniki gdzieś przesyłać dalej. Mianowicie USART, dane podglądam na bieżąco w terminalu.
Procek jest taktowany rezonatorem kwarcowym 10MHz
Obecnie mam uruchomiony ADC w trybie free run z preskalerem 4 i włączonym przerwaniem po wykonaniu pomiaru. Gdy wystąpi przerwanie to przepisuje ADCH i ADCL do dwóch zmiennych i uruchamiam przerwanie UDRE, w którym to konwertuje sobie te dane do typu char i potem wysyłam przez USART do terminala. Problem w tym, że w terminalu pojawiają się jakieś śmieci. To znaczy moim zdaniem wywoływanie przerwania w przerwaniu to chyba nie najlepszy pomysł, ponieważ pewnie USART nie nadąża z transmisją za pomiarami i dostaję pewnie co którąś próbkę lub nic nie dostaję (ciężko stwierdzić).
Czy ktoś mógłby mi podsunąć jakiś pomysł jak rozwiązać ten problem w inny sposób lub wskazać błędy w moim toku postępowania.
Jest to pierwszy taki szerszy mój projekt w tej dziedzinie. Mam AT8, która generuje sygnał zegarowy 1 MHz. Ten sygnał taktuje pewien układ i ten układ zwraca sygnał analogowy o częstotliwości około 1MHz (w każdym razie musiałbym próbkować co 1 us).
Jednocześnie musiałbym te wyniki gdzieś przesyłać dalej. Mianowicie USART, dane podglądam na bieżąco w terminalu.
Procek jest taktowany rezonatorem kwarcowym 10MHz
Obecnie mam uruchomiony ADC w trybie free run z preskalerem 4 i włączonym przerwaniem po wykonaniu pomiaru. Gdy wystąpi przerwanie to przepisuje ADCH i ADCL do dwóch zmiennych i uruchamiam przerwanie UDRE, w którym to konwertuje sobie te dane do typu char i potem wysyłam przez USART do terminala. Problem w tym, że w terminalu pojawiają się jakieś śmieci. To znaczy moim zdaniem wywoływanie przerwania w przerwaniu to chyba nie najlepszy pomysł, ponieważ pewnie USART nie nadąża z transmisją za pomiarami i dostaję pewnie co którąś próbkę lub nic nie dostaję (ciężko stwierdzić).
Czy ktoś mógłby mi podsunąć jakiś pomysł jak rozwiązać ten problem w inny sposób lub wskazać błędy w moim toku postępowania.