做代练去什么网站安全吗旅游网站开发工程师
在key1.c的基础上进行对adc1.c进行编写

首先将文件里面的key全部改为adc
                        
再修改一下设备号

按键和adc的区别是什么,按键只需要按一下就触发了,并且不需要返回一个值出来,
adc要初始化,启动,返回值
以下是裸机adc的代码:
#include <s3c2440.h>
#include "adc.h"			 void adc_init(void)
{ADCCON = (1 << 14) | (49 << 6) | (1 << 1);
}unsigned short adc_read(void)
{unsigned short data = ADCDAT0;  //读取数据,启动转换while(!(ADCCON & (1 << 15)));    //判断是否转换结束,结束后跳出while循环data = ADCDAT0 & 0x3ff;return data;
}//这是读启动,先读一下,然后启动转换,判断是否转换结束,结束后跳出循环,返回读取的数据 

1.因为我们要是有寄存器,所以定义寄存器的地址,ADCCON和ADCDAT0。
2.因为ADCCON和ADCDAT0是俩个常量,所以不能直接给赋值,所以定义俩个指针变量。

给定义的这个变量赋值,使用的是ioremap,获取ADCCON的实际物理地址。
这里在注销的时候要把这个变量释放掉。

上面的裸机代码,是读启动,先读一下,然后启动转换,判断是否转换结束,结束后跳出循环,返回读取的数据,在驱动里面就不能这样了,万一转换不结束,就会一直在等,这次就不要读启动了,用手动的启动。
