tq2440 adc+中断 驱动

发布者:MindfulBeing最新更新时间:2018-11-26 来源: eefocus关键字:tq2440  adc  中断  驱动 手机看文章 扫描二维码
随时随地手机看文章

  基于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


关键字:tq2440  adc  中断  驱动 引用地址:tq2440 adc+中断 驱动

上一篇:TQ2440裸奔程序:EINT中断按键测试程序
下一篇:TQ2440上移植RT3070AP过程

推荐阅读最新更新时间:2024-03-16 16:18

意法半导体推出新的多像素驱动器 赋能下一代汽车照明
9月27日,意法半导体(STMicroelectronics)推出L99LDLH32线性电流调节器,为使用轻量级CAN FD Light协议控制的动态汽车照明提供了一种方便的集成解决方案。新驱动器非常适合与OLED灯结合使用,表面积虽小,但可提供明亮、均匀和高对比度的照明,让设计师能够制作复杂的光图案和效果,从而增强安全性和造型。 图片来源:意法半导体
[汽车电子]
意法半导体推出新的多像素<font color='red'>驱动</font>器 赋能下一代汽车照明
电源设计小贴士:高效驱动 LED 离线式照明
     用切实可行的螺纹旋入式 LED 来替代白炽灯泡可能还需要数年的时间,而在建筑照明中 LED 的使用正在不断增长,其具有更高的可靠性和节能潜力。同大多数电子产品一样,其需要一款电源来将输入功率转换为 LED 可用的形式。在路灯应用中,一种可行的配置是创建 300V/0.35 安培负载的 80 个串联的 LED。在选择电源拓扑结构时,需要制定隔离和功率因数校正 (PFC) 相关要求。隔离需要大量的安全权衡研究,其中包括提供电击保护需求和复杂化电源设计之间的对比权衡。在这种应用中,LED 上存在高压,一般认为隔离是非必需的,而 PFC 才是必需的,因为在欧洲 25 瓦以上的照明均要求具有 PFC 功能,而这款产品正是针对欧洲市
[电源管理]
电源设计小贴士:高效<font color='red'>驱动</font> LED 离线式照明
日产“JUKE 16GT/16GT FOUR”:无需差动齿轮即可左右分配驱动
  日产汽车为“JUKE”追加了配备有涡轮增压发动机“MR16DDT”的车型,已于2010年11月2日上市(图1)。前轮驱动款为“16GT”,四轮驱动款为“16GT FOUR”。   图1:日产“JUKE16GT/JUKE16GT FOUR”   MR16DDT为1.6L排量的直喷汽油发动机(图2)。除进气端外,排气端也安装有可变气门正时机构(CVTV),由此提高了进排气效率。压缩比为9.5:1。峰值扭矩为240N·m(24.5kgf·m)/2000~5200rpm,最高输出功率为140kW(190PS)/5600rpm(图3)。 图2:新发动机“MR16DDT” 向1.6L排量的发动机增压,可
[汽车电子]
日产“JUKE 16GT/16GT FOUR”:无需差动齿轮即可左右分配<font color='red'>驱动</font>力
【STM32H7教程】第46章 STM32H7的ADC应用之DMA方式多通道采样
第1阶段,上电启动阶段: 这部分在第14章进行了详细说明。 第2阶段,进入main函数: 第1步,硬件初始化,主要是MPU,Cache,HAL库,系统时钟,滴答定时器,LED,串口和ADC。 第2步,周期性的打印ADC采集的多通道数据。 46.7 实验例程说明(MDK) 配套例子: V7-024-ADC+DMA的多通道采集 实验目的: 学习ADC + DMA的多通道采集实现。 实验内容: 例子默认用的PLL时钟供ADC使用,大家可以通过bsp_adc.c文件开头宏定义切换到AHB时钟。 采用DMA方式进行多通道采样,采集了PC0, Vbat/4, VrefInt和温度。 每隔500ms
[单片机]
BlueCore2型模块及其HCI传输驱动的实现
1 引言   蓝牙技术是一种短距离无线通信技术。遵循开放系统互联参考模型(OSI/RM),采用分层的协议栈。主机控制接口(HCI)位于蓝牙协议栈的L2CAP(逻辑链路控制与适配协议)层和LMP(链路管理协议)层之间,是蓝牙协议栈中软件与硬件的接口。它为上层软件调用下层(基带和链路管理层)状态寄存器和控制寄存器等硬件提供了统一的指令接口。蓝牙设备高层软件和底层硬件模块接口之间的消息和数据传递必须通过蓝牙主机控制器接口的解释才能进行。HCI以上的协议软件实体运行在主机上,而HCI以下的功能由蓝牙模块来完成,二者之间通过传输层进行交互传输数据。 2 BlueCore2-external的特点及结构   BlueCore2-ext
[网络通信]
stm32中断服务函数c语言,STM32中断使用总结——不使用固件库
ST提供的固件库给我们很大的方面,但我十分不喜欢使用固件库因为它不简洁等一些原因,所以自己不断琢磨怎么用汇编和C语言编写自己想要的程序。以定时器TMI1上溢中断的产生为例总结一下这种方法。硬件条件是:外部晶振使用HIE=6MHz;目标是:定时器每10S进中断一次使LED闪烁。 首先要知道这个中断(TIM1上溢事件)的中断向量地址在哪?汇编部分就是编写一个跳转程序,用来保证在产生中断时会跳入自己写的C程序中,这个可以参考启动代码STM32F10X.S中的复位函数的编写,但要注意地址的对准,这里不在赘述。 然后根据需要编写一个中断处理程序,这个里面必须将TIM1的上溢中断标志清零(TIM1_SR中第0位),否则时间没到程序一直
[单片机]
s3c2440裸机-异常中断(一. 异常、中断的原理与流程)
1.异常中断概述 在arm架构的处理器中,cpu有7中工作模式,2中工作状态。 1.CPU模式(Mode): 7种Mode: 除了usr/sys,其他5种都是异常模式。我们知道中断属于异常的2中,中断有irq,fiq。 usr sys undefined(und) Supervisor(svc) Abort(abt) irq fiq 用户模式 系统模式 未定义指令异常模 svc管理模式 终止模式(1.指令预取终止(读写某条错误的指令导致终止运行);2.数据访问终止(读写某个非法地址程序终止)) irq中断 快中断 除了usr模式,其他6中为特权模式。 CPU无法从usr模式直接进入特权模式。不能直接进入特权模
[单片机]
s3c2440裸机-异常<font color='red'>中断</font>(一. 异常、<font color='red'>中断</font>的原理与流程)
Microchip推出3.3 kV XIFM 即插即用mSiC™ 栅极驱动
进一步扩展其mSiC 解决方案,加速高压SiC 电源模块采用 这款高度集成的 3.3 kV XIFM 即插即用数字栅极驱动器可与基于SiC的高压电源模块搭配使用,从而简化并加快系统集成 万物电气化推动了碳化硅 (SiC)技术在交通、电网和重型汽车等中高压应用领域的广泛采用。为了帮助开发人员部署SiC解决方案并快速推进开发流程, Microchip Technology Inc.(微芯科技公司)今日推出采用Augmented Switching™ 专利技术的3.3 kV XIFM 即插即用mSiC™栅极驱动器。该驱动器采用预配置模块设置,开箱即用,可显著缩短设计和评估时间。 为了加快产品上市,这款即插即用的解决方案
[电源管理]
Microchip推出3.3 kV XIFM 即插即用mSiC™ 栅极<font color='red'>驱动</font>器
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved