系列文章目录

一、orangepi实现定时器
二、orangepi控制舵机


前言

实现定时器,通过itimerval结构体以及setitimer产生信号,通过signal函数处理信号


1.引入头文件

#include <sys/time.h>
#include <signal.h>

2.函数以及结构体介绍

代码如下(示例):

struct itimerval {struct timeval it_interval; //设定定时时间struct timeval it_value;//设定程序运行到该处多久后启动定时器};struct timeval {long tv_sec;                /* seconds */long tv_usec;               /* microseconds */};
int setitimer(int which, const struct itimerval *value,struct itimerval *ovalue);

setitimer()将value指向的结构体设为计时器的当前值,假设ovalue不是NULL,将返回计时器原有值。ovalue一般设置为NULL
which:间歇计时器类型,有三种选择
ITIMER_REAL //数值为0,计时器的值实时递减,发送的信号是SIGALRM。一般使用这个值
ITIMER_VIRTUAL //数值为1,进程运行时递减计时器的值,发送的信号是SIGVTALRM。
ITIMER_PROF //数值为2,进程和系统运行时都递减计时器的值。发送的信号是SIGPROF。
返回说明:
成功运行时,返回0。失败返回-1。errno被设为下面的某个值
EFAULT:value或ovalue是不有效的指针
EINVAL:其值不是ITIMER_REAL。ITIMER_VIRTUAL 或 ITIMER_PROF之中的一个


signal(SIGALRM,signal_handler);//SIGALRM信号,signal_hander信号处理函数

3.整体代码

实现定时,每1秒打印一次hello

#include <stdio.h>
#include <sys/time.h>
#include <stdlib.h>
#include <signal.h>
static int i;
void signal_handler(int signum)
{i++;if(i==2000){printf("hello\n");i=0;}
}
int main()
{struct itimerval itv;itv.it_value.tv_sec=0;  //设置启动定时器时间itv.it_value.tv_usec=500;itv.it_interval.tv_sec=0;//设置定时时间itv.it_interval.tv_usec=500;if(setitimer(ITIMER_REAL,&itv,NULL)==-1){   //设置定时方式perror("error");exit(-1);}signal(SIGALRM,signal_handler);//信号处理while(1);return 0;
}

orangepizero2(全志H616)相关推荐

  1. Orange Pi Zero2 (全志H616) 开箱配置

    背景 之前一直使用树莓派做一些物联网开发的小项目.然而,今年,由于芯片的涨价,树莓派4B裸板要卖到700人民币,连上一代的树莓派3B也要搭配套装一起买,价格也大多到了5.600人民币.更离谱的是连树莓 ...

  2. Orangepi Zero2 全志H616(一):配置初始化和启动流程

    目录 一,Orangepi简单说明 ①为什么使用全志H616 ②基本特性 ③配套操作系统支持 二,刷机和系统启动 ①准备工具 ②登录系统 ● 开发板供电 ● 登录 ● 开发板上板载LED灯测试说明 ③ ...

  3. 全志H616——刷机以及初步配置

    刷机: 需要的东西: Orangepi Zero2 全志H616开发板 PC机 TF卡及读卡器 操作系统镜像SDFormatter TF卡的格式化工具 Win32Diskimager 刷机工具 USB ...

  4. [ARM+Linux] 基于全志h616外设开发笔记

    修改用户密码 配置网络 nmcli dev wifi 命令扫描周围WIFI热点 nmcli dev wifi connect  xxx password xxx 命令连接WiFi 查看ip地址的指令: ...

  5. 全志H616高画质芯片香橙派Orange Pi Zero2开发板音频测试说明

    香橙派Zero2开发板搭载高画质旗舰型6K OTT处理器全志H616 四核 64位处理器,适配有Linux系统和安卓电视盒子系统,拥有512MB/1GB 内存可选,集成千兆以太网卡.蓝牙5.0+双频W ...

  6. 全志H616方案香橙派Zero2开发板Linux系统设置静态 IP 地址的方法

    注意: 1)请不要通过修改/etc/network/interfaces 配置文件的方式来设置静态 IP 地址 2)下文测试方法使用的是全志H616芯片的香橙派zero2开发板,如果使用的是香橙派其他 ...

  7. 全志H616芯片香橙派Orange Pi Zero2开发板26pinGPIO口测试

    香橙派Zero2开发板采用全志H616 四核 64位处理器,拥有512MB/1GB 内存可选,集成千兆以太 wiringOP 已适配 Orange Pi Zero 2 开发板,使用 wiringOP ...

  8. 全志H616开发板Orange Pi Zero2连接香橙派5寸TFT液晶屏的测试说明

    香橙派Zero2开发板采用全志H616 四核 64位处理器,拥有512MB/1GB 内存可选,集成千兆以太网卡.蓝牙5.0+双频WiFi(2.4GHz和5GHz).USB2.0.Micro-HDMI( ...

  9. 【Orangepi Zero2 全志H616】wiringPi外设SDK安装

    Orangepi Zero2 全志H616开发板 一.网络配置 命令扫描周围的WIFI热点 nmcli dev wifi 命令接入网络 nmcli dev wifi connect xxxxxxxx ...

最新文章

  1. kind富文本编辑器_富文本编辑器原理探索
  2. 烂泥:下载酷我收费的MV
  3. OO实现ALV TABLE 九:ALV的事件
  4. 简洁!get请求和post请求的区别——Web网络系列学习笔记
  5. mysql主键异常(冲突)
  6. Bootstrap 按钮下拉菜单
  7. SpringMVC+MyBatis+MySQL实现分页
  8. C# 中的 gdi 而不是 gdi+
  9. Jmeter的Throughput有误差与分布式测试时的坑
  10. python训练营 朋友圈点赞收费吗_微信朋友圈点赞,是不是扣话费?有人给
  11. java创建xml文件 编码_Mybatis Generator 1.4.0 通过java编码和xml文件配置
  12. 【NOIP2018】龙虎斗
  13. 计算机专业女生进电网,考入华北电力大学计算机专业,无缘国家电网,这是为什么?...
  14. 监控系统存储服务器和磁盘阵列,监控怎样用磁盘阵列存储服务器
  15. Linux printf Class.this git rebase Persistent Bugger
  16. 模糊照片怎么修复清晰?快来看看这两个方法
  17. 虚拟机磁盘重新分区增加Docker磁盘空间
  18. matlab滤波器滤除低频直流信号,极低频滤波器MATLAB
  19. SCU - 4572 醉后不知天在水,满船清梦压星河【思维】
  20. 硬盘检测工具HARD DISK SENTINEL PRO(硬盘哨兵)v5.70便携版

热门文章

  1. java转义字符 \\
  2. Registration
  3. 定时清理docker image
  4. 基于rnn的语音降噪matlab,基于RNN的音频降噪算法 (附完整C代码)
  5. jQuery笔记——UI
  6. 日期时间选择器 DatePicker
  7. 爬取煎蛋网中的妹子图
  8. 为什么很多人自律,最后变成了放纵?
  9. DWF整合spring异常:**ScopedProxyUtils.isScopedTarget
  10. 声音的三要素跟声波的幅度、频率和频谱的对应关系