我选择MDK 优化-O2
//regval:寄存器值
void LCD_WR_REG(vu16 regval)
{
regval=regval; //使用-O2优化的时候,必须插入的延时
LCD->LCD_REG=regval;//写入要写的寄存器序号
}
//写LCD数据
上面一段代码汇编如下
84: {
0x080047CC B501 PUSH {r0,lr}
85: regval=regval; //使用-O2优化的时候,必须插入的延时
0x080047CE F8BD0000 LDRH r0,[sp,#0x00]
0x080047D2 F8AD0000 STRH r0,[sp,#0x00]
86: LCD->LCD_REG=regval;//写入要写的寄存器序号
0x080047D6 F8BD0000 LDRH r0,[sp,#0x00]
0x080047DA 4901 LDR r1,[pc,#4] ; @0x080047E0
0x080047DC 8008 STRH r0,[r1,#0x00]
87: }
-------------------------------------------------------------------------------
LCD_WR_REG(0XD3);
//regval:寄存器值
void LCD_WR_REG(vu16 regval)
{
//regval=regval; //使用-O2优化的时候,必须插入的延时
LCD->LCD_REG=regval;//写入要写的寄存器序号
}
这段代码汇编如何
639: LCD_WR_REG(0XD3);
0x08001058 27D3 MOVS r7,#0xD3
0x0800105A F8AD700C STRH r7,[sp,#0x0C]
86: LCD->LCD_REG=regval;//写入要写的寄存器序号
0x0800105E F8BD000C LDRH r0,[sp,#0x0C]
0x08001062 4CA9 LDR r4,[pc,#676] ; @0x08001308
0x08001064 8020 STRH r0,[r4,#0x00]
-----------------------------------------------------------------------------------------
求解两段代码为什么能让LCD一个亮,一个不亮呢? 汇编没看懂.求懂的人解说下,谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>