⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 audio.c

📁 IAR环境下的工程文件
💻 C
字号:
#include "hal.h"
#include "CC2430DB.h"
void main()
{

  DISABLE_ALL_INTERRUPTS();

  SET_MAIN_CLOCK_SOURCE(CRYSTAL);

  P0SEL=0x00;
  P1SEL=0x00;
  IO_DIR_PORT_PIN(0, 0, IO_IN);

  IO_ADC_PORT0_PIN(0, IO_ADC_EN);
  IO_DIR_PORT_PIN(1, 1, IO_OUT);

  // Setting up timer 1 to generate sampling commands to the ADC.
  TIMER1_INIT();
  halSetTimer1Period(8);

  TIMER34_INIT(4);
  halSetTimer34Period(4,8);
  TIMER34_PWM_CONFIG(4);

  ADC_ENABLE_CHANNEL(0);

  INT_GLOBAL_ENABLE(INT_ON);
  INT_ENABLE(INUM_T1, INT_ON);
  TIMER1_ENABLE_OVERFLOW_INT(TRUE);

  // Starting timer 1
  TIMER1_RUN(TRUE);
  TIMER4_RUN(TRUE);
  while(1);
}

///////////////////////////////////////////
#pragma vector=T1_VECTOR
__interrupt void T1_IRQ(void)
{
  if(T1CTL & 0x10)
  {
    ADC_ENABLE_CHANNEL(0);
    ADC_SINGLE_CONVERSION(ADC_REF_AVDD | ADC_8_BIT | ADC_AIN0);
    while(!ADC_SAMPLE_READY());

    ADC_DISABLE_CHANNEL(0);
    UINT8 adc_value;
    UINT8 pulse_length;
    adc_value = ADCH;

    pulse_length=adc_value*15/16;
    TIMER34_SET_PWM_PULSE_LENGTH(4,pulse_length);
  }
  T1CTL &= ~0x10;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -