diff options
Diffstat (limited to 'src/kernel')
| -rw-r--r-- | src/kernel/ao_pyro.c | 10 | ||||
| -rw-r--r-- | src/kernel/ao_pyro.h | 2 | 
2 files changed, 10 insertions, 2 deletions
| diff --git a/src/kernel/ao_pyro.c b/src/kernel/ao_pyro.c index 56758fa4..0ee7fbee 100644 --- a/src/kernel/ao_pyro.c +++ b/src/kernel/ao_pyro.c @@ -403,7 +403,10 @@ ao_pyro_show(void)  			if (ao_pyro_values[v].offset != NO_VALUE) {  				int16_t	value; -				value = *((int16_t *) ((char *) pyro + ao_pyro_values[v].offset)); +				if (ao_pyro_values[v].flag & AO_PYRO_8_BIT_VALUE) +					value = *((uint8_t *) ((char *) pyro + ao_pyro_values[v].offset)); +				else +					value = *((int16_t *) ((char *) pyro + ao_pyro_values[v].offset));  				printf ("%6d ", value);  			} else {  				printf ("       "); @@ -467,7 +470,10 @@ ao_pyro_set(void)  			ao_cmd_decimal();  			if (ao_cmd_status != ao_cmd_success)  				return; -			*((int16_t *) ((char *) &pyro_tmp + ao_pyro_values[v].offset)) = ao_cmd_lex_i; +			if (ao_pyro_values[v].flag & AO_PYRO_8_BIT_VALUE) +				*((uint8_t *) ((char *) &pyro_tmp + ao_pyro_values[v].offset)) = ao_cmd_lex_i; +			else +				*((int16_t *) ((char *) &pyro_tmp + ao_pyro_values[v].offset)) = ao_cmd_lex_i;  		}  	}  	_ao_config_edit_start(); diff --git a/src/kernel/ao_pyro.h b/src/kernel/ao_pyro.h index 34c99078..b37aaeb1 100644 --- a/src/kernel/ao_pyro.h +++ b/src/kernel/ao_pyro.h @@ -65,6 +65,8 @@ struct ao_pyro {  	uint8_t			fired;  }; +#define AO_PYRO_8_BIT_VALUE	(ao_pyro_state_less|ao_pyro_state_greater_or_equal) +  extern uint8_t	ao_pyro_wakeup;  extern uint16_t	ao_pyro_fired; | 
