ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
8 мая
95190
Petr_ (25.07.2007 16:06, просмотров: 1395)
Вопрос по использованию инструкции DISI в dsPIC  Собственно использовать то ее несложно. Есть макрос DisableInterrupts(cycles) Но как это делать красиво? Одно дело дергать вверх/вниз уровень прерываний. <c> for(i=1;i<=8;i++) //байт { Rez>>=1; //сдвиг IPL=SRbits.IPL; //уровень прерываний SRbits.IPL=0b111; //уровень прерываний 7 Termo_Pull(); //начало запроса бита DelayMkS(2); //более 1ms Termo_In(); //отпустили линию DelayMkS(11); //время до момента sample if(TERMO_PORT) Rez|=0b10000000; //прием 1-цы SRbits.IPL=IPL; //восстановим уровень прерываний DelayMkS(50); //время до конца slot+recovery time } </c> А как посчитать на сколько инструкций нужно их запретить для DISI ? Ставить "с запасом" и некрасиво и неправильно в приведенном участке кода. Т.е. как бы переложить подсчет количества инструкций "от сих до сих" на компилятор.