int main() { init_ATX_power(); init_limit_switches(); init_timer(); init_motors(); sei(); enable_ATX_power(); delay_milliseconds(100); enable_x_motor(); delay_milliseconds(200); #define CONTINUOUS_HOMING 0 #if CONTINUOUS_HOMING while (1) { home_x(); delay_milliseconds(4000); move_x(MM_to_uSTEPS(MOVE_DISTANCE)); delay_milliseconds(200); } #else home_x(); delay_milliseconds(500); disable_x_motor(); disable_ATX_power(); while (1) continue; #endif }
int main() { init_timer(); init_serial(); init_SPI(); init_ATX_power(); sei(); enable_ATX_power(); delay_milliseconds(100); next_update_time = millisecond_time() + FRAME_MS; SPI_write_byte(0x00); while (true) { const uint8_t b1 = MAX_BRIGHTNESS / 4; const uint8_t b2 = MAX_BRIGHTNESS * 3 / 4; const uint8_t b3 = MAX_BRIGHTNESS; ramp(0, b1, set_LEDs_white); ramp(b1, 0, set_LEDs_white); ramp(0, b2, set_LEDs_CMY); ramp(b2, 0, set_LEDs_CMY); ramp(0, b3, set_LEDs_RGB); ramp(b3, 0, set_LEDs_RGB); } }
void timer_task::enqueue() { // enable timer randomization to avoid lots of timers execution simultaneously if (delay_milliseconds() == 0 && spec().randomize_timer_delay_if_zero) { set_delay(rand::next_u32(0, _interval_milliseconds)); } return task::enqueue(); }
int main() { init_timer(); init_ATX_power(); init_serial(); init_stdio(); init_safety_switches(); init_i2c(); init_laser_power(); init_heaters(); init_main_laser(); sei(); enable_ATX_power(); uint32_t b = millisecond_time(); while (!ATX_power_state()) { enable_ATX_power(); continue; } uint32_t a = millisecond_time(); printf("ATX power: %ld msec\n", a - b); enable_heater_1(); // aka water pump delay_milliseconds(2000); enable_heater_0(); // aka high voltage supply set_laser_power(4095 / 3); // 1/3rd power printf("Main Laser! Danger!\n"); while (true) { if (getchar() == '\r') { if (e_is_stopped()) printf("Emergency Stop. No fire.\n"); else if (lid_is_open()) printf("Lid is open. No fire.\n"); else { printf("Fire!\n"); enable_main_laser(); delay_milliseconds(PULSE_MS); disable_main_laser(); } } } }
int main(void) { int i; int reading1; int reading2; int address; int test_array[100]; for(i=0;i<100;i++) { motor(0,i); //spin the left motor forward motor(1,i); //spin the right motor forward } i=0; while(i>-100) { motor(0,i); //spin the left motor backwards motor(1,i); //spin the right motor backwards i--; } i=50; set_servo(0,i); //set servo motor 0 to move to 50 degrees set_servo(3,i); //set servo motor 3 to move to 50 degrees delay_milliseconds(100); //pause 100 milliseconds delay_seconds(1); //pause 1 second lcd_clear(); lcd_cursor(0,0); printf ("Test1\n"); //the LCD will be 8x2 (8chars x 2lines) printf ("Test2\n"); reading1 = analog(0); //get a reading from analog pin 0 reading2 = analog(5); //get a reading from analog pin 5 reading1 = digital(0); //get a reading from digital pin 0 reading2 = digital(1); //get a reading from digital pin 1 if (reading1 > 100) { printf ("%d\n", reading1); } reading1 = accelerometer(0); //read x-axis reading2 = accelerometer(1); //read y-axis reading1 = accelerometer(2); //read z-axis reading1 = battery_voltage(); //battery voltage reading1 = read_serial_port(); //get a byte from the serial port write_serial_port(reading1); //send a byte on the serial port led1(1); //turn on on-board led1 led1(0); //turn off on-board led1 reading1 = read_ir(); //get a reading from the IR receiver reset(); //reset the board write_eeprom(address, reading1); //write a value to the non-volatile eeprom (these values will be stored across resets) reading1 = read_eeprom(address); //get a reading from the non-volatile eeprom reading1 = button(); //read the state of the on-board button return 0; }