Гы...;О) Ну стоит у меня в готовом девайсе переключаемый полосовичок на м8, теперь, правда на м48. Бо при той-же тактовой(16М) жрёт меньше. По уровню -60дБ около 30-35Гц на 50Гц. На 75гЦ получше, на 25, похуже. Около 200-250тап на фильтер. 2003г, уже не помню. 24р коэфф и 10р данные. Фсэмпл, кажысь, 800Гц. Арифметика, ессно, знаковая.
Ну там ещё мелочи типа АРУ, пикового детектора, интерполятора перехода через "0". Причём, это составная часть прибора. А весь прибор прошёл все серт испытания, получил тип и лежит в каталоге срецтв измерения. Повторять его смысла не вижу ;О). Достаточно нарисовать МАС с 24*16signed и 6 или 7байтным аккумулятором для длины фильтера, скажем, 200(надо прикинуть, ну х с ним, пусть будет 7). И посчитать тактики на МАС. 1250мкс/200=6,25мкс=62 такта при 10Мгц и 100тактов при 16. И посмотреть, помещается наш МАС в это время или нет. В АВР на 16 поместился с 10-15% запасом.
;начало из беньчморка эти такты щщитать не бум, бо копейки. ldi temporary1,high(circular_buffer_for_LPF_bot) UHF_level_data_filtering_loop: cpi xl,low(circular_buffer_for_LPF_bot) ;1 cpc xh,temporary1 ;1 brcs UHF_level_data_filtering_ptr ;2 ldi xl,low(circular_buffer_for_UHF_LPF) ldi xh,high(circular_buffer_for_UHF_LPF) UHF_level_data_filtering_ptr: ld sy_s_l,x+ ;2 ld sy_s_h,x+ ;2 lpm coff_s_l,z+ ;3 lpm coff_s_m,z+ ;3 lpm coff_s_h,z+ ;3 muls coff_s_h,sy_s_h ;2 movw mres_3,r0 ;1 mul coff_s_m,sy_s_l ;2 movw mres_1,r0 ;1 mulsu coff_s_h,sy_s_l ;2 sbc mres_4,zero_reg ;1 add mres_2,r0 ;1 adc mres_3,r1 ;1 adc mres_4,zero_reg ;1 mulsu sy_s_h,coff_s_m ;2 sbc mres_4,zero_reg ;1 add mres_2,r0 ;1 adc mres_3,r1 ;1 adc mres_4,zero_reg ;1 mulsu sy_s_h,coff_s_l ;2 sbc mres_3,zero_reg ;1 sbc mres_4,zero_reg ;1 add mres_1,r0 ;1 adc mres_2,r1 ;1 adc mres_3,zero_reg ;1 adc mres_4,zero_reg ;1 mul coff_s_l,sy_s_l ;2 add mres_1,r1 ;1 adc mres_2,zero_reg ;1 adc mres_3,zero_reg ;1 adc mres_4,zero_reg ;1 add acc0,mres_0 ;1 adc acc1,mres_1 ;1 adc acc2,mres_2 ;1 adc acc3,mres_3 ;1 adc acc4,mres_4 ;1 adc acc5,zero_reg ;1 adc acc6,zero_reg ;1 dec main_counter ;1 brne UHF_level_data_filtering_loop ;2вот, вроде 63 такта получилось. Плюс другая работа по мелочи. Итого на 16МГц мега задачу покрывает с запасом.
-
- Выкладывай в проекты. - =L.A.=(31.08.2006 15:37, )