static msg_t Thread1(void *arg) {
    (void)arg;
    chRegSetThreadName("blinker1");
    while (TRUE) {
        palClearPad(GPIOC, GPIOC_LED4);
        chThdSleepMilliseconds(500);
        palSetPad(GPIOC, GPIOC_LED4);
        chThdSleepMilliseconds(500);
    }

    return RDY_OK;
}
示例#2
0
文件: led.c 项目: 0tsuki/qmk_firmware
void backlight_set(uint8_t level) {
    printf("backlight_set(%d)\n", level);
    #ifdef BACKLIGHT_ENABLE
    if (level == 0) {
        // Turn backlight off
        palSetPad(GPIOB, 8);
    } else {
        // Turn backlight on
        palClearPad(GPIOB, 8);
    }
    #endif
}
示例#3
0
文件: main.c 项目: jharvey/rusefi
static msg_t Thread1(void *arg) {

  (void)arg;
  chRegSetThreadName("blinker");
  while (TRUE) {
    palClearPad(BL_PORT, BL_PIN);
    chThdSleepMilliseconds(30);
    palSetPad(BL_PORT, BL_PIN);
    chThdSleepMilliseconds(30);
  }
 return 0;
}
示例#4
0
文件: main.c 项目: rusefi/ChibiOS
static THD_FUNCTION(Thread1, arg) {

  (void)arg;
  chRegSetThreadName("Blinker");

  while (true) {
    palClearPad(IOPORT5, PORTE_LED);
    chThdSleepMilliseconds(1000);
    palSetPad(IOPORT5, PORTE_LED);
    chThdSleepMilliseconds(100);
  }
}
示例#5
0
static void extcb(EXTDriver *extp, expchannel_t channel) {

  (void)extp;
  (void)channel;

  if (PWR->CSR & PWR_CSR_PVDO){ /* voltage lover than threshold */
    palClearPad(GPIOB, GPIOB_LED_B); /* switch off LED*/
  }
  else{
    palSetPad(GPIOB, GPIOB_LED_B); /* switch on LED*/
  }
}
示例#6
0
/*
 * This callback is invoked when a character is received but the application
 * was not ready to receive it, the character is passed as parameter.
 */
static void rxchar(UARTDriver *uartp, uint16_t c) {

  (void)uartp;
  (void)c;
  /* Flashing the LED each time a character is received.*/
  palSetPad(GPIOD, GPIOD_LED4);
  chSysLockFromIsr();
  if (chVTIsArmedI(&vt2))
    chVTResetI(&vt2);
  chVTSetI(&vt2, MS2ST(200), ledoff, NULL);
  chSysUnlockFromIsr();
}
示例#7
0
文件: main.c 项目: mgsdk/ChibiOS
static msg_t Thread1(void *arg) {

  (void)arg;
  chRegSetThreadName("blinker");
  while (TRUE) {
    systime_t time = serusbcfg.usbp->state == USB_ACTIVE ? 250 : 500;
    palClearPad(GPIOC, GPIOC_LED1);
    chThdSleepMilliseconds(time);
    palSetPad(GPIOC, GPIOC_LED1);
    chThdSleepMilliseconds(time);
  }
}
示例#8
0
文件: main.c 项目: uavcam/ChibiOS
/* Triggered when the button is pressed or released. The LED4 is set to ON.*/
static void extcb1(EXTDriver *extp, expchannel_t channel) {
    static virtual_timer_t vt4;

    (void)extp;
    (void)channel;
    palSetPad(GPIOB, GPIOB_LED4);
    chSysLockFromISR();
    chVTResetI(&vt4);
    /* LED4 set to OFF after 200mS.*/
    chVTDoSetI(&vt4, MS2ST(200), led4off, NULL);
    chSysUnlockFromISR();
}
示例#9
0
文件: main.c 项目: CNCBASHER/ChibiOS
static msg_t Thread1(void *p) {

  (void)p;
  chRegSetThreadName("blinker");
  while (TRUE) {
    palSetPad(IOPORT2, PIOB_LCD_BL);
    chThdSleepMilliseconds(100);
    palClearPad(IOPORT2, PIOB_LCD_BL);
    chThdSleepMilliseconds(900);
  }
  return 0;
}
示例#10
0
void panic(const char *err)
{
    kfly_error = err;

    while (1)
    {
        palClearPad(GPIOC, GPIOC_LED_ERR);
        chThdSleepMilliseconds(200);
        palSetPad(GPIOC, GPIOC_LED_ERR);
        chThdSleepMilliseconds(200);
    }
}
示例#11
0
static THD_FUNCTION(blinkerThread, arg) {
  (void)arg;
  chRegSetThreadName("blinkerThread");

  while(true) {
    systime_t time = USB_DRIVER.state == USB_ACTIVE ? 250 : 500;
    palClearPad(LED_GPIO, LED_PIN);
    chThdSleepMilliseconds(time);
    palSetPad(LED_GPIO, LED_PIN);
    chThdSleepMilliseconds(time);
  }
}
示例#12
0
static msg_t Thread1(void *arg) {

  (void)arg;
  chRegSetThreadName("blinker");
  while (TRUE) {
    palSetPad(GPIOE, GPIOE_LED10_RED);
    chThdSleepMilliseconds(500);
    palClearPad(GPIOE, GPIOE_LED10_RED);
    chThdSleepMilliseconds(500);
  }
  return 0;
}
示例#13
0
static THD_FUNCTION(Thread1, arg) {

  (void)arg;

  chRegSetThreadName("blinker");
  while (true) {
    palSetPad(GPIOC, GPIOC_LED);
    chThdSleepMilliseconds(500);
    palClearPad(GPIOC, GPIOC_LED);
    chThdSleepMilliseconds(500);
  }
}
示例#14
0
static msg_t Thread2(void *arg) {

  (void)arg;
  chRegSetThreadName("blinker2");
  while (TRUE) {
    palClearPad(IOPORT1, PA_LEDUSB);
    chThdSleepMilliseconds(200);
    palSetPad(IOPORT1, PA_LEDUSB);
    chThdSleepMilliseconds(300);
  }
  return 0;
}
示例#15
0
文件: main.c 项目: Babody/ChibiOS
static THD_FUNCTION(Thread1, arg) {

  (void)arg;
  chRegSetThreadName("blinker");
  while (true) {
    systime_t time = serusbcfg.usbp->state == USB_ACTIVE ? 250 : 500;
    palClearPad(GPIOA, GPIOA_LED_BLUE);
    chThdSleepMilliseconds(time);
    palSetPad(GPIOA, GPIOA_LED_BLUE);
    chThdSleepMilliseconds(time);
  }
}
示例#16
0
文件: main.c 项目: ADTL/ARMWork
int main(void)
{
  static const evhandler_t evhndl[] = {InsertHandler, RemoveHandler};
  struct EventListener el0, el1;

  // os init
  halInit();
  chSysInit();

  // setup LED pads
  palSetPadMode(GPIOD, 12, PAL_MODE_OUTPUT_PUSHPULL | PAL_STM32_OSPEED_HIGHEST);
  palClearPad(GPIOD, 12); // green LED
  palSetPadMode(GPIOD, 15, PAL_MODE_OUTPUT_PUSHPULL | PAL_STM32_OSPEED_HIGHEST);
  palClearPad(GPIOD, 15); // blue LED

  // setup pads to USART2 function (connect these pads through RS232 transceiver with PC, terminal emu needs 38400 baud)
  sdStart(&SD2, NULL);
  palSetPadMode(GPIOA, 2, PAL_MODE_ALTERNATE(7) | PAL_STM32_OSPEED_HIGHEST); // TX
  palSetPadMode(GPIOA, 3, PAL_MODE_ALTERNATE(7)); // RX

  // setup pads to SPI1 function (connect these pads to your SD card accordingly)
  palSetPadMode(GPIOC, 4, PAL_MODE_OUTPUT_PUSHPULL | PAL_STM32_OSPEED_HIGHEST); // NSS
  palSetPadMode(GPIOA, 5, PAL_MODE_ALTERNATE(5) | PAL_STM32_OSPEED_HIGHEST); // SCK
  palSetPadMode(GPIOA, 6, PAL_MODE_ALTERNATE(5)); // MISO
  palSetPadMode(GPIOA, 7, PAL_MODE_ALTERNATE(5) | PAL_STM32_OSPEED_HIGHEST); // MOSI
  palSetPad(GPIOC, 4); // set NSS high

  // initialize MMC driver
  mmcObjectInit(&MMCD1, &SPID1, &ls_spicfg, &hs_spicfg, mmc_is_protected, mmc_is_inserted);
  mmcStart(&MMCD1, NULL);

  // ChibiOS has no I2S support yet;
  // codec.c initializes everything necessary
  // except the I2S TX DMA interrupt vector (because it would
  // conflict with the ChibiOS kernel)
  // we can make ChibiOS call our own handler by letting
  // it create the DMA stream for SPI3
  dmaStreamAllocate(SPID3.dmatx,
                    STM32_SPI_SPI3_IRQ_PRIORITY,
                    (stm32_dmaisr_t)I2SDmaTxInterrupt,
                    &SPID3);

  // blink thread; also checks the user button
  chThdCreateStatic(waBlinkThread, sizeof(waBlinkThread), NORMALPRIO, BlinkThread, NULL);

  chEvtRegister(&MMCD1.inserted_event, &el0, 0);
  chEvtRegister(&MMCD1.removed_event, &el1, 1);
  while(TRUE)
  {
    chEvtDispatch(evhndl, chEvtWaitOne(ALL_EVENTS));
  }
}
示例#17
0
static THD_FUNCTION(blinkerThread,arg) {
  UNUSED(arg);
  while(TRUE){
  while (isLogging) {
    palSetPad(GPIOE, GPIOE_LED10_RED);
    chThdSleepMilliseconds(500);
    palClearPad(GPIOE, GPIOE_LED10_RED);
    chThdSleepMilliseconds(500);
  }
  chThdSleepMilliseconds(1);
  }
  return 0;
}
示例#18
0
static THD_FUNCTION(ThreadLED, arg)
{
	(void)arg;

	chRegSetThreadName("HeartBeat");

	while (true) {
		palSetPad(GPIOG, GPIOG_LED3_GREEN);
		chThdSleepMilliseconds(100);
		palClearPad(GPIOG, GPIOG_LED3_GREEN);
		chThdSleepMilliseconds(1000);
	}
}
示例#19
0
/* Triggered when the button is pressed or released. The LED4 is set to ON.*/
static void extcb1(EXTDriver *extp, expchannel_t channel) {
  static VirtualTimer vt4;

  (void)extp;
  (void)channel;
  palSetPad(GPIOC, GPIOC_LED4);
  chSysLockFromIsr();
  if (chVTIsArmedI(&vt4))
    chVTResetI(&vt4);
  /* LED4 set to OFF after 200mS.*/
  chVTSetI(&vt4, MS2ST(200), led4off, NULL);
  chSysUnlockFromIsr();
}
示例#20
0
static THD_FUNCTION(Thread2, arg){
  (void)arg;
  
  chRegSetThreadName("trigger-thread");
  systime_t time = chVTGetSystemTimeX();
  while(true){
    time += MS2ST(500);
    palSetPad(TRIGGER_PORT, TRIGGER_PIN);
    chThdSleepMicroseconds(10);
    palClearPad(TRIGGER_PORT, TRIGGER_PIN);
    chThdSleepUntil(time);
  }
}
示例#21
0
文件: ez.c 项目: Xyverz/qmk_firmware
uint32_t layer_state_set_kb(uint32_t state) {

  palClearPad(GPIOB, 8);
  palClearPad(GPIOB, 9);
  state = layer_state_set_user(state);
  uint8_t layer = biton32(state);
  switch (layer) {
      case 3:
        palSetPad(GPIOB, 9);
        break;
      case 4:
        palSetPad(GPIOB, 8);
        break;
      case 6:
        palSetPad(GPIOB, 9);
        palSetPad(GPIOB, 8);
        break;
      default:
        break;
    }
    return state;
}
示例#22
0
文件: myMisc.c 项目: arnonh/Arnon
static msg_t Thread1(void *arg) {

  (void)arg;
  chRegSetThreadName("blinker");
  while (TRUE) {
    palClearPad(GPIOD, GPIOD_LED6);
    chThdSleepMilliseconds(blinkspeed);
    palSetPad(GPIOD, GPIOD_LED6);
    chThdSleepMilliseconds(blinkspeed);

  }
  return 0;
}
示例#23
0
static THD_FUNCTION(BlinkThread, arg) {
  (void)arg;
  uint8_t i;

  // while(TRUE) {
  for(i=0; i<5; i++) {
    palSetPad(TEENSY_PIN13_IOPORT, TEENSY_PIN13);
    chThdSleepMilliseconds(700);
    palClearPad(TEENSY_PIN13_IOPORT, TEENSY_PIN13);
    chThdSleepMilliseconds(700);
  }
  jump_to_bootloader();
}
示例#24
0
bool bus_power(bool enable)
{
    if (enable) {
        if (bus_voltage_get() > 0.5 && palReadPad(GPIOB, GPIOB_V_BUS_ENABLE) == 0) {
            return false;
        }
        palSetPad(GPIOB, GPIOB_V_BUS_ENABLE);
    } else {
        led_clear(CAN1_PWR_LED);
        palClearPad(GPIOB, GPIOB_V_BUS_ENABLE);
    }
    return true;
}
示例#25
0
void statusLedPulse(int led, systime_t duration)
{
    chSysLock();
    switch(led)
    {
        case 1:
            if (chVTIsArmedI(&vt1))
                chVTResetI(&vt1);
            else
                palSetPad(IOPORT2, GPIOB_LED1);
            chVTSetI(&vt1, duration, ledoff_1, NULL);
            break;
        case 2:
            if (chVTIsArmedI(&vt2))
                chVTResetI(&vt2);
            else
                palSetPad(IOPORT2, GPIOB_LED2);
            chVTSetI(&vt2, duration, ledoff_2, NULL);
            break;
    }
    chSysUnlock();
}
示例#26
0
文件: ssi.c 项目: hymanc/lram-casting
/**
 * @brief Internal thread initialization function that sets up SSI I/O and data structures
 */
static void ssi_init(void)
{
	// Initialize timer and I/O
	palSetPadMode(SSI_SIGNAL_PORT, SSI_CLK_PIN, PAL_MODE_OUTPUT_PUSHPULL);
	palSetPad(SSI_SIGNAL_PORT, SSI_CLK_PIN);
	palSetPadMode(SSI_SIGNAL_PORT, SSI_DATA_PIN, PAL_MODE_INPUT);
	palSetPadMode(SSI_CTL_PORT, SSI_TXEN_PIN, PAL_MODE_OUTPUT_PUSHPULL);
	palSetPadMode(SSI_CTL_PORT, SSI_NRXEN_PIN, PAL_MODE_OUTPUT_PUSHPULL);
	palSetPadMode(SSI_CTL_PORT, SSI_PWREN_PIN, PAL_MODE_OUTPUT_PUSHPULL);
	SSI_TXEN_ON();	// Turn on RS-422 transmitter
	SSI_RXEN_ON(); 	// Turn on RS-422 receiver
	ssi_encoder_power(ENCODER_ON); // Turn on encoder power
}
示例#27
0
msg_t pyro_continuity_thread(void *arg) {
    (void)arg;
    m2status_pyro_status(STATUS_WAIT);
    chRegSetThreadName("Pyros");

    while(TRUE) {
        if(pyro_continuities()) {
            m2status_pyro_status(STATUS_OK);
            palSetPad(GPIOA, GPIOA_LED_PYROS);
            chThdSleepMilliseconds(10);
            palClearPad(GPIOA, GPIOA_LED_PYROS);
            chThdSleepMilliseconds(990);
        } else {
            /* TODO: report sadness up the chain */
            m2status_pyro_status(STATUS_ERR);
            palSetPad(GPIOA, GPIOA_LED_PYROS);
            chThdSleepMilliseconds(100);
            palClearPad(GPIOA, GPIOA_LED_PYROS);
            chThdSleepMilliseconds(100);
        }
    }
}
示例#28
0
static msg_t heartBeat (void*Arg)
{
	palSetPad (GPIOB, 8);
	palClearPad (GPIOB, 7);
	printf ("\n\rHello world!\n\r");

	while (true)
	{
    	palTogglePad (GPIOB, 8);
		palTogglePad (GPIOB, 7);
		chThdSleepMilliseconds (250);
	}
}
示例#29
0
文件: encabs_ctrl.c 项目: z80/IPM
static uint32_t encabsQuery( void )
{
    static uint32_t val;
    val = 0;
    static int16_t i;
    palClearPad( ENCABS_CLK_PORT, ENCABS_CLK_PIN );
    for ( i=0; i<delayFrontTicks; i++ )
        delay();
    for ( i=(encabsBits-1); i>=0; i-- )
    {
        palSetPad( ENCABS_CLK_PORT, ENCABS_CLK_PIN );
        delay();
        if ( palReadPad( ENCABS_DATA_PORT, ENCABS_DATA_PIN ) )
            val += (1<<i);
        palClearPad( ENCABS_CLK_PORT, ENCABS_CLK_PIN );
        delay();
    }
    for ( i=0; i<delayBackTicks; i++ )
        delay();
    palSetPad( ENCABS_CLK_PORT, ENCABS_CLK_PIN );
    return val;
}
示例#30
0
文件: main.c 项目: 0x00f/ChibiOS
static msg_t Thread2(void *arg) {

  (void)arg;
  chRegSetThreadName("green blinker");
  
  while (TRUE) {
    palSetPad(IOPORT6, P6_O_GREEN_LED);
    chThdSleepMilliseconds(1500);
    palClearPad(IOPORT6, P6_O_GREEN_LED);
    chThdSleepMilliseconds(1500);
  }
  return 0;
}