What is the difference between the weak pull-up output and the push-pull output of the microcontroller?