定义全局变量num和status用来控制步进电机的速度和方向:

static int num=1;

static enum{off,clockwise,anticlockwise} status=off;

定义步进电机的整步模式正转脉冲表:

unsigned char pulse_table[] =

{

0x05, 0x09, 0x0a, 0x06,

};

定义时钟节拍函数time_tick()

static void time_tick(unsigned long data)

{

static int i=0;

switch(status)

{

case off: break;

case clockwise:

if(++i==num){

i=0;

if( row == 4 ) row = 0;

(*(char *)0xd3000006)=pulse_table[row++];

}

ttimer.expires=jiffies+1;

add_timer(&ttimer);

break;

case anticlockwise:

if(++i==num){

i=0;

if( row == -1 ) row = 3;

(*(char *)0xd3000006)=pulse_table[row--];

}

ttimer.expires=jiffies+1;

add_timer(&ttimer);

break;

case default:  break;

}

}

在time_tick()函数中判断步进电机的状态,是停止、正转还是反转。若是正转,则按正向顺序发送脉冲,并添加定时器ttimer;若是反转,则按反向顺序发送脉冲,并添加定时器ttimer;若是停止则不再发送脉冲,也不再添加定时器。

在stepper_module_init()函数中申请I/O端口,并初始化定时器ttimer:

if(check_region(0x28000006, 1))         //看该I/O端口是否已经被占用

{

printk("The stepper port is used by another module.

");

return -1;

}

request_region(0x28000006, 1, DEVICE_NAME);  //申请该I/O端口

init_timer(&ttimer); //初始化定时器ttimer

ttimer.function=time_tick;    //填写定时器处理函数为time_tick()

编写ioctl函数用来接收应用程序对于步进电机的控制。

[1] [2] [3]

本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

linux步进电机实验程序,基于嵌入式Linux的步进电机驱动程序设计相关推荐

  1. Linux车载导航程序,基于嵌入式LINUX的车载导航系统设计

    (2) Linux 在S3C2440 上的移植 嵌入式 Linux 管理整个导航系统的硬件设备并对所有程序进行调度,是软件系统的核心.由于Linux 是面向PC 机的操作系统,将其用于嵌入式领域,需要 ...

  2. linux 文件系统字体小,基于嵌入式Linux平台的最小文件系统的制作

    工作平台:FL2440 交叉编译环境:arm-linux-gcc 3.4.1 busybox版本:1.9.1 1) 制作文件系统总目录: mkdir my_rootfs 2) 编译&安装bus ...

  3. linux开组态软件,基于嵌入式Linux的组态软件实时数据库的设计

    1 引言 实时数据库(real-TIme database, RTDB)作为组态软件设计与实现的核心内容解决了其所 应对的现代工业生产现场环境中生产数据与控制数据类型复杂多样,数据处理与事件调度时 间 ...

  4. 嵌入式linux 无线网卡,一种基于嵌入式Linux的无线网卡的制作方法

    本实用新型涉及无线网卡技术领域,具体为一种基于嵌入式Linux的无线网卡. 背景技术: 随着移动通信和便携通信的发展,无线局域网WLAN应用而生,日渐普及,嵌入式系统的无线局域网接入可以实现对嵌入式系 ...

  5. 嵌入式linux仪器,一种基于嵌入式Linux设备双系统的启动方法

    一种基于嵌入式Linux设备双系统的启动方法 [技术领域] [0001]本发明涉及一种基于嵌入式Linux设备双系统的启动方法. [背景技术] [0002]Linux操作系统特别是其嵌入式系统由于其源 ...

  6. 嵌入式Linux搭建物联网网关,基于嵌入式Linux的物联网网关研究与实现

    摘要: 随着物联网发展速度日益加快,作为连接感知网络和传统通信网络的物联网网关正在其中扮演着重要角色.然而,目前针对物联网网关的统一标准尚未制定,物联网网关的设备类型千差万别.人们往往针对某一具体应用 ...

  7. gsm基于linux程序,基于嵌入式Linux下GSM模块的短信收发系统设计

    摘要:移动通信中的短消息业务以其方便.可靠和价廉得到了广泛应用,本文在嵌入式Linux系统中,通过西门子MC35模块,实现了短信收发系统,该系统采用PDU短信模式,能支持中文短信.程序设计采用异步事件 ...

  8. python 嵌入式 linux 产品 发布_基于嵌入式Linux进行Python应用开发

    ByToradex秦海 1).简介 Python 编程语言因其极强的可读性.可移植.易于维护,以及丰富的第三方扩展组件,如数据库.数学计算.图形,甚至机器视觉.人工智能.深度学习框架都提供Python ...

  9. linux端口带卡,基于嵌入式Linux的接口转换卡设计

    接口总线为一群互相连接的设备提供一种有效的通信方式,它是自动测试系统发展的标志,可以说接口总线技术发展的历史就是自动测试系统发展史,接口总线技术发展的水平标志着自动测试发展的水平.本文提出的接口转换方 ...

  10. 嵌入式linux更省电,基于嵌入式Linux的智能手机省电设计方案-消费电子-与非网

    每个系统要正常运行都有赖于CPU 的性能, 系统软件, 中间件一集各种系统策略等等, 智能手机也是一样.这篇文章主要探讨了给智能手机选择合适的CPU, 以及在手机电源管理中的动态电源管理(DPM) 和 ...

最新文章

  1. android PhotoView的用法
  2. 【bzoj1251】序列终结者(伸展树)
  3. 算法之动态规划初步(Java版)
  4. php实现附件上传下载,PHP实现文件上传与下载
  5. 中国工科计算机专业,中国最受欢迎的4个工科专业,第1名有些意外,第3名副其实...
  6. Java并发编程—如何实现线程的超时中断
  7. python无法打开_如何解决Windows命令行无法运行python文件?
  8. 基于51的串行通讯原理及协议详解(uart)
  9. 关于计算机类课程实验教学的思考
  10. Fixcel电子表格——报表模块(二)
  11. 圆弧构型机器人轮直径校准
  12. vue快速复制快捷键_vue快捷键与基础指令详解
  13. Visual Studio中的项目属性--生成--配置
  14. 活著就为改变世界---史蒂夫.乔布斯…
  15. win7休眠设置在哪里_win7怎么开启休眠模式
  16. spec文件知识整理
  17. Eden和Survivor
  18. 2021年吴文俊人工智能科学技术奖公布 华为云田奇获杰出贡献奖
  19. Java 如何学习?这份5000页Java学习手册值得拥有,适合零基础自学也适合查漏补缺!
  20. “COMSOL Multiphysics多场耦合仿真技术与应用

热门文章

  1. Simulink 搭建模型【MATLAB官网帮助】
  2. 周志华《机器学习》书每章思维导图总结
  3. 微信第三方登陆,无需注册一键登录,获取用户信息,PHP实现方法.
  4. 普歌+计算机网络--滑动窗口协议
  5. 生物信息学分析常用网站
  6. 方向余弦,向量夹角,向量的投影
  7. ecshop内页显示最新文章
  8. scanf函数读取缓冲区数据的问题
  9. 学习残差神经网络(ResNet)
  10. 逻辑回归算法原理及python实现