char read_y(void)
{
	//cli();
	char y_value;
	y_value = get_adc_data(MUX_Y);
	return (y_value);
}
char read_x(void)
{
	//cli();
	char x_value;
	x_value = get_adc_data(MUX_X);
	return (x_value);
}
char read_z(void)
{
	//cli();
	char z_value;
	z_value = get_adc_data(MUX_Z);
	return (z_value);
}
static void fast_check_key_adc(unsigned long arg)
{
	fast_adc_val = 0;
    fast_adc_avg_val = 0;
    
	SEC_HEADSET_DBG("  ");

    //gpio_direction_output(EAR_ADC_SEL_GPIO , 0);	
    
	fast_adc_val = get_adc_data(3);
	//printk("fast_check_key_adc() ADC value is = %d\n" , fast_adc_val);

    fast_adc_val += get_adc_data(3);
	//printk("fast_check_key_adc() ADC value is = %d\n" , fast_adc_val);

	fast_adc_avg_val = fast_adc_val / 2;
	printk("fast_key_adc() avg_val is = %d\n" , fast_adc_avg_val);
	
    //gpio_direction_output(EAR_ADC_SEL_GPIO , 1);		
}
static void check_key_adc(unsigned long arg)
{
	int adc_val;

	SEC_HEADSET_DBG("  ");
	adc_val = get_adc_data(3);
	//printk("- Earkey pressed ADC %d\n" , adc_val);
	
	if(adc_val <= 150 && adc_val >= 75)
	{
		printk("[Earkey]adc is within %d\n", adc_val);
		check_adc++;
	}
	else
	{
		printk("[Earkey]adc is NOT within %d\n", adc_val);
	}

	adc_buffer[count++] = adc_val;
}
示例#6
0
文件: hpl.c 项目: iplusu/sarp
}

void TOSH_adc_sample_stop(void)
{
  ((adc_tick_data_t*)adcEvents[tos_state.current_node]->data)->valid = 0;
}

uint16_t get_adc_data(uint8_t port) {
  return tos_state.adc->read(tos_state.current_node, port, tos_state.tos_time);
}

TOS_SIGNAL_HANDLER(SIG_ADC, ()) {
  ADCDataReadyEvent ev;
  uint16_t data;
  uint8_t port = ((adc_tick_data_t*) adcEvents[tos_state.current_node]->data)->port;
  data = get_adc_data(port);
  TOSH_adc_data_ready(data);
  ev.port = port;
  ev.data = data;
  HPLC_DEBUG(fprintf(stderr, "Sending adc ready event with data = %x\n", data));
  sendTossimEvent(tos_state.current_node, AM_ADCDATAREADYEVENT, tos_state.tos_time, &ev);
  
}

void event_adc_handle(event_t* event, struct TOS_state* state) {
  TOS_ISSUE_SIGNAL(SIG_ADC)();
  if (((adc_tick_data_t*) event->data)->valid) {
    TOS_queue_insert_event(event);
  }
  else { 
    // Commented out due to observed