Ejemplo n.º 1
1
 int main()
 {
 	int x,y,z;
	adc_init();

	lcd_init();	delay(100);
	
	data('a');
 	
	while(1) 
	{	cmd(0x01); // Clear LCD
		
		AD0CR = 0x00200600; // ADC Stop, select Channel 0
		AD0CR |= 0x01000000;  // Start ADC, Channel 0
		x = read_adc();
		cmd(0x80);
		dispInt(x);
		
		AD0CR = 0x00200602;
		AD0CR |= 0x01000000;  // Start ADC, Channel 0
		y = read_adc();
		cmd(0x85); 
		dispInt(y);
		
	
		AD0CR = 0x00200604;
		AD0CR |= 0x01000000;  // Start ADC, Channel 0
		z = read_adc();
		cmd(0x8A); 
		dispInt(z);
				  
		if(x>600 )
		{
			cmd(0x01);
			str("ALERT x = ");
			cmd(0xc0);
			dispInt(x);
			delay(1000);
			cmd(0x01);
		}
		if(y<300 )
		{
			cmd(0x01);
			str("ALERT y = ");
			cmd(0xc0);
			dispInt(y);
			delay(1000);
			cmd(0x01);
		}
		delay(100);		

	}
 	
 }
Ejemplo n.º 2
0
int main(void)
{
    printf("Testing ADC measurements\n");
    
    adc_init(ADC_DEVICE_NUMBER, ADC_RESOLUTION);
    
    for (;;) {
        int value = adc_sample(ADC_DEVICE_NUMBER, ADC_CHANNEL_NUMBER);
        printf("adc=%d\n", value);
    }
}
Ejemplo n.º 3
0
int dc_motor_testSetUp(void)
{
	IRQ_ENABLE;
	kdbg_init();
	timer_init();
	proc_init();
	pwm_init();
	adc_init();

	return 0;
}
Ejemplo n.º 4
0
void init_devices (void)
{
 cli(); //Clears the global interrupts
 timer1_init();
 port_init();
 adc_init();
 timer5_init();
 left_position_encoder_interrupt_init();
 right_position_encoder_interrupt_init();
 sei(); //Enables the global interrupts
}
Ejemplo n.º 5
0
void AP_IOMCU_FW::init()
{
    thread_ctx = chThdGetSelfX();

    if (palReadLine(HAL_GPIO_PIN_IO_HW_DETECT1) == 1 && palReadLine(HAL_GPIO_PIN_IO_HW_DETECT2) == 0) {
        has_heater = true;
    }

    adc_init();
    sbus_out_init();
}
Ejemplo n.º 6
0
/** Puts ADC into sleep mode.
    It should wake on next trigger.  */
void
adc_sleep (adc_t adc)
{
    adc_sample_t dummy;

    /*  Errata for SAM7S256:RevisionB states that the ADC will not be
        placed into sleep mode until a conversion has completed.  */
    adc = adc_init (0);
    ADC->ADC_MR |= ADC_MR_SLEEP;
    adc_read (adc, &dummy, sizeof (dummy));
}
Ejemplo n.º 7
0
 /**************************************************************************
 Initializes the analog pins.
 **************************************************************************/
 int analogInit(void)
 {
	 pmc_enable_periph_clk(ID_ADC);
	 adc_init(ADC,sysclk_get_main_hz(),1000000,8);
	 adc_configure_timing(ADC,0,ADC_SETTLING_TIME_3,1);
	 adc_set_resolution(ADC,ADC_MR_LOWRES_BITS_12);
	 adc_enable_channel(ADC,ADC_CHANNEL_7);
	 adc_enable_channel(ADC,ADC_CHANNEL_6);
	 adc_enable_channel(ADC,ADC_CHANNEL_5);
	 adc_configure_trigger(ADC,ADC_TRIG_SW,0);
 }
Ejemplo n.º 8
0
void system_init(void) 
{
  rcc_clock_setup_hse_3v3(&hse_8mhz_3v3[CLOCK_3V3_168MHZ]);
  leds_init();
  adc_init();
  cdcacm_init();
  DTC_SVM_tim_init();
  tim1_up_tim10_isr();
  printled(4, LRED);

}
Ejemplo n.º 9
0
void m1_init_machine(void)
{
    #ifdef ENABLE_FONT_RESOURCE
	InitFont();
	#endif
    #ifdef CONFIG_AML_I2C
	sys_test_i2c_init(&aml_i2c_info, ARRAY_SIZE(aml_i2c_info));
	#endif
	adc_init(&adc_info, ARRAY_SIZE(adc_info));
	power_on_backlight();
}
Ejemplo n.º 10
0
int main(){
	lcd_init();
	adc_port_config();
	adc_init();
	while(1){
		//11 is the channel number
		lcd_print(1, 6, adc_conversion(11), 3);
		_delay_ms(500);
	}
	
}
Ejemplo n.º 11
0
void  main_init( void )
{
  int   sts;
  
  sts = get_reset_reason();
  main_status = MAIN_STS_NO_SNS_ERR;
  main_is_enter_stby_mode = 0;
  
  bio_init();
  clk_init();
  uart_init();
  dbg_wait();
  
#ifdef FEATURE_WDOG_TRIG
  IWDG_Enable();
  bio_led_ctrl( BIO_LED_IX_POWER, 0, 0, 0 );
#else // FEATURE_WDOG_TRIG
  dbg_out( "\r\n**********==> Watchdog Disabled!!!!!\r\n" );
  bio_led_ctrl( BIO_LED_IX_POWER, 500, 500, BIO_LED_ALWAYS_WINK );
#endif  // FEATURE_WDOG_TRIG
  
  dbg_out_pool_const( UART_DBG_MSG_ENTER3 );
  dbg_out( "================== 0x%02X =================\r\n", sts );
  dbg_out( "==== Welcome to %s  Ver %d.%02X ====\r\n",
           MAIN_TIT_STR, MAIN_VER_MAJ, MAIN_VER_MIN );
  dbg_out( "=====   i=%d, si=%d, li=%d, f=%d, d=%d   =====\r\n",
           sizeof( int ), sizeof( short int ),
           sizeof( long  int ),sizeof( float ),sizeof( double ) );
  dbg_out( "=====  %dMHz %s  %s  =====\r\n",
           SystemCoreClock / 1000000, __DATE__, __TIME__ );
  dbg_out_pool_const( UART_DBG_MSG_EQ_LINE );
  dbg_wait();
  
  view_reset_reason( sts );
  eep_param_init();
  IWDG_ReloadCounter();
  
  u3_ctrl.sw_baud = 115200;
  uart3_init();
  sns_init();
  adc_init();
  zb_init();
  encb_init();
  fnd_init();
  indc_init();
  
  bio_set_fan_pwm_base_freq( eep_hw_info.fan_base_f );
  cmd_rx_ptr = u1_ctrl.rx_bptr;
  
  // set monitor timer
  clk_set_timer( &monit_timer, MAIN_MONITOR_MS, MAIN_MONITOR_MS,
                 CLK_SIGS_MONITOR );
  
} // end of main_init()
Ejemplo n.º 12
0
int main(void){
	SystemInit();
	usart1_init();
	adc_init();

	for(;;) {
		printf("core temperature %d\r\n", adc_get_coretemp());
	}

	return 0;
}
Ejemplo n.º 13
0
void init_devices (void)
{
 cli(); //Clears the global interrupts
 port_init();
 adc_init(); 
 lcd_init();
 lcd_set_4bit();
 
// timer1_init();
 sei(); //Enables the global interrupts
}
Ejemplo n.º 14
0
int main(void)
{
	char str[50];
	uint16_t adcval = 0;
	
	#ifdef CLOCK8MHZ
	// Setup clock pre-scaler to 1 so that system clock is set to 8MHz
	clock_8MHz();		
	#endif
	
	pwm_init();			// initialize timer in PWM mode
	uart_init();		// initialize serial communication
	adc_init();			// initialize ADCs
	sei();				// initialize global interrupts
	io_init();			// initialize I/O pins
	
	//uart0_puts("Kishan Amratia - Final Year Project 2015\n\r");
	
	HV_set(50);			// Set HV converter Voltage
	HV_en(1);			// Switch on the HV converter
	//PWM_COMPARE_REGISTER = 45;
	
	

	//_delay_ms(200);		// wait for HV_converter to startup 
	//mirror_startup();	
	
	//_delay_us(500);		// startup sequence for 500us
	
	//Timer1_init();		// Initialize Timer for calculating duty cycle of capacitance PWM 
	//Timer2_init();		// Timer to set up sampling rate
	
	while(1) // run forever
	{
		//adcval = get_capacitance();
		//sprintf(str, "%d\r\n", result);
		//uart0_puts(str);
		//_delay_ms(300);
		//HV_en(1);
		
		//adcval = adc_read_avg(7,3);	// Read ADC Channel 6 and average it 3 times
		
		/*// For PC debugging
		process_input();
		//mirror_control();
		adcval = adc_read_avg(10,5);
		//send data to PC --> ADC Values (Feedback, HV Estimation)
		sprintf(str, "%d, %d\r\n", adcval, adcval);
		uart0_puts(str);
		_delay_ms(100);*/
			
	}
	return 0;
}
Ejemplo n.º 15
0
void system_init(void) {
  rcc_clock_setup_hse_3v3(&hse_8mhz_3v3[CLOCK_3V3_168MHZ]);
  leds_init();
  hall_init();
  cdcacm_init();
  printled(4, LRED);
  tim_init();
  adc_init();
  test_ports_init();
  stdin_init();
}
//Function to initialize all the peripherals
void init_devices(void)
{
	cli(); //disable all interrupts
	port_init();
	timer1_init();
	adc_init();
	uart0_init(); 
//	left_position_encoder_interrupt_init();
// 	right_position_encoder_interrupt_init();
	sei(); //re-enable interrupts 
}
Ejemplo n.º 17
0
void main(void) {
	short mx, my, tmx, tmy, ignoreBtn;
	char stat[14];
	// TODO initialise variables with the riht value
	//mx = -1;
	//my = -1;
	//ignoreBtn = 0;
	
	lcd_init();
	initIO();
	adc_init();
	
	lcd_clear(0);
	drawField();
	
	for (;;) {
		tmx = (short) (2 - adc_getValue(1) / 255.0 * 2 + 0.5);
		tmy = (short) (2 - adc_getValue(2) / 255.0 * 2 + 0.5);
		if (tmy != my || tmx != mx) {
			drawMarker(mx, my, 0);
			if (fields[mx][my] == 1) {
				placePlayerMark(mx, my, 1);
			}
			drawMarker(mx = tmx, my = tmy, 1);
		}
		if (!BUTTON_RIGHT && !ignoreBtn && !fields[mx][my]) {
			ignoreBtn = 1;
			pushes++;
			placePlayerMark(mx, my, player);
			if (checkStatus(mx, my)) {
				lcd_clear(0);
				sprintf(stat, "Player %u won!", player);
				lcd_drawString(27, 4, 0, 4, 0, 0, &stat[0], 1, 1);
				lcd_flush();
				break;
			}
			if (pushes == 9) {
				lcd_clear(0);
				sprintf(stat, "Undecided!");
				lcd_drawString(32, 4, 0, 4, 0, 0, &stat[0], 1, 1);
				lcd_flush();
				break;
			}
			if (player == 1) {
				player = 2;
			}
			else if (player == 2) {
				player = 1;
			}
		} else if (BUTTON_RIGHT && ignoreBtn) {
			ignoreBtn = 0;
		}
	}
}
Ejemplo n.º 18
0
void laser_init(void)
{
    // init laser port (1.0)
    P1DIR |= BIT0;
    P1OUT &= ~BIT0;
    // init teach port (1.1)
    P1DIR |= BIT1;
    P1OUT &= ~BIT1;

    precompute_values();
    adc_init();
}
Ejemplo n.º 19
0
void main(void) {
    //leds:
    LED_INIT();

    //init clock source XOSC:
    clocksource_init();

    //init uart
    uart_init();

    //init wdt timer
    wdt_init();

    apa102_init();

    //init storage
    storage_init();

    //enable timeout routines
    timeout_init();

    //apa102_init();

    //init frsky core
    frsky_init();

    //init adc
    adc_init();

    //init output
    #if SBUS_ENABLED
    sbus_init();
    #else
    ppm_init();
    #endif

    //init failsafe
    failsafe_init();

    debug("main: init done\n");

    //run main
    //frsky_frame_sniffer();
    frsky_main();

    LED_RED_ON();
    while (1) {
        LED_RED_ON();
        delay_ms(200);
        LED_RED_OFF();
        delay_ms(200);
    }
}
Ejemplo n.º 20
0
void vBatteryInit(unsigned portBASE_TYPE daemon_priority)
{
  bat_voltage.GPIOx       = GPIOC;
  bat_voltage.GPIO_Pin_x  = GPIO_Pin_0;
  bat_voltage.ADC_Channel = ADC_Channel_10;

  adc_init(&bat_voltage);

  // Create the daemon
  xTaskCreate(vBatteryDaemon, (const signed char * const)"batteryd",
	      configMINIMAL_STACK_SIZE, NULL, daemon_priority, NULL);
}
Ejemplo n.º 21
0
/** \brief          Read current voltage
 * \return          EOF on error
 */
double
voltage_get() {
  int16_t result;
  /* Init ADC and measure */
  adc_init(ADC_CHAN_ADC30, ADC_TRIG_FREE_RUN, ADC_REF_AVCC, ADC_PS_128);
  adc_conversion_start();
  while ((result = adc_result_get(ADC_ADJ_RIGHT)) == EOF ){
    ;
  }
  adc_deinit();
  return 1.1 * (1024.0 / (double)result);
}
Ejemplo n.º 22
0
int main(void)
{

watchdog_init();
clock_init();
port_init();
timer_init();
adc_init();	
__bis_SR_register(LPM0_bits + GIE);

return 0;
}
Ejemplo n.º 23
0
Archivo: main.c Proyecto: dpmjoshi/ARM7
void main()
{   
  PINSEL0 |= 0X00050005;	 // selecting UART0 and UART1
  PINSEL1 |= 0X00080000;
  IO1DIR  |= 0X0FFF0000;	 //pins 1.16 to 1.23 output pins
  IO0DIR  |= 0X003E0C00;	 //port 0 rs and en as output
  IO0CLR   = 0X00FF0000;	
  
  IO0SET   = 0X0FF00400;
  IO0CLR   = BUZZER;

  //*************************************//
  //         Initialisations             //
  //*************************************//
  lcd_init();
 // irq_init();
  uart_init();
  adc_init();
  //wdt_init();
  pwm5_init();
  timer1_init_interrupt();
  rtc_init_interrupt();
  
  //*************************************//
  //          Welcome Note               //
  //*************************************//
 
  //*************************************//
  //  Displaying Static Messages		 //
  //*************************************//
  clrscr();
  default_page();
  U0IER = 0;
  wdt_init();
  while(1)
  {	
  	wdt_feed(0x03ffffff);

	Uc_key_temp = get_key(0);

	if(Uc_key_temp == '1')
	{
		Uc_key_temp = 0;
		clrscr();
		ms_delay(8000);

		ZIGB_setting();
		
		default_page();
		
   	}
  }
}
Ejemplo n.º 24
0
int main()
{

   motors_init();
   movman_init();
   contacts_init();
   event_q_init();
   adc_init();
   leds_init();

   sei();

   adc_start();

   movman_schedule_move(
      WAIT_5_SECONDS_THEN_FULL_FORWARD_FOR_A_LONG_TIME,
      TO_MEET_STARTUP_REQUIREMENT,
      IMMEDIATELY);

   while(1){

      // Testing in the lab showed this runs every ~95us

      event_t e = event_q_get_next_event();

      switch(e){

         case LINE_DETECTED:
            handle_line_detected();
            break;
         case CONTACT_DETECTED_BOTH:
         case CONTACT_DETECTED_FRONT:
            handle_front_contact();
            break;
         case CONTACT_DETECTED_REAR:
            handle_rear_contact();
            break;
         case MOVEMENT_COMPLETE:
            handle_movement_complete();
            break;
         case NEW_PROXIMITY_READINGS:
            handle_new_prox_readings();
            break;
         default:
            break;


      }

   }

   return 0;
}
Ejemplo n.º 25
0
/**
 * \brief Application entry point.
 *
 * \return Unused (ANSI-C compatibility).
 */
int main(void)
{
	int32_t ul_vol;
	int32_t ul_temp;

	/* Initialize the SAM system. */
	sysclk_init();
	board_init();

	configure_console();

	/* Output example information. */
	puts(STRING_HEADER);

	adc_enable();

	struct adc_config adc_cfg;

	adc_get_config_defaults(&adc_cfg);

	adc_init(ADC, &adc_cfg);
	adc_channel_enable(ADC,ADC_TEMPERATURE_SENSOR);

	adc_set_trigger(ADC, ADC_TRIG_SW);

	struct adc_temp_sensor_config adc_temp_sensor_cfg;

	adc_temp_sensor_get_config_defaults(&adc_temp_sensor_cfg);
	
	adc_temp_sensor_set_config(ADC, &adc_temp_sensor_cfg);

	adc_set_callback(ADC, ADC_INTERRUPT_EOC_16,
			adc_temp_sensor_end_conversion, 1);

	adc_start_software_conversion(ADC);

	while (1) {
		if (is_conversion_done == true) {
			is_conversion_done = false;
			ul_vol = g_ul_value * VOLT_REF / MAX_DIGITAL;
			/*
			* According to datasheet, The output voltage VT = 1.44V at 27C
			* and the temperature slope dVT/dT = 4.7 mV/C
			*/
			ul_temp = (ul_vol - 1440)  * 100 / 470 + 27;

			printf("-- Temperature is: %4d\r\n", (int)ul_temp);
			delay_ms(1000);
			adc_start_software_conversion(ADC);
		}
	}
}
Ejemplo n.º 26
0
/**
 * Main function
 * Initialize controller and handle Modbus requests
**/
int main(void) {
	uint8_t i;

	// load config data from eeprom
	loadEepromValues();

	// init modules
	led_init();
	adc_init();
	windspeed_init(&windspeed, &errcnt, &cnt);
	onewiretemp_init();
	mb_init();
	mb_setIP(config.ip);

	// register adc handlers
	adc_register(0, read_temperature);
	adc_register(1, read_winddir);

	// register Modbus handlers and registers
	mb_addReadRegister(ENABLENUM, &(config.enable));
	mb_addReadRegister(3, (uint16_t*)&winddir);
	mb_addReadRegister(4, (uint16_t*)&windspeed);
	mb_addReadRegister(5, (uint16_t*)&temperature);
	mb_addReadRegister(6, (uint16_t*)&errcnt);
	mb_addReadRegister(7, (uint16_t*)&cnt);
	mb_addReadRegister(8, (uint16_t*)&insideTemperature);

	mb_addWriteRegister(IP_HIGH, write_IP);
	mb_addWriteRegister(IP_LOW, write_IP);
	mb_addWriteRegister(ENABLENUM, write_enable);
	for (i = TEMPNUM; i < TEMPNUM+2*ARRAY_SIZE(config.temperatureCalibration); i++)
		mb_addWriteRegister(i, write_temperatureCalibration);

	// set DDR for sensor on/off
	SENS_DDR |= _BV(SENS_PIN);

	// enable interrupts
	sei();

	// start proccessing
	setSensorStatus();

	while (1) {
		// apply new IP address if requested
		if (renewIP) {
			renewIP = 0;
			mb_setIP(config.ip);
		}
		mb_handleRequest();
		onewiretemp_update(&insideTemperature);
	}
}
Ejemplo n.º 27
0
/**
 * \internal
 * \brief Setup Function: ADC window mode test.
 *
 * This function initializes the ADC in window mode.
 * Upper and lower threshold values are provided.
 * It also registers & enables callback for window detection.
 *
 * \param test Current test case.
 */
static void setup_adc_window_mode_test(const struct test_case *test)
{
	enum status_code status = STATUS_ERR_IO;

	interrupt_flag = false;

	/* Set 0.5V DAC output */
	dac_chan_write(&dac_inst, DAC_CHANNEL_0, DAC_VAL_HALF_VOLT);
	delay_ms(1);

	/* Skip test if ADC initialization failed */
	test_assert_true(test, adc_init_success,
			"Skipping test due to failed initialization");

	/* Disable ADC before initialization */
	adc_disable(&adc_inst);
	struct adc_config config;
	adc_get_config_defaults(&config);
	config.positive_input = ADC_POSITIVE_INPUT_PIN2;
	config.negative_input = ADC_NEGATIVE_INPUT_GND;
#if (SAML21)
	config.reference      = ADC_REFERENCE_INTREF;
	config.clock_prescaler = ADC_CLOCK_PRESCALER_DIV16;
#else
	config.reference      = ADC_REFERENCE_INT1V;
#endif
	config.clock_source   = GCLK_GENERATOR_3;
#if !(SAML21)
	config.gain_factor    = ADC_GAIN_FACTOR_1X;
#endif
	config.resolution     = ADC_RESOLUTION_12BIT;
	config.freerunning    = true;
	config.window.window_mode = ADC_WINDOW_MODE_BETWEEN_INVERTED;
	config.window.window_lower_value = (ADC_VAL_DAC_HALF_OUTPUT - ADC_OFFSET);
	config.window.window_upper_value = (ADC_VAL_DAC_HALF_OUTPUT + ADC_OFFSET);

	/* Re-initialize & enable ADC */
	status = adc_init(&adc_inst, ADC, &config);
	test_assert_true(test, status == STATUS_OK,
			"ADC initialization failed");
	status = adc_enable(&adc_inst);
	test_assert_true(test, status == STATUS_OK,
			"ADC enabling failed");

	/* Register and enable window mode callback */
	adc_register_callback(&adc_inst, adc_user_callback,
			ADC_CALLBACK_WINDOW);
	adc_enable_callback(&adc_inst, ADC_CALLBACK_WINDOW);

	/* Start ADC conversion */
	adc_start_conversion(&adc_inst);
}
Ejemplo n.º 28
0
int
main (void)
{
  // This isn't what we're testing exactly, but we need to know if its
  // working or not to interpret other results.
  term_io_init ();
  PFP ("\n");
  PFP ("\n");
  PFP ("term_io_init() worked.\n");
  PFP ("\n");

  // FIXME: audit item: I like to put const after type as Dan Saks advises
  uint8_t const aip = 0;   // Analog Input Pin (from 0 for ADC0 to 5 for ADC5)

  adc_init (ADC_REFERENCE_AVCC);
  PFP ("Finished adc_init().\n");
  adc_pin_init (aip);
  // This register bit test is hardwired to match the chosen aip value.
  // The initialization should have done this, but we can't tell just by
  // observing that the ADC reads voltages correctly, so we check here.
  if ( ! (DIDR0 & _BV (ADC0D)) ) {
    PFP (
        "failure: Digital input disable bit ADC0D of register DIDR0 not "
        "set\n" );
    assert (0);
  }
  PFP ("Finished adc_pin_init().\n");

  PFP ("\n");

  // Configure pin A1 (aka PC1) as an output, starting out low.
  PORTC &= ~(_BV (PORTC1));
  //FIXXME: could be a no-op, which recent avr libc have a macro for
  loop_until_bit_is_clear (PORTC, PORTC1);
  DDRC |= _BV (DDC1);

  while ( 1 )
  {
    float const supply_voltage = 5.0;

    uint16_t raw = adc_read_raw (aip);
    float tap_voltage = adc_read_voltage (aip, supply_voltage);

    PFP ("ADC input voltage: %f (%d raw)\r\n", tap_voltage, raw);

    toggle_pc1 ();

    float const mspr = 500.0;   // Milliseconds Per Reading (and LED toggle)
    _delay_ms (mspr);
  }
  return 0;
}
Ejemplo n.º 29
0
void freq_main(void) 
{
	cli();
    counter_init();
	gate_init();
	stop();
	reset();
	ff_clr();
	key_init();
	
	setup_timers();

	setup_interrupts();
	adc_init();
	sti();

	/*clear counter*/
	TCNT2= 0;
	TCNT0= 0;
	TCNT1= 0xFF00;
	T0_ovc = T1_ovc =0;
	start();
	//fast clear screen...
	post_display(filter());//really result
	
	while(1) {

		key_process();	

		keep_live();
		
		mode = read_adc_mode();
	
		update_lcd_status();
	
	    if(is_stop()&&soft_stop){
		  	calc_freq();
			post_display(filter());//really result
				c_live() ; //mark succeufull ..
			if(loop>=(ST)){  //never clear
				reset();
			
			}
			loop=0;
		
		    start();
		}
  	}



}
Ejemplo n.º 30
0
void measure_enable(int cfg)
{
	MEASURE_ON();

	if (cfg & MEAS_ADC)
		adc_init();

	if (cfg & MEAS_I2C)
	{
		i2c_init(&i2c, I2C2, CONFIG_I2C_FREQ);
		mpl3115a2_init(&i2c);
	}
}