S3C2440 ADC取樣光敏電阻感測器驅動

2021-09-22 01:39:44 字數 2208 閱讀 7368

通過光敏電阻感測器獲取外界光線的變化,並通過adc取樣,上報,獲取阻值。電路介面圖如下。

#define lm393_major 253 /* 主裝置號 */

struct s3c_adc_regs ;

struct s3c_adc_dev ;

static volatile struct s3c_adc_regs *s3c_adc_regs;

static struct s3c_adc_dev s3c_adc_dev;

static struct class *lm393_class;

static struct clk *clock;

//adc中斷服務

static irqreturn_t adc_irq(int irq, void *dev_id)

static int lm393_drv_open (struct inode *inode, struct file *file)

static ssize_t lm393_drv_read (struct file *file, char __user *buf, size_t count, loff_t * ppos)

/*字元裝置的相關操作實現*/

static struct file_operations lm393_drv_fops = ;

static int __init lm393_drv_init(void)

lm393_class = class_create(this_module, "lm393_drv");

device_create(lm393_class, null, mkdev(lm393_major, 0), null, "lm393"); // /dev/lm393

s3c_adc_regs = ioremap(0x58000000, sizeof(struct s3c_adc_regs)); //位址對映

clock = clk_get(null, "adc"); //獲取adc 時鐘並啟動操作

if (!clock)

clk_enable(clock);

retval = request_irq(irq_adc, adc_irq, irqf_sample_random, "adc", null); //申請adc中斷服務

if (retval)

deb_printk("register success!\n");

return 0;

}static void __exit lm393_drv_exit(void)

module_init(lm393_drv_init);

module_exit(lm393_drv_exit);

module_license("gpl v2");

## 測試程式

#include #include #include #include #define deb_printf printf

//#define deb_printf(...)

int main(int argc, char **ar**)

else

ret = read(fd, result, sizeof(result));

if(ret != sizeof(result))

else

for (i = 0; i < ret; i++)

close(fd);

return 0;

}

測試結果如圖

s3c2440裸機 ADC程式設計

模數轉換器即a d轉換器,或簡稱adc,通常是指乙個將模擬訊號轉變為數碼訊號的電子元件。如圖,是把可變電阻上的電壓值變換的模擬訊號通過adc轉換,輸出數碼訊號。對於數碼訊號我們需要得到它的2個屬性 1.轉換精度 用多少位來儲存這個資料 假如是10 bit 那麼最大值0b111111111對應3.3v...

S3C2440A的ADC和觸控螢幕介面

s3c2440a內建乙個帶8個模擬輸入通道的10位逐次逼近型 recycling type cmos模數轉換器。在2.5mhz的模數轉換時鐘頻率下,轉換速率可達到500ksps kilo samples per second 並且支援片內取樣保持功能和省電模式。s3c2440a還帶有觸控螢幕介面,可...

AMR linux S3c2440之ADC驅動實現

硬體描述 s3c2440有乙個10 bit的cmos adc 模數轉換器,支援8個模擬通道輸入,10位的解析度,最高速度可達500ksps 500 千次 每秒 從圖中可知 模擬adc,包含了2部分功能,一部分是觸屏功能,另一部分就是普通adc功能,分別可以產生int tc和int adc 兩個中斷。...