|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
大家好,小弟最近在用44b0的sta013做一个mp3播放器,通过44b0的sio口给sta013传递mp3文件数据,每个循环传递八位,即在siodata寄存器中写入8位数据,然后将start置1,触发中断,在中断服务子程序中设立一个volatile型标志位,传输结束后置一,主程序检测到后开始第二次循环。每次循环主程序执行下面两条语句:
rSIODAT = data;//写数据8位
rSIOCON|=(1<<3); 开始传输
中断服务子程序中:void __irq sio_Int(void)
{
rI_ISPC = BIT_SIO;//清中断
endsio=1;//标志位
}
小弟不解的是:如果每次是用八位传输的,sioco寄存器的shift operation,和sio mode select两个位还起什么作用,因为我每次都是传输八位,然后再主程序中重新写如寄存器,然后开启传输的。至于sio mode select 位我把它置为00,即no operations ,传输过程也能进入中断,那sio interupt mode 又应该如何解释?此外,如果用这种方式的话,ivtcnt这个寄存器又起什么作用呢?
请大家指点,万分感谢
|
|