add volatile to hardware registers