ENABLE_LCD_TRANSFER_COMPLETE_INT :这个是表示刷屏数据通过DMA方式传输完成后,产生一个中断,通过这个中断知道一帧数据传输完成;
根据你的解释,这个宏起到一个标签作用,只有上面几个写寄存器命令执行完毕后,也就是刷屏数据传输完成,将LCD_INT_ENABLE_REG置1,然后BB通过对这个寄存器的判断来确定是否传输完毕。但是这个宏执行的前提得是DMA已经打开,数据传输已经完成。
根据你的解释,我感觉这边代码分布应该这样更合理:
ENABLE_LCD_ROI_CTRL_CMD_FIRST;
START_LCD_TRANSFER;
SET_LCD_CMD_PARAMETER(num++,LCD_CMD,(kal_uint32)0x2a);
SET_LCD_CMD_PARAMETER(num++,LCD_DATA,(kal_uint32)startx);
SET_LCD_CMD_PARAMETER(num++,LCD_DATA,(kal_uint32)endx);
SET_LCD_CMD_PARAMETER(num++,LCD_CMD,(kal_uint32)0x2b);
SET_LCD_CMD_PARAMETER(num++,LCD_DATA,(kal_uint32)starty);
SET_LCD_CMD_PARAMETER(num++,LCD_DATA,(kal_uint32)endy);
SET_LCD_CMD_PARAMETER(num++,LCD_CMD,(kal_uint32)0x2c);
ENABLE_LCD_TRANSFER_COMPLETE_INT;
还是这些宏的执行次序,不是这样?
[此贴子已经被作者于2012-10-12 20:45:56编辑过] |