Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
АЦП используется для обратотки сигнала обратной связи , т.е. мне не надо собирать массив данных, а потом его обрабатывать, мне нужна быстрая реакция на один результат.
сначала конфирируем порт как выход и записываем туда все нули:
GpioMuxRegs.GPBMUX.all = 0x0000;
GpioMuxRegs.GPBDIR.all=0xFFFF;
GpioDataRegs.GPBDAT.all = 0x0000;
потом запускаем АЦП и ждем результата преобразования:
while (AdcRegs.ADCST.bit.INT_SEQ1== 0) {}
и смотрим что находится в AdcRegs.ADCRESULT0:
if ( AdcRegs.ADCRESULT0 >= 0x0009 )
{
GpioDataRegs.GPBSET.all = 0xFFFF; //если не 0 то все выводы 1
}
else
{
GpioDataRegs.GPBCLEAR.all = 0xFFFF;//если 0 то выводы 0
};
и смотрю осциллографом одним лучем на вход АЦП, а другим на GPB01 и считаю время между входным сигналом и тем что происходит на выходе, мне надо чтобы это время было не более 250-300 нс,
может я что не так делаю, да кстати какие опции в компиляторе надо выставить чтобы было максимальное быстродействие?!
Составить ответ | Вернуться на конференцию
Ответы
- Обязательно ставить все 16 выводов в 1 или в 0? Если можно только младшую половину, то проверка и установка укладывается в 4 МЦ. - GM (06.10.2008 14:24:51 84.252.243.82, 583 байт)
- Ответ: (+) - kamil (06.10.2008 13:10:27 192.168.163.219,193.124.167.14, 450 байт)
- Ответ: совсем забыл, 80 нс - это минимальное время за которое может преобразовать АЦП, так что надо все пределители выставить 1, окно семпл\холд тоже сделать 1, тогда получите 80нс, если вру, то пусть поправят. - kamil (06.10.2008 13:17:45 192.168.163.219,193.124.167.14, пустое)
- Ответ: вру - kamil (06.10.2008 13:27:46 192.168.163.219,193.124.167.14, пустое)
- спасибо попробую - zag (06.10.2008 13:15:11 192.168.1.89,84.204.194.35, 161 байт)