[an error occurred while processing this directive]
|
нужно через ДМа писать в ЦАП, но перед началом работы записать туда (один раз) управляющее значение
.
без использования ДМА я это делал просто:
иниц. посл.порта.
его разрешение
запись значения контролирующего слова.
все остальные значения складываются по прерыванию приема.
.
при ДМА придерживаясь такой идеологии иницииализации: http://www.telesys.ru/wwwboards/dsp/202/messages/10861.shtml
получается так:
настроить посл.порт (ПП)
настроить ДМА
разрешить прерывание от ПП
разрешить работу ПП
послать контр.слово
.
в ISR_ПП:
запретить прерывание от ПП
запретить работу ПП
разрешить прерывание ДМА
разрешить ДМА
разрешить ПП
.
и дальше работать .. но что-то какая-то хитрая последовательность действий.. можно , конечно ничего не менять и все сделать в процедуре подготовки данных на передачу, но получится по вычислениям неоптимально: на каждое значение проверять ппередавалась ли уже эта стартовая (контрольная) посылка
что-то типа:
for(i=DAC_BSIZE;i>0;i--)
*(pbuf_dac++)=(state_dac_first)?(output_dac_value):DAC_CNTRL;
/
как бы это все оптимальней сделать?
E-mail: info@telesys.ru