Столкнулся с очень странным поведением __delay_cycles. Все прерывания запрещены, ничего лишенего не работает. Но импульс с порта С имеет совершенно разные длительности, причём разница значительна:
//если батарея подключена - можно включить питание DC/DC 3.3v if(SYSTEM.flag_BatteryPower) { PORTC |= (1<<DC3v3); __delay_cycles(_1ms); //Вот тут задержка строго равна 1ms PORTC &=~(1<<DC3v3); if(CHECKBIT(PINF, CameraVolt)) SYSTEM.flag_CameraPower = true; else { PORTC |= (1<<DC3v3); __delay_cycles(_1ms); //А вот тут уже 20ms PORTC &=~(1<<DC3v3); } }
--------------------
|