韋東山嵌入式第一期學習筆記DAY 20 17 8

2021-09-25 13:41:35 字數 2413 閱讀 6800

一、課程內容:

概述:實現lcd顯示屏的畫點、畫線、畫圈

1、首先實現畫點:關鍵是如何將需要顯示的點,與視訊記憶體對應起來。

void fb_put_pixel(int x, int y, unsigned int color)

2、接下來就可以畫線畫圈了(這部分**不是講課的內容,copy過來的)

#include "framebuffer.h"

/* *

*/ //-------------畫圓函式。引數:圓心,半徑,顏色----------

// 畫1/8圓 然後其他7/8對稱畫

// ---------------->x

// |(0,0) 0

// | 7 1

// | 6 2

// | 5 3

// (y)v 4

//

// l = x^2 + y^2 - r^2

void draw_circle(int x, int y, int r, int color)

} }

//-----------畫線。引數:起始座標,終點座標,顏色--------

void draw_line(int x1,int y1,int x2,int y2,int color)

x1+=1;

e+=dy;

} }

else // 2/8 octant

y1+=1;

e+=dx;

} }

} else // dy<0

x1+=1;

e+=dy;

} }

else // 7/8 octant

y1-=1;

e+=dx;

} }

}

} else //dx<0

x1-=1;

e+=dy;

} }

else // 3/8 octant

y1+=1;

e+=dx;

} }

} else // dy<0

x1-=1;

e+=dy;

} }

else // 6/8 octant

y1-=1;

e+=dx;

} }

} } }

3、測試函式

#include "geometry.h"

void lcd_test(void)

/* 畫線 */

draw_line(0, 0, xres - 1, 0, 0);

draw_line(xres - 1, 0, xres - 1, yres - 1, 0);

draw_line(0, yres - 1, xres - 1, yres - 1, 0);

draw_line(0, 0, 0, yres - 1, 0);

draw_line(0, 0, xres - 1, yres - 1, 0);

draw_line(xres - 1, 0, 0, yres - 1, 0);

/* 畫圓 */

draw_circle(xres/2, yres/2, yres/4, 0);

}

二、學習要點

1、問;c語言中不同的函式間,引數怎麼呼叫?

答:1)、extern使用,適用於變數的呼叫,陣列之類的;

2)、在各自的檔案中分別為需要呼叫這些引數的函式執行引數獲得函式:適用於獲得結構體得數值或者函式的返回值作為檔案中函式的引數,操作是在各自的檔案中封裝一次返回函式值的函式,在需要用到檔案中函式的另乙個檔案中呼叫被封裝的函式。

例如在測試函式中就要為test.c檔案中的清屏顯示獲得一次引數然後再為framebuffer.c檔案中的點顯示獲得一次引數。有引數傳遞的封裝和無引數傳遞的封裝(init函式,enable函式)是有區別的。傳址解決的是同時產生多個返回值(解析度、x、y這種)解決不了跨檔案傳參。

2、問:指標作為輸入引數時候怎麼定義和引用?

答:定義時:

引用時:

韋東山嵌入式第一期學習筆記DAY 11 13 4

一 課程內容 摘要 本節課主要講解了將之前start.s中的strb,ldrb 單位元組操作 換成str,ldr 4位元組操作 減少硬體的訪問次數和align函式實現的 4位元組對齊 1 問 是怎麼減少硬體訪問次數從而優化strb的?答 使用strb,ldrb若操作16位元組資料硬體總共訪問32次 ...

韋東山嵌入式第一期學習筆記DAY 11 13 5

一 課程內容 摘要 本節課講解了整體的 重定位與位置無關碼,其中重點和難點是位置無關碼。實現第二種方法的 重定位 在第二節課講的第乙個 實現的功能,是分段重定位的,本節講的是整體形式的鏈結指令碼。1 問 位置無關碼怎麼理解?很關鍵,一開始沒理解!答 位置無關碼說白了就是相對跳轉指令與絕對跳轉指令的關...

韋東山嵌入式第一期學習筆記DAY 19 17 6

一 課程內容 完善上節課的程式,實現設定4.3寸lcd的引數與,第一步 設定lcd顯示屏的引數 第二步 寫乙個註冊函式,用於註冊不同型號的lcd顯示器 define lcd num 10 static p lcd params p array lcd lcd num static p lcd par...