6年前
邮寄人科斯塔基斯0分 5份答复你好有没有使用adc中断的例子?
5年前
嗨,巴拉斯,
上面提到的步骤是正确的,应该触发一个中断,确保您已经为指定的中断启用了NVIC,还确保通过SetBits16(GP_ADC_CTRL_REG,GP_ADC_MINT,1)启用了中断,在进行测量之前调用中断的启用,这应该触发中断。
谢谢你的对话
6年前
邮寄人科斯塔基斯0分 5份答复你好有没有使用adc中断的例子?
5年前
嗨,巴拉斯,
上面提到的步骤是正确的,应该触发一个中断,确保您已经为指定的中断启用了NVIC,还确保通过SetBits16(GP_ADC_CTRL_REG,GP_ADC_MINT,1)启用了中断,在进行测量之前调用中断的启用,这应该触发中断。
谢谢你的对话
6年前
你好,科斯塔基斯,
我不完全确定,但是如果你看到asm文件boot_vectors.s你可以看到它是出口的
导出ADC_处理程序[弱]无效ADC_处理程序(无效){
uint16\u t conversion=GetWord16(GP\u ADC\u RESULT\u REG);
//做必要的事情和转换,可能传递到其他功能等。。。
SetWord16(GP_ADC_CLEAR_INT_REG,0x0000);//我认为应该排除干扰
}
NVIC_设置优先级(ADC_IRQn,2);
NVIC_EnableIRQ(ADC_IRQn);
adc_init(GP_adc_SE,0,GP_adc_ATTN3X);//例如,对于单端3倍注意力
SetBits16(GP_ADC_CTRL_REG,GP_ADC_MINT,1);//重要,否则中断将被屏蔽
设置16(GP\U ADC\U CTRL\U REG,GP\U ADC\U START,1);
我不完全确定是否有什么东西丢失/不完整。也许您应该在执行处理程序函数时禁用adc中断。
谢谢