I see no code saying "port b shall be used for output" .... do you ?
Ramon.