- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LINUX实验报告 (800字)
LINUX实验报告 (800字)
本科生实验报告
实验课程 多传感器信息融合技术 学院名称 信息科学与技术学院 专业名称 物联网工程学生姓名 何月明 学生学号 201213060307 指导教师 赖武刚 实验地点 6B607 实验成绩
二〇 14 年 11月二〇 14年12月
题目1.按键控制蜂鸣器增减
一、实验要求。
(1)按键1:启动/停止蜂鸣器。
按键2:增加频率10Hz 按键3:减小频率10Hz按键8:退出程序。
(2)程序初始化完成后,蜂鸣器的默认状态是停止。
二、实验流程图。
三、实验步骤。
首先明白实验的要求,从按键,数据采集去考虑程序的写法。则程序可如下: #include lt;termios.hgt; #include lt;stdio.hgt;
#include lt;fcntl.hgt; #include lt;unistd.hgt; #include lt;stdlib.hgt; #include lt;sys/ioctl.hgt; #include lt;sys/types.hgt; #include lt;sys/stat.hgt;
#define PWM_IOCTL_SET_FREQ #define PWM_IOCTL_STOP #define
ESC_KEY
static int getch(void){
struct termios oldt,newt; int ch; if (!isatty(STDIN_FILENO)) {
fprintf(stderr, quot;this problem terminal\nquot;);
exit(1);
should 1
0x1b be run at a
}
// save terminal setting
if(tcgetattr(STDIN_FILENO, amp;oldt) lt; 0) {
perror(quot;save
the terminal settingquot;);
exit(1); }
// set terminal as need
terminalquot;);
exit(1);}
newt = oldt;
newt.c_lflag amp;= ~( ICANON | ECHO );
if(tcsetattr(STDIN_FILENO,TCSANOW, amp;newt) lt; 0) {
perror(quot;set
ch = getchar(); open_buzzer();
perror(quot;restore the termial settingquot;); // restore termial setting
if(tcsetattr(STDIN_FILENO,TCSANOW,amp;oldt) lt; 0) {
return ch; }
static int fd = -1;
static void close_buzzer(void); static void open_buzzer(void) { fd = open(quot;/dev/pwmquot;, 0); if (fd lt; 0) {
pwm_buzzer devicequot;);
}
// any function exit call will stop the buzzer atexit(close_buzzer);
}
static void close_buzzer(void) {
exit(1);}
perror(quot;open
exit(1);
if (fd gt;= 0) {
ioctl(fd,
PWM_IOCTL_STOP);
2) lt; 0) { }
static void set_buzzer_freq(int freq) {
// this IOCTL command is the key to set frequency int ret = ioctl(fd, PWM_IOCTL_SET_FREQ, freq); if(ret lt; 0) {
perror(quot
文档评论(0)