Цитата(singlskv @ Jun 3 2007, 20:03)

1. А зачем нужны 2 прерывания (и таймер и ADC)?
одно соответствует моменту запуска АЦП, второе считывает и обрабатывает результат.
Сделано так - чтобы покрыть общий случай, когда какие-то действия необходимо сделать до запуска преобразования, какие-то после.
(Например, после преобразования может потребоваться переключить канал и выполнить запуск еще одного преобразования).
Цитата
2. Почему первое преобразование начинается в прерывании таймера, а не в момент
инициализации таймера ?
Чтобы было меньше исключений. Т.к. меньше исключений - меньше кода - меньше потенциальных ошибок.
Нет разницы в том откуда будет выполнен запуск первого преобразования.
Цитата
3. Почему при инициализации таймера не производится первое "длинное" преобразование ?
Потому что это делать нежелательно - чтобы не было конфликтов с запуском АЦП из разных потоков. Даже если исключить возможность конфликтов, то просто незачем добавлять дупликат кода.
Цитата
А если выбранный частота преобразования будет легко вписываться в обычный цикл
преобразования но не будет вписываться в "длинный" ?
Опять единичное исключение. Это не важно, т.к. длинное преобразование выполняется только один раз. Все остальные будут короткими. Но если для вас рез-тат первого преобразования важен, тогда вы можете уменьшить предделитель АЦП - чтобы время преобразования вписывалось в цикл перезапуска.