/* reset video port */
chan->vportRegs->VP_CTL = CSL_VPORT_VP_CTL_VPRST_MASK;
上面是TI库文件。VPORT初始化后VP_CTL为0x4000,CSL_VPORT_VP_CTL_VPRST_MASK为0x8000,这句话执行完成后,VP_CTL变成0xc000,这个值导致后面流程进入死循环。
while (1)
{
vpCtrl = chan->vportRegs->VP_CTL;
if (!(vpCtrl & CSL_VPORT_VP_CTL_VPRST_MASK)) //跳不出来了,貌似在等待某标志位?
{
break;
}
}
chan->vportRegs->VP_CTL = CSL_VPORT_VP_CTL_VPRST_MASK; 这句执行完成应该表示reset完成了吧?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
/* reset video port */
chan->vportRegs->VP_CTL = CSL_VPORT_VP_CTL_VPRST_MASK; 1
/* enable video port */
chan->vportRegs->PCR |= CSL_VPORT_PCR_PEREN_MASK;
while (1)
{
vpCtrl = chan->vportRegs->VP_CTL;
if (!(vpCtrl & CSL_VPORT_VP_CTL_VPRST_MASK)) 2
{
break;
}
}
端口初始化时VP_CTL为0x4000,CSL_VPORT_VP_CTL_VPRST_MASK为0x8000,执行完上面第1句后,VP_CTL变成0xc000。 VP_CTL的最高位VPRST表示复位使能位,这样导致第2句一直是死循环。ti文档说:The VPRST bit may take several clock cycles to clear to 0。怎么我现在这个bit位一直没被清0
一周热门 更多>