Yft (15.03.2016 16:41, просмотров: 101) ответил Bill на Да дело вовсе не в наглядности. Результаты в разных случаях будут совершенно различные. Проверьте их на каких-то конкретных данных. Или мне это сделать?
Почти сделал, но работает не так, как планировал
unsigned char i;
unsigned char CableState, Number_of_good_wires, Number_of_bad_wires, pinstate,bitmask;
const unsigned char No_cable = 0x00;
const unsigned char Good_cable = 0x02;
const unsigned char Bad_cable = 0x01;
const unsigned char Number_of_wires = 7;
----------
CableState = No_cable;
Number_of_good_wires = 0;
Number_of_bad_wires = 0;
// Checking 1st wire PORTB - PORTD
for (i=0;i<Number_of_wires;i++)
{
bitmask = (1<<i);
PORTB = ~bitmask;
_NOP();
_NOP();
_NOP();
pinstate = PIND;
if (!(pinstate & bitmask)) {Number_of_good_wires++;}
if (~(pinstate | bitmask)) {Number_of_bad_wires++;}
}
В результате правильные провода вроде считает правильно, а вот при неподключенном кабеле считает что есть 7 шт Number_of_bad_wires а должно бы ноль.