Группа: Участник
Сообщений: 17
Регистрация: 7-01-12
Пользователь №: 69 203
Добрый день, форумчане. Захотелось мне реализовать проверку 3-х пинов (P0.2, P0.3 и P0.20) на КЗ на землю или питание. Решил реализовать это следующим образом: сконфигурировать как выход, для проверки КЗ на землю выставлять "1" (FIO0SET=1<<2 например) и FIO0PIN-ом считывать состояние (если верить мануалу состояние пина захватится не взависимости от конфига PINSEL0) - если "0" - значит коротец. проверка на КЗ к плюсу - с точностью до наоборот. это прокатывает для пинов 0.2 и 0.3. А вот с 20-ым нарисовался непонятный баг: если выставить 0 - FIOCLR=1<<20, то FIO0PIN будет считывать сосотояние пина адекватно, будь он посажен на GND или Vpp. А вот если его выставить в 1 - FIO0SET=1<<20, то FIOPIN будет всегда выдавать "1", даже если пин закорочен на землю.