Перейти к содержанию
    

Просэмплировать по времени

3 hours ago, jenya7 said:

после 3 мили тригер поднялся и индекс изменился

Да, стормозил. Только к чему вообще такой костыль? Добавьте строб длительностью 1 такт на каждую миллисекунду.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 hours ago, Flip-fl0p said:

Вот решение задачи в лоб (код не проверял, но суть думаю ясна)

 

спасибо. но я не могу выставить adc_3ms_valid <= '1'; мне нужно запустить конвертацию и дождаться сигнал готовности данных.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А мне мое решение нравиться

ST2.thumb.png.cd59b4f60a33c235f80f512975e828f2.png

вполне себе отработало. милисекунда конечно ужатая, иначе в сигнал тап всё не влезло бы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

такая проблема. надо просемплировать несколько значений и взять среднее

 

when ST_ADC_AVG =>
    if (adc_idx <= ADC_SAMPLES) then
	    ADC_TRIG <= '1';
		if (ADC_READY = '1') then
		    ADC_TRIG <= '0'; 
			adc_average <= adc_average + ADC_VAL_IN;
			adc_idx := adc_idx + 1;
		end if;
	else
	    adc_average <= std_logic_vector( unsigned(adc_average) / unsigned(ADC_SAMPLES) );
        adc_average <= std_logic_vector( to_unsigned ( (to_integer( unsigned(adc_average) / unsigned(ADC_SAMPLES) ) ), 32 ) );
		ChargeState <= ST_SAMPLE;

оба варианта компилируются

adc_average <= std_logic_vector( unsigned(adc_average) / unsigned(ADC_SAMPLES) );

adc_average <= std_logic_vector( to_unsigned ( (to_integer( unsigned(adc_average) / unsigned(ADC_SAMPLES) ) ), 32 ) );

но я так понимаю можно пойти более коротким путем? двойная конвертация не нужна?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...