完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
void DAC_IRQHandler(void)
{ if (DAC_GET_INT_FLAG(DAC0, 0)) { if (g_u32Index == g_u32ArraySize) g_u32Index = 0; else { DAC_WRITE_DATA(DAC0, 0, g_au16Sine[g_u32Index++]); DAC_START_CONV(DAC0); /* Clear the DAC conversion complete finish flag */ DAC_CLR_INT_FLAG(DAC0, 0); } } return; } |
|
相关推荐
1个回答
|
|
|
是的,DAC也有中断。DAC_IRQHandler就是DAC的中断处理函数。在上述代码中,如果DAC0的第0个通道(即DAC0_CH0)触发了中断,就会执行if语句中的代码。具体来说,会将g_u32Index对应的正弦波数据写入DAC0_CH0的数据寄存器,然后将g_u32Index加1。如果g_u32Index超出了数组范围,就将其重新设置为0。这个中断在每次DAC0输出完一段正弦波之后会被触发。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1838 浏览 0 评论
imx6ull 和 lan8742 工作起来不正常, ping 老是丢包
4766 浏览 0 评论
4248 浏览 9 评论
3837 浏览 16 评论
4413 浏览 1 评论
4233浏览 3评论
2397浏览 0评论
3414浏览 0评论
1176浏览 0评论
2862浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-8 18:12 , Processed in 0.706734 second(s), Total 76, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
305