GM (12.09.2006 13:04, просмотров: 1) ответил jaga-jaga на поллинга тоже не будет ;) пусть будет разрешено лишь одно прерывание от модуля CCP
Нет, так не пойдёт. У вас должно быть по крайней мере три прерывания: сравнение, переполнение и усарт, но есть только два вектора прерывания. Поэтому поллинг будет нужен. Прерывание от таймера по сравнению может возникнуть до 24 раз за период шима. Прерывание по переполнению - только один раз в конце периода шима. Естественно, они не перекрываются, но максимальная длина одного или другого будет определять период шим. Ну вот у меня 18 МЦ на сравнение и 15 на переполнение. Значит, определяющими являются 18 МЦ, а не 15 МЦ и период шим будет 20000кГц/256/18=4,340кГц. Также и у вас, даже если ваше прерывание по сравнению быстрое, но второе прерывание с поллингом помедленнее, то второе прерывание и будут определять быстродействие шим, как ни прискорбно.
Всё-таки давайте поглядим на полный код формирования шим и посчитаем такты для пика. Не страшно, если вы что-то пропустите или добавите, мы же не формалисты, как AVR(:-), поправим!
Скажу еще вот что. В отличие от AVR, я не хочу любой ценой добиться признания того, что авр быстрее пика. Просто мне самому кажется, что авр побыстрее и его архитектура поприятнее что ли, но надо всегда быть справедливым, поэтому давайте поищем истину вместе.