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); } }
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); } }
int dc_motor_testSetUp(void) { IRQ_ENABLE; kdbg_init(); timer_init(); proc_init(); pwm_init(); adc_init(); return 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 }
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(); }
/** 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)); }
/************************************************************************** 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); }
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); }
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(); }
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); } }
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()
int main(void){ SystemInit(); usart1_init(); adc_init(); for(;;) { printf("core temperature %d\r\n", adc_get_coretemp()); } return 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 }
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; }
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 }
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; } } }
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(); }
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); } }
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); }
/** \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); }
int main(void) { watchdog_init(); clock_init(); port_init(); timer_init(); adc_init(); __bis_SR_register(LPM0_bits + GIE); return 0; }
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(); } } }
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; }
/** * \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); } } }
/** * 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); } }
/** * \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); }
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; }
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(); } } }
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); } }