Цитата(aaarrr @ Mar 21 2009, 20:54)

Почему это? Тут ходи, а тут не ходи?
Потому что либу пишет не один человек. Следовательно, в ней есть места где можно поучиться, а есть и такие о которых Вы пишете.
Цитата
Вред не в конкретной функции, а в подходе к освоению процессора. Нельзя это делать "через либу" - не научит ничему.
А что мешает сказать то же самое про освоение IP стека? Нельзя это делать через готовую либу - ничему не научит. Тем не менее что-то я мало народу встречал, кто собственноручно с нуля по RFC написал TCP/IP. Как правило большинство пользует либы, многие учатся на uIP, который бесспорно кривой по самые не могу, но это же не значит что он вреден.
Сценарий как можно было воспользоваться либой, чтобы чему-то научиться мог бы быть таким.
Открываем указанную функцию:
Код
//*----------------------------------------------------------------------------
//* \fn AT91F_ADC_CfgTimings
//* \brief Configure the different necessary timings of the ADC controller
//*----------------------------------------------------------------------------
__inline void AT91F_ADC_CfgTimings (
AT91PS_ADC pADC, // pointer to a ADC controller
unsigned int mck_clock, // in MHz
unsigned int adc_clock, // in MHz
unsigned int startup_time, // in us
unsigned int sample_and_hold_time) // in ns
{
unsigned int prescal,startup,shtim;
prescal = mck_clock/(2*adc_clock) - 1;
startup = adc_clock*startup_time/8 - 1;
shtim = adc_clock*sample_and_hold_time/1000 - 1;
//* Write to the MR register
pADC->ADC_MR = ( (prescal<<8) & AT91C_ADC_PRESCAL) | ( (startup<<16) & AT91C_ADC_STARTUP) | ( (shtim<<24) & AT91C_ADC_SHTIM);
}
Находим, что SHTIM считается как
shtim = adc_clock * sample_and_hold_time / 1000 - 1;
Что такое adc_clock понятно без вопросов. sample_and_hold_time в ns дает порядок величины.
Из формулы где округление adc_clock идет до единиц Mhz практически сразу ясно что этот параметр не особо важен и м.б. +/- километр.
Далее идем в ДШ и делаем поиск по ключевой фразе Sample and Hold Time и попадаем вот сюда:
Цитата
The user can drive ADC input with impedance up to:
• ZOUT ≤ (SHTIM -470) x 10 in 8-bit resolution mode
• ZOUT ≤ (SHTIM -589) x 7.69 in 10-bit resolution mode
with SHTIM (Sample and Hold Time register) expressed in ns and ZOUT expressed in ohms.
Все, вопрос по SHTIM решен.
Пользовать функцию или написать свою становится уже делом автора.