智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1487|回复: 1
打印 上一主题 下一主题

[Kinetis ARM微控制器] k60在keil写的寄存器ADC中断,进不了中断的原因是什么

[复制链接]

2

主题

26

帖子

0

精华

高级会员

Rank: 4

积分
575
威望
304
贡献
173
兑换币
190
注册时间
2015-4-2
在线时间
49 小时
毕业学校
zjdx
跳转到指定楼层
1#
发表于 2015-8-16 16:30:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void ADC1_Init(void)
{
               
                SIM->SCGC3 |= SIM_SCGC3_ADC1_MASK;  //′ò¿aADC1ê±Öó
                SIM->SCGC5 |=        SIM_SCGC5_PORTE_MASK;                //′ò¿aPORTE
                PORTE->PCR[0] &= PORT_PCR_MUX_MASK;
                PORTE->PCR[0] |= PORT_PCR_MUX(0);
                ADC1->CFG1 = 0x00;
                ADC1->CFG2 = 0x00;
                ADC1->SC2 = 0x00;
                ADC1->SC3 |= ADC_SC3_CAL_MASK        ;
                NVIC_EnableIRQ(ADC1_IRQn);
                ADC1->SC1[0] |= ADC_SC1_AIEN_MASK | ADC_SC1_ADCH(4);
       
       
}


unsigned int ADC1_PE0_Gather(void)
{
        unsigned int ad;
        //while(!(ADC1->SC1[0]&0X80));
        while(!(ADC1->SC1[0]>>7));
        ad=ADC1->R[0];
        return ad;
}

uint32_t ad_val;
uint32_t m_ADC1_IT(void)
{
//        NVIC_EnableIRQ(ADC1_IRQn);
//        NVIC_ClearPendingIRQ(ADC1_IRQn);
        ad_val = ADC1->R[0];
//        PAout(17)=0;
//        DelayMs(500);
        return ad_val;
}
int main
{
   ADC1_Init();
//IO口初始化;此处省略不写,程序有写
   while(1)
  {
     if(ad_val<100)
         PTA->PDDR |= (1<<17);
     else
         PTA->PDDR &= ~(1<<17);
    }
}

回复

使用道具 举报

2

主题

26

帖子

0

精华

高级会员

Rank: 4

积分
575
威望
304
贡献
173
兑换币
190
注册时间
2015-4-2
在线时间
49 小时
毕业学校
zjdx
2#
 楼主| 发表于 2015-8-16 16:31:19 | 只看该作者
这个中断函数要怎么写啊,我看蓝宙的底层函数是用的函数指针,不明白那里出问题了,请各位指教啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-27 22:17 , Processed in 0.039620 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表