Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uint8_t ds_reset_pulse(uint16_t PinMask)
- {
- uint16_t result;
- if((PORT->IDR & PinMask)==0) return 2; //проверить линию на отсутствие замыкания
- PORT->ODR &= ~PinMask; //потянуть шину к земле
- TIMER->CNT=0;
- while(TIMER->CNT<480){}; //ждать 480 микросекунд
- PORT->ODR |= PinMask; //отпустить шину
- while(TIMER->CNT<550){}; //ждать 70 микросекунд
- result = PORT->IDR & PinMask; //прочитать шину
- while(TIMER->CNT<960){}; //дождаться окончания инициализации
- if(result) return 1; //датчик не обнаружен
- return 0; //датчик обнаружен
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement