ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
2 июля
67388 Топик полностью
=mse= (31.08.2006 12:47, просмотров: 1) ответил =L.A.= на Дык, я у тебя не диаграммы/таблички спрашивал, а какой нить готовый девайс. Который можно собрать и сравнить с другим.
Гы...;О) Ну стоит у меня в готовом девайсе переключаемый полосовичок на м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МГц мега задачу покрывает с запасом.