本帖最后由 FSL_TICS_Robin 于 2014-11-27 10:24 编辑
/// ¶¨Ê±Æ÷1³õʼ»¯,µ¥Î»£ºus
void PIT1_Init(uint8_t pit,uint32_t time)
{
GetProcessorInfo(); //¼ÆËãϵͳʱÖÓ
time=time*(PInfo.BusClock/1000000);
//¿ªÊ¼¶¨Ê±Æ÷ÅäÖÃ
SIM->SCGC6|=SIM_SCGC6_PIT_MASK;//¿ªÆôpitÄ£¿éʱÖÓ£¬¼û²Î¿¼ÊÖ²á269Ò³
PIT->MCR&=~PIT_MCR_MDIS_MASK; //¿ªÆôpitÄ£¿é£¬¼û²Î¿¼ÊÖ²á974Ò³
PIT->MCR|=PIT_MCR_FRZ_MASK; //¿ªÆôpitÄ£¿é£¬¼û²Î¿¼ÊÖ²á974Ò³
PIT->CHANNEL[pit].LDVAL=(uint32_t)time;//ÉèÖÃÑÓʱʱ¼ä£¬¼û²Î¿¼ÊÖ²á975Ò³
DA_COUNT=0;
//¿ªÆôÄں˽ÓÊÜÖжÏ
switch(pit)
{
case 1:
NVIC_EnableIRQ(PIT1_IRQn);
break;
}
PIT->CHANNEL[pit].TFLG |=PIT_TFLG_TIF_MASK;//Çå³ý±ê־λ
PIT->CHANNEL[pit].TCTRL |=(PIT_TCTRL_TEN_MASK|PIT_TCTRL_TIE_MASK);//¿ªÆô¶¨Ê±Æ÷¼°Öжϣ¬¼û²Î¿¼ÊÖ²á976Ò³
}
//º¯ÊýÃû£ºDAC_Init
//˵ Ã÷£º´Ëº¯ÊýÊǽ«dacÄ£¿é½øÐгõʼ»¯ÅäÖÃ
//ûÓпªÆô»º´æ¼°dma¹¦ÄÜ
/********************************************************************************/
void DAC_Init(void)
{
SIM->SCGC2|=SIM_SCGC2_DAC0_MASK; //¿ªÆôdacÄ£¿éʱÖÓ£¬¼û²Î¿¼ÊÖ²á263Ò³
DAC0->C0|=DAC_C0_DACRFS_MASK; //ÅäÖòο¼µçѹԴΪ2ºÅ£¬¼û²Î¿¼ÊÖ²á798Ò³
DAC0->C0|=DAC_C0_DACEN_MASK ; //¿ªÆôdacÄ£¿é£¬¼û²Î¿¼ÊÖ²á798Ò³
}
上面是DA初始化和定时器初始化
void PIT1_IRQHandler(void)
{ uint16 da;
PIT->CHANNEL[1].TFLG|=PIT_TFLG_TIF_MASK;//Çå±ê־λ
PIT->CHANNEL[1].LDVAL=Sound_TONE;///*18;
if (Sound_OFF==0)
{
da=s_sin[DA_COUNT];
DA_COUNT++;
if (DA_COUNT>=12) DA_COUNT=0;
}
else //Sound_OFF=1
{
da=512;
}
if (Sound_OFF==0)
{
//LPC_DAC->DACR = (da << 6) | DAC_BIAS;
DAC0->DAT[0].DATL=((da>>0)&0x00FF);
DAC0->DAT[0].DATH=((da>>8)&0x00FF);
}
//Your Code
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>