Example #1
0
void PPMin_Stop()
{
    nvic_disable_irq(NVIC_EXTI9_5_IRQ);
    exti_disable_request(_PWM_EXTI);
    timer_disable_counter(TIM1);
    ppmSync = 0;
}
Example #2
0
/** @brief Disable the wakeup timer interrupt
    @warning You must unlock the registers before using this function

*/
void rtc_disable_wakeup_timer_interrupt(void) {
// 1. Disable EXTI Line 22
  exti_disable_request(EXTI22);

// 2. Disable RTC_WKUP IRQ channel in the NVIC.
  nvic_disable_irq(NVIC_RTC_WKUP_IRQ);

// 3. Disable RTC wakeup timer event.
  RTC_CR &= ~RTC_CR_WUTIE;
}
Example #3
0
void hal_uart_dma_set_csr_irq_handler( void (*the_irq_handler)(void)){
	if (the_irq_handler){
		/* Configure the EXTI13 interrupt (USART3_CTS is on PB13) */
		nvic_enable_irq(NVIC_EXTI15_10_IRQ);
		exti_select_source(EXTI13, GPIOB);
		exti_set_trigger(EXTI13, EXTI_TRIGGER_RISING);
		exti_enable_request(EXTI13);
	} else {
		exti_disable_request(EXTI13);
		nvic_disable_irq(NVIC_EXTI15_10_IRQ);
	}
    cts_irq_handler = the_irq_handler;
}
Example #4
0
void PPMin_Init()
{
    UART_Stop();  // disable USART1 for GPIO PA9 & PA10 (Trainer Tx(PA9) & Rx(PA10))

    /* Enable GPIOA clock. */
    rcc_periph_clock_enable(RCC_GPIOA);

    /* Enable EXTI interrupt. */
    nvic_enable_irq(NVIC_EXTI0_1_IRQ);

    /* Set GPIO0 (in GPIO port A) to 'input float'. */
    PORT_mode_setup(PPM, GPIO_MODE_INPUT, GPIO_PUPD_NONE);
    
    /* Configure the EXTI subsystem. */
    exti_select_source(EXTI0, GPIOA);
    exti_set_trigger(EXTI0, EXTI_TRIGGER_RISING);
    exti_disable_request(EXTI0);
}
Example #5
0
void PPMin_Init()
{
#if _PWM_PIN == GPIO_USART1_TX
    UART_Stop();  // disable USART1 for GPIO PA9 & PA10 (Trainer Tx(PA9) & Rx(PA10))
#endif
    /* Enable GPIOA clock. */
    rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_IOPAEN);

    /* Enable AFIO clock. */
    rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_AFIOEN);

    /* Enable EXTI interrupt. */
    nvic_enable_irq(NVIC_EXTI9_5_IRQ);

    /* Set GPIO0 (in GPIO port A) to 'input float'. */
    gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, _PWM_PIN);
    
    /* Configure the EXTI subsystem. */
    exti_select_source(_PWM_EXTI, GPIOA);
    exti_set_trigger(_PWM_EXTI, EXTI_TRIGGER_RISING);
    exti_disable_request(_PWM_EXTI);
}
Example #6
0
void exti3_isr(void) {
  int i, j;
  uint16_t endFillByte;
  gpio_set(GREEN_LED_PORT, GREEN_LED_PIN);
//   gpio_set(RED_LED_PORT, RED_LED_PIN);
//   iprintf("fill bytes\r\n");
  exti_reset_request(EXTI3);
  iprintf("exti3_isr\r\n");
  if(media_file.buffer_ready[media_file.active_buffer] == 0) {
    iprintf("Buffer %d was ready...\r\n", media_file.active_buffer);
  while(gpio_get(CODEC_DREQ_PORT, CODEC_DREQ)) {
//     iprintf("loop\r\n");
    gpio_set(CODEC_PORT, CODEC_CS);
    if(!media_file.near_end) {
      for(i=0;i<32;i++) {
        spi_xfer(CODEC_SPI, media_file.buffer[media_file.active_buffer][current_track.byte_count++]);
      }
      if((current_track.byte_count % 512) == 0) {
        gpio_clear(CODEC_PORT, CODEC_CS);
      }
      if(current_track.byte_count == MEDIA_BUFFER_SIZE) {
//         iprintf("reading\r\n");
        sdfat_read_media();
        current_track.byte_count = 0;
        gpio_clear(CODEC_PORT, CODEC_CS);
//         iprintf("swapping...\r\n");
        /* fetch the value of current decode position */
        vs1053_SCI_write(SCI_WRAMADDR, PARAM_POSITION_LO);
        for(i=0;i<150;i++) {__asm__("nop\n\t");}
        current_track.pos = vs1053_SCI_read(SCI_WRAM);
        for(i=0;i<150;i++) {__asm__("nop\n\t");}
        vs1053_SCI_write(SCI_WRAMADDR, PARAM_POSITION_HI);
        for(i=0;i<150;i++) {__asm__("nop\n\t");}
        current_track.pos += vs1053_SCI_read(SCI_WRAM) << 16;
//         iprintf("swap\r\n");
        gpio_set(CODEC_PORT, CODEC_CS);
        while(media_file.buffer_ready[media_file.active_buffer]) {__asm__("nop\n\t");}
//           iprintf("Breaking out\r\n");
//           break;
//         }
      }
    } else {
      for(i=0;i<32;i++) {
        if(current_track.byte_count > media_file.file_end) {
          iprintf("ending\r\n");
          // Ought to do this next bit by issuing a player_stop job so that the cleanup code
          // is all in one place and we can power down everything automatically for power saving
          
          /* now need to clean up the fifos and stop the player */
          gpio_clear(CODEC_PORT, CODEC_CS);
          /* fetch the value of endFillByte */
          vs1053_SCI_write(SCI_WRAMADDR, PARAM_END_FILL_BYTE);
          while(!gpio_get(CODEC_DREQ_PORT, CODEC_DREQ)) {__asm__("nop\n\t");}
          endFillByte = vs1053_SCI_read(SCI_WRAM) & 0xFF;

          iprintf("End Fill Byte %02X\r\n", endFillByte);
          gpio_set(CODEC_PORT, CODEC_CS);
          for(i=0;i<65;i++) {
            while(!gpio_get(CODEC_DREQ_PORT, CODEC_DREQ)) {__asm__("nop\n\t");}
            for(j=0;j<32;j++) {
              spi_xfer(CODEC_SPI, endFillByte);
            }
          }
          gpio_clear(CODEC_PORT, CODEC_CS);
          i = vs1053_SCI_read(SCI_MODE);
          i |= SM_CANCEL;
          vs1053_SCI_write(SCI_MODE, i);
          gpio_set(CODEC_PORT, CODEC_CS);
          j = 0;
          while(j < 2048) {
            while(!gpio_get(CODEC_DREQ_PORT, CODEC_DREQ)) {__asm__("nop\n\t");}
            for(i=0;i<32;i++) {
              spi_xfer(CODEC_SPI, endFillByte);
            }
            j += 32;
            if(!(vs1053_SCI_read(SCI_MODE) & SM_CANCEL)) {
              break;
            }
          }
          gpio_clear(CODEC_PORT, CODEC_CS);
          if(j >= 2048) {
            /* need to do a software reset */
            vs1053_SCI_write(SCI_MODE, SM_RESET);
          }
          iprintf("End Fill Byte %02X\r\n", endFillByte);
          
          current_track_playing = 0;
          
          exti_reset_request(EXTI3);
          exti_disable_request(EXTI3);
          nvic_disable_irq(NVIC_EXTI3_IRQ);
          return;
        } else {
          spi_xfer(CODEC_SPI, media_file.buffer[media_file.active_buffer][current_track.byte_count++]);
        }
      }
    }
  }
  }

  gpio_clear(GREEN_LED_PORT, GREEN_LED_PIN);
}
Example #7
0
void platform_mrf_interrupt_disable(void)
{
	exti_disable_request(MRF_INTERRUPT_EXTI);
	nvic_disable_irq(MRF_INTERRUPT_NVIC);
}