示例#1
0
文件: main.c 项目: PaulMougel/msp430
int main(void)
{
  uint8_t data;
  watchdog_stop();
  
  set_mcu_speed_dco_mclk_16MHz_smclk_8MHz();

  led_red_on();
  
  uart_init(UART_9600_SMCLK_8MHZ);
  serial_ring_init();
  uart_register_cb( serial_cb);
  
  printf("serial test application: echo\n");
  led_green_on();
  eint();
  
  for(;;)
    {
      LPM(1);
      
      if (serial_ring_get(&data))
	{
	  putchar(data);
	  led_green_switch();
	}
      else
	{
	  printf("\n\n serial_ring_get() returns 0 : empty ring\n\n");
	  led_red_switch();
	}
    }
}
示例#2
0
void hal_clocksource_init(void){
    //for debugging clocksource problems
    led_red_on();
    led_green_on();

    //power up osc (?)
    SLEEP &= ~CLOCKSOURCE_OSC_PD_BIT;
    //wait for XOSC stable
    while(!CLOCKSOURCE_XOSC_STABLE()){}
    NOP();

    //start crystal osc as HS clocksource, OSC32 is int rc osc
    CLKCON = 0x80;

    //wait for selection to be active
    while(!CLOCKSOURCE_XOSC_STABLE()){}
    NOP();

    //power down the unused oscillator
    SLEEP |= CLOCKSOURCE_OSC_PD_BIT;


    //for debugging clocksource problems
    led_red_off();
    led_green_off();
}
示例#3
0
// Disable the CAN peripheral and go off-bus
void can_disable(void)
{
    if (bus_state == ON_BUS)
    {
        // Do a bxCAN reset (set RESET bit to 1)
    	can_handle.Instance->MCR |= CAN_MCR_RESET;
        bus_state = OFF_BUS;

        led_green_on();
    }
}
示例#4
0
// Send a message on the CAN bus (blocking)
uint32_t can_tx(CanTxMsgTypeDef *tx_msg)
{
    uint32_t status;

    // Transmit can frame
    can_handle.pTxMsg = tx_msg;
    status = HAL_CAN_Transmit(&can_handle, 10);
    led_green_on();

    return status;
}
示例#5
0
void default_handler (void) {
	uint64_t i;
	led_red_on();
	while (1) {
		for (i=0; i<0x00FFFFF; i++) {}
		led_green_off();
		for (i=0; i<0x00FFFFF; i++) {}
		led_green_on();
	}
	while (1);
}
示例#6
0
void toggle_leds() {
        if(state == 0 ) {
           led_green_on();
           led_blue_off();
           state = 1;
        } else {
           led_green_off();
           led_blue_on();
           state = 0;
        }
        
}
示例#7
0
文件: led.c 项目: nesl/sos-2x
int8_t ker_led(uint8_t action)
{
  switch (action){
  case LED_RED_ON:        led_red_on();        break;
  case LED_GREEN_ON:      led_green_on();      break;
  case LED_YELLOW_ON:     led_yellow_on();     break;
  case LED_RED_OFF:       led_red_off();       break;
  case LED_GREEN_OFF:     led_green_off();     break;
  case LED_YELLOW_OFF:    led_yellow_off();    break;
  case LED_RED_TOGGLE:    led_red_toggle();    break;
  case LED_GREEN_TOGGLE:  led_green_toggle();  break;
  case LED_YELLOW_TOGGLE: led_yellow_toggle(); break;
  }
  return 0;
}
示例#8
0
// Set CAN peripheral to silent mode
void can_set_autoretransmit(uint8_t autoretransmit)
{
    if (bus_state == ON_BUS)
    {
        // Cannot set autoretransmission while on bus
        return;
    }
    if (autoretransmit)
    {
        can_nart = DISABLE;
    } else {
        can_nart = ENABLE;
    }

    led_green_on();
}
示例#9
0
// Set CAN peripheral to silent mode
void can_set_silent(uint8_t silent)
{
    if (bus_state == ON_BUS)
    {
        // cannot set silent mode while on bus
        return;
    }
    if (silent)
    {
    	can_handle.Init.Mode = CAN_MODE_SILENT;
    } else {
    	can_handle.Init.Mode = CAN_MODE_NORMAL;
    }

    led_green_on();
}
示例#10
0
文件: main.c 项目: PaulMougel/msp430
static PT_THREAD(thread_led_green(struct pt *pt))
{
    PT_BEGIN(pt);

    while(1)
    {
        PT_WAIT_UNTIL(pt, led_green_flag);
        led_green_on();
        TIMER_LED_GREEN_ON = 0;
        PT_WAIT_UNTIL(pt, timer_reached(TIMER_LED_GREEN_ON,
          led_green_duration));
        led_green_off();
        led_green_flag = 0;
    }

    PT_END(pt);
}
示例#11
0
static void sfi_err_code_led_display(uint8_t errcode)
{
  uint8_t _led_display;				
  _led_display = errcode;				
  if (_led_display & 0x01)			
    led_yellow_on();				
  else					
    led_yellow_off();				
  _led_display >>= 1;				
  if (_led_display & 0x01)			
    led_green_on();				
  else					
    led_green_off();				
  _led_display >>= 1;				
  if (_led_display & 0x01)			
    led_red_on();				
  else					
    led_red_off();
  return;
}
示例#12
0
int window_fan() {
    rcc_config();
    delay_config();

    led_debug_config();
    motor_config();

    led_blue_off();
    led_green_off();

    servo_config();
    servo_set_pos(0);
    servo_start();

    u32 i;
    u32 from = 0;
    u32 to = 180;
    u32 delay = 2000;

  while(1) {

    motor_forward();

    led_blue_on();
    led_green_off();
    for(i=from; i<to; i++) {
        servo_set_pos(i);
        delay_ms(delay);
    }

    led_blue_off();
    led_green_on();
    for(i=to; i>from; i--) {
        servo_set_pos(i);
        delay_ms(delay);
    }

    motor_stop();
    delay_ms(10000);
  }
}
示例#13
0
// Set the bitrate of the CAN peripheral
void can_set_bitrate(enum can_bitrate bitrate)
{
    if (bus_state == ON_BUS)
    {
        // cannot set bitrate while on bus
        return;
    }

    switch (bitrate)
    {
        case CAN_BITRATE_10K:
        prescaler = 600;
            break;
        case CAN_BITRATE_20K:
        prescaler = 300;
            break;
        case CAN_BITRATE_50K:
        prescaler = 120;
            break;
        case CAN_BITRATE_100K:
            prescaler = 60;
            break;
        case CAN_BITRATE_125K:
            prescaler = 48;
            break;
        case CAN_BITRATE_250K:
            prescaler = 24;
            break;
        case CAN_BITRATE_500K:
            prescaler = 12;
            break;
        case CAN_BITRATE_750K:
            prescaler = 8;
            break;
        case CAN_BITRATE_1000K:
            prescaler = 6;
            break;
    }

    led_green_on();
}
示例#14
0
int reader_test() {
    rcc_config();

    led_debug_config();
    motor_config();
    reed_config();
    
    led_blue_off();
    led_green_off();
    
    uint8_t i;
  
    while(1) {
        // forward
        motor_forward();
        led_blue_on();
        reed_delay_left();
        
        // stop
        motor_stop();
        led_blue_off();
        bigDelay();
        bigDelay();
        bigDelay();

        // backward
        motor_back();
        led_green_on();
        reed_delay_right();
        
        // stop
        motor_stop();
        led_green_off();
        bigDelay();
        bigDelay();
        bigDelay();
    }  

}