@@ -91,6 +91,7 @@ void mperror_init0 (void) {
9191 // configure the system led
9292 pin_config ((pin_obj_t * )& MICROPY_SYS_LED_GPIO , PIN_MODE_0 , GPIO_DIR_MODE_OUT , PIN_TYPE_STD , PIN_STRENGTH_6MA );
9393#endif
94+ mperror_heart_beat .enabled = true;
9495 mperror_heartbeat_switch_off ();
9596}
9697
@@ -132,25 +133,19 @@ void mperror_signal_error (void) {
132133 }
133134}
134135
135- void mperror_enable_heartbeat (void ) {
136- mperror_heart_beat .enabled = true;
137- }
138-
139136void mperror_heartbeat_switch_off (void ) {
140- mperror_heart_beat .on_time = 0 ;
141- mperror_heart_beat .off_time = 0 ;
142- MAP_GPIOPinWrite (MICROPY_SYS_LED_PORT , MICROPY_SYS_LED_PORT_PIN , 0 );
143- }
144-
145- void mperror_disable_heartbeat (void ) {
146- mperror_heart_beat .do_disable = true;
137+ if (mperror_heart_beat .enabled ) {
138+ mperror_heart_beat .on_time = 0 ;
139+ mperror_heart_beat .off_time = 0 ;
140+ MAP_GPIOPinWrite (MICROPY_SYS_LED_PORT , MICROPY_SYS_LED_PORT_PIN , 0 );
141+ }
147142}
148143
149144void mperror_heartbeat_signal (void ) {
150145 if (mperror_heart_beat .do_disable ) {
151- mperror_heart_beat .enabled = false;
152146 mperror_heart_beat .do_disable = false;
153147 mperror_heartbeat_switch_off ();
148+ mperror_heart_beat .enabled = false;
154149 }
155150 else if (mperror_heart_beat .enabled ) {
156151 if (!mperror_heart_beat .beating ) {
@@ -206,15 +201,15 @@ void nlr_jump_fail(void *val) {
206201/// \function enable()
207202/// Enables the heartbeat signal
208203STATIC mp_obj_t pyb_enable_heartbeat (mp_obj_t self ) {
209- mperror_enable_heartbeat () ;
204+ mperror_heart_beat . enabled = true ;
210205 return mp_const_none ;
211206}
212207STATIC MP_DEFINE_CONST_FUN_OBJ_1 (pyb_enable_heartbeat_obj , pyb_enable_heartbeat );
213208
214209/// \function disable()
215210/// Disables the heartbeat signal
216211STATIC mp_obj_t pyb_disable_heartbeat (mp_obj_t self ) {
217- mperror_disable_heartbeat () ;
212+ mperror_heart_beat . do_disable = true ;
218213 return mp_const_none ;
219214}
220215STATIC MP_DEFINE_CONST_FUN_OBJ_1 (pyb_disable_heartbeat_obj , pyb_disable_heartbeat );
0 commit comments