Witam,
Do tej pory pisałem wiele programów na uC według jednej znanej mi koncepcji która sprawdzała się w mniejszych projektach.
Koncepcja polegała na tym aby przerwania były jak najkrótsze więc zazwyczaj ograniczało się to do ustawiania flag np.
Po czym w głównej pętli sprawdzałem każdą zmienną i wykonywałem stosowne działania w stylu:
Koncepcja była niezła, sprawdzała się w prostych aplikacjach ale do czasu. Obecnie piszę dość duży projekt i już wiem, że ta koncepcja się nie sprawdzi.
Mam do obsłużenia 6 DAC`ów 6 ADC do obliczenia z każdego RMS może jakieś FFT Rozbudowane menu, komunikacje z PC, 2 wyświetlacze graficzne i zastanawiam się jak do tego pojeść. Czy może ktoś polecić jakąś literaturę/strony na ten temat
? Nie chodzi tu o to jak obsłużyć dane peryferie czego jest wiele w internecie tylko jak projektować większe programy. Mam nadzieje, że obejdzie się bez RTS. Oczywiście mogę to rozbić na kilka uC ale nie chcę iść na skróty.
Do tej pory pisałem wiele programów na uC według jednej znanej mi koncepcji która sprawdzała się w mniejszych projektach.
Koncepcja polegała na tym aby przerwania były jak najkrótsze więc zazwyczaj ograniczało się to do ustawiania flag np.
PPRZEWANIE_TIMERA1{
Flag_timer1=1;
}Po czym w głównej pętli sprawdzałem każdą zmienną i wykonywałem stosowne działania w stylu:
void main (){
while(1){
if(Flag_timer1=1){
//odśwież wyświetlacz
//przelicz coś itp;
}
if( GetKeys()){
//idź do menu
//zmień stan portu itp.
}
//i tak dalej
}
}
Koncepcja była niezła, sprawdzała się w prostych aplikacjach ale do czasu. Obecnie piszę dość duży projekt i już wiem, że ta koncepcja się nie sprawdzi.
Mam do obsłużenia 6 DAC`ów 6 ADC do obliczenia z każdego RMS może jakieś FFT Rozbudowane menu, komunikacje z PC, 2 wyświetlacze graficzne i zastanawiam się jak do tego pojeść. Czy może ktoś polecić jakąś literaturę/strony na ten temat
? Nie chodzi tu o to jak obsłużyć dane peryferie czego jest wiele w internecie tylko jak projektować większe programy. Mam nadzieje, że obejdzie się bez RTS. Oczywiście mogę to rozbić na kilka uC ale nie chcę iść na skróty.