ARM ADC程式設計

2021-06-20 19:35:38 字數 1673 閱讀 7513

arm adc程式設計

模擬訊號:時間上連續,數值上也連續,數碼訊號:時間和數值上是離散的,而離散訊號只有0或1

。 s3c2440內部有8路

a/d轉換通道

ain0~ain7

,但是轉換器只有乙個,從

8路中選出一路進行轉換,轉換精度10位

(0~1024-1)

,轉換頻率

500ksps(

每秒取樣

500次),在

mini2440

,ain4,5,6,7

,用作了觸控螢幕通道ym,

yp,xm,

xp,ain0

連線可變電阻

ain0為模擬訊號輸入通道,電壓作為模擬訊號輸入,

adc程式流程:

初始化---->

啟動(cpu

告訴ad

硬體做某項工作

)---->

轉換結束

(查詢,中斷

)----->

讀取轉換值

初始化:選擇轉換通道----->

設定轉換頻率 

sel_mux

選擇轉換通道,

prscen為1

表示使用分頻器做頻率設定,

prscvl

為具體分頻器的值,

ec***

轉換結束。

資料在0--9位

使用可調電阻作為輸入adc轉換程式:

#define adc_freq 2500000

//#define adc_freq 1250000

volatile u32 prescaler;

void adc_init(void);

int readadc(int channel);

static void cal_cpu_bus_clk(void);

void set_clk(void);

void beep_init(void);

void beep_run(void);

void delay(int times)

static void cal_cpu_bus_clk(void)

if(p)

pclk = hclk>>1;

else

pclk = hclk;

if(s&0x10)

cpu_freq = hclk;

else

cpu_freq = fclk;

val = rupllcon;

m = (val>>12)&0xff;

p = (val>>4)&0x3f;

s = val&3;

upll = ((m+8)*fin)/((p+2)*(1<>1):upll;

}void beep_init(void)

void beep_run(void)

程式設計,還是程式設計

喜歡程式設計,雖然水平一般,但還是執著地學習與程式設計有關的知識。中間因為工作關係與程式設計遠離了一段時間,現在又重拾起來,細想起來還是因為喜歡吧。喜歡程式軟體的思想和原理,喜歡程式 的魅力和成就感。程式設計軟體的思想是最值得學習的,一直認為思想決定行動,思想改變世界。每種軟體的流行和受人追捧,無不...

少兒程式設計程式設計

機械人比賽,聽上去讓人有一種高大上的科技感,沒錯,在大多數人眼裡,玩機械人那是科學家做的事情,不過隨著機械人教育的普及,越來越多的孩子也能夠駕馭這高大上的機械人。格物斯坦小坦克告訴你原因,這是歸結於孩子對於程式設計課程的學習,學會對機械人進行程式設計了,自然就能玩轉機械人啦。參加機械人比賽的意義遠遠...

LINUX程式設計 socket程式設計

什麼是套接字 套接字是一種通訊過程,它使客戶 伺服器系統的開發工作既可以在本地單機上進行,也可以跨網路進行。套接字建立過程 1,建立乙個套接字,這是分配給該伺服器程序的乙個作業系統資源,套接字由伺服器通過系統呼叫socket建立出來的,所以其它程序將不能對它進行訪問。2,給套接字起個名字,用系統呼叫...