VAI (15.01.2008 11:00, просмотров: 92) ответил st232bd на И коментарии нормально отобразятся?
смотри, правда пришлось твой текст заново форматировать приорететов Capture и Timer. Для надёжности пишем обе.
//----------
unsigned long time = 0, time_of_pulse = 0;
void main (void)
{
....
}
__interrupt void Timer (void)
{
time += 0x10000; //Инкремент старшей части
TOIF = 0;
}
__interrupt void Capture (void)
{
time_of_pulse = time + CCRval;
//Заплатка, если CCR после переполнения
//таймера сработал, а таймер не
// синкрементировал старшую часть
//
if ((CCRval < 32000) && (TOIF = 1))
time_of_pulse += 0x10000;
//Заплатка если Capture из прошлого периода
//не обработано, а таймер перепролнился и уже
//синкрементировал старшую часть
if ((TMR < 32000)&&(TOIF = 0)&&(CCRval > 32000))
time_of_pulse -= 0x10000;
}