历史上的今天
返回首页

历史上的今天

今天是:2024年11月26日(星期二)

正在发生

2018年11月26日 | tq2440 adc+中断 驱动

2018-11-26 来源:eefocus

  基于tq2440开发板,内核2.6.30


  功能


  能进中断了,而且通道2读出来的数据也正确。


  点击触摸屏的时候可能会混淆。因为触摸屏用的也是 adc-irq .


  #include


  #include


  #include


  #include


  #include


  #include


  #include


  #include


  #include


  #include


  #include


  #include


  #include


  #include


  #include


  #include


  #include


  #include


  #include


  #include


  #include


  #include


  #include


  #include


  #include


  #include


  #include


  #include


  #define DEVICE_NAME "driver_adc"


  volatile unsigned long *adccon = NULL; //adc控制寄存器


  volatile unsigned long *adctsc = NULL; //adc 触摸屏控制寄存器


  volatile unsigned long *adcdly = NULL; //adc 起始延迟寄存器


  volatile unsigned long *adcdat0 = NULL; //adc 转换数据寄存器


  volatile unsigned long *adcdat1 = NULL; //adc 转换数据寄存器


  volatile unsigned long *intmsk = NULL;


  /


  *adccon &=~1; //关adc


  printk("----------------drive -----val=%d \n",val);


  copy_to_user( buf,&val,sizeof(val) );


  printk("---------------drive-close-ok-------------\n",val);


  return val;


  }


  // ------------------- WRITE -----------------------


  ssize_t drive_write (struct file * file ,const char * buf, size_t count, loff_t * f_ops)


  {


  printk("-----------------drive write ok----------------\n");


  return 0;


  }


  // ------------------- IOCTL -----------------------


  ssize_t drive_ioctl (struct inode * inode ,struct file * file, unsigned int cmd, unsigned long arg)


  {


  printk("-----------------drive ioctl ok----------------\n");


  return 0;


  }


  // -------------------------------------------------


  static struct file_operations drive_ops ={


  .owner = THIS_MODULE,


  .open = drive_open,


  .read = drive_read,


  .write = drive_write,


  .ioctl = drive_ioctl,


  .release = drive_release,


  };


  static struct miscdevice misc = {


  .minor = MISC_DYNAMIC_MINOR,


  .name = DEVICE_NAME,


  .fops = &drive_ops,


  };


  static int __init init_drive(void)


  {


  int ret;


  ret = misc_register(&misc);


  adccon = (volatile unsigned long *)ioremap(0x58000000, 16);


  adctsc = (volatile unsigned long *)ioremap(0x58000004, 8);


  adcdly = (volatile unsigned long *)ioremap(0x58000008, 16);


  adcdat0= (volatile unsigned long *)ioremap(0x5800000c, 16);


  adcdat1= (volatile unsigned long *)ioremap(0x58000010, 16);


  intmsk = (volatile unsigned long *)ioremap(0x4a000008, 32);


  printk("-----------------drive button init ok----------------\n");


  return 0;


  }


  static void __exit exit_drive(void)


  {


  misc_deregister(&misc);


  printk("-----------------drive button exit ok----------------\n");


  }


  module_init(init_drive);


  module_exit(exit_drive);


  MODULE_LICENSE("GPL");


  //-------------------------------------应用程序------------------------------------------------


  #include


  #include


  #include


  #include // open() close()


  #include // read() write()


  #define DEVICE_NAME "/dev/driver_adc"


  //------------------------------------- main ---------------------------------------------


  int main(int argc, char **argv)


  {


  int fd,ret;


  int val;


  fd = open(DEVICE_NAME, O_RDWR);


  if (fd == -1)


  {


  printf("can't open device mknod %s c zhu ci \n",DEVICE_NAME);


  return 0;


  }


  while(1)


  {


  read(fd,&val,sizeof(val));


  printf("------------------app--------------------\n");


  printf("val=%d\n",val);


  sleep(3);


  }


  // close


  ret = close(fd);


  if (ret == -1)


  {


  printf("app close error!!!!!!!!!!\n");


  return 0;


  }


  return 0;


  }// end main


推荐阅读

史海拾趣

创都(CAX)公司的发展小趣事

随着市场竞争的加剧,单一企业的力量往往难以应对复杂多变的市场环境。创都公司意识到了这一点,因此积极寻求跨界合作的机会。他们与多家知名企业建立了战略合作伙伴关系,共同研发新产品、开拓市场。这些合作不仅为创都公司带来了更多的资源和机会,还提升了公司的综合竞争力。其中,与某知名互联网公司的合作项目尤为成功,双方共同推出了一款智能家居产品,该产品凭借其便捷的功能和优秀的品质迅速在市场上走红,为双方带来了可观的收益。

佰鸿(BrtLed)公司的发展小趣事

随着业务规模的不断扩大,佰鸿意识到提升产能效率的重要性。于是,公司在1990年转投资中国大陆兴建东莞高步厂,现有土地面积和厂房面积均达到相当规模,员工数量也增至数千人。这一举措极大地提升了佰鸿的生产能力,使其能够更好地满足市场需求,同时也为公司后续的发展提供了有力的支持。

骏晔科技(DreamLNK)公司的发展小趣事

随着公司业务的不断发展和市场规模的扩大,骏晔科技开始积极布局全球市场。公司通过与全球数十家半导体企业建立战略合作关系,拓展海外市场。同时,公司还积极参加国际电子展会和论坛,与全球同行交流合作,共同推动电子行业的发展。通过这些努力,骏晔科技在国际市场上逐渐崭露头角,成为了备受关注的行业新星。

DIALIGHT公司的发展小趣事

DIALIGHT公司的故事始于1938年的纽约布鲁克林,当时该公司专注于为飞机生产仪表板灯。随着技术的不断进步和市场的变化,公司在1971年,即LED推出仅一年后,推出了他们的第一个LED产品。这一举措标志着DIALIGHT正式从传统的飞机仪表板灯制造转向LED照明技术的研发和应用。从此,DIALIGHT彻底改变了LED的用途,将其广泛应用于世界各地的交通控制、指示灯、结构塔和工业场所,为全球提供了优质的照明解决方案。

Curtis Instruments Inc公司的发展小趣事

在上世纪60年代至70年代的阿波罗登月计划期间,Curtis的技术和产品被美国航空航天局(NASA)广泛应用。在每个登月舱中,NASA都装备了多个Curtis消逝时间指示器,用于监控电力系统的运行情况。同时,阿波罗月球行走车上也安装了Curtis的电子电量安培小时计,以监控电池的使用情况。这些高精度、高可靠性的产品为NASA的太空任务提供了强有力的技术支撑。

Echelon公司的发展小趣事

进入21世纪后,Echelon在智能楼宇领域取得了重大突破。公司凭借其先进的LonWorks技术和能源管理服务方案,成功为多个大型楼宇提供了智能化的能源管理解决方案。这些解决方案不仅提高了楼宇的能源利用效率,还降低了运行成本,赢得了客户的广泛赞誉。Echelon在智能楼宇领域的成功,进一步巩固了其在能源管理市场的领先地位。

问答坊 | AI 解惑

GSM基站的优化建设[推荐]

引用《移动在线》 GSM数字移动通信发展非常迅速,从早期规划的大区制,到后来的小区制,直到现在的微蜂窝、微微蜂窝,相对应的天线从早期架设在屋面铁塔上,到后来天线降到屋面上,直到现在要把天线设置在屋面下的外墙侧面上。所有的这些变化都说 ...…

查看全部问答>

LM3S 系列单片机休眠与深度休眠应用笔记(二)

1.4 深度睡眠模式设置步骤 处理通过调用WFI 指令即可进入睡眠模式,但要进入深度睡眠实现最低的功耗需要正确配置,其步骤如下: 1. 使能ACG 自动时钟门控。这样睡眠模式和深度睡眠模式的外设时钟可以单独控制。 2. 配置寄存器DCGC0、 DCGC1 和DC ...…

查看全部问答>

高分求一源码

哪位哥们有sirf atlasIII的BSP呀?,发一份给我好吗?我的QQ是648433648,邮箱:sunboyljp@163.com,不弟不胜感谢!…

查看全部问答>

wince怎么编译这么慢

我用WINCE60的platform builder去编译一个IMAGE,每次都很慢,。。。。…

查看全部问答>

cadence16.2学习.pdf

很不错的资料 ,希望对大家有所帮助…

查看全部问答>

求教数据存储问题

MSP430F449中我想把一个整形的数A存入某地方 掉电也不丢失! 作为以后程序运行的参数。 应该是放在FLASH里面吧?或者建议是在哪儿? 怎么写和读? 应该读写各一句话就能搞定的吧?不是例子里面那么复杂!! 求给个例子或者指个方向 谢谢 ...…

查看全部问答>

请问广州哪里有零售漆包线、绝缘纸和绝缘漆的地方??

本帖最后由 paulhyde 于 2014-9-15 09:00 编辑 请问广州哪里有零售漆包线、绝缘纸和绝缘漆的地方?? 昨天下午走了一下午,传说中有这些东西的解放中,都没看见有卖忘各位朋友指出哪里有得买  …

查看全部问答>

在同一空间如果存在多个ZigBee网络,终端设备如何辨别并加入属于自己的网络?

请斑竹指教,谢谢!   [ 本帖最后由 lvhoujun 于 2011-9-19 22:52 编辑 ]…

查看全部问答>

关于C2000芯片的FLASH锁死----以及解决办法

FLASH锁死了这是为什么,有没有办法解锁。为什么会有类似下面这几种报错: Read status value 0x0001 from symbol PRG_status(24x系列) ADC Calibration not complete, check if device is unlocked and recalibrate.(2833x系列)   答:FL ...…

查看全部问答>

关于施密特触发器的直流信号处理

想问一下各位大侠,施密特触发器对于直流信号是怎么处理的?(我仿真过,发现如果输入一个电压介于两个门限电压之间,那输出电压和输入电压是成比例的,谁能告诉我为什么啊?)…

查看全部问答>