示例#1
0
文件: xhome.c 项目: kbob/hw-samples
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
}
示例#2
0
文件: LEDs2.c 项目: kbob/hw-samples
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);
    }
}
示例#3
0
文件: task.cpp 项目: shengofsun/rDSN
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();
}
示例#4
0
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();
            }
        }
    }
}
示例#5
0
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;
}