系列文章目录
一、orangepi实现定时器
二、orangepi控制舵机
`
文章目录
- 系列文章目录
-
- 一、orangepi实现定时器
- 二、orangepi控制舵机
- 前言
前言
上述定时器已实现,本文将基于定时器控制舵机。 转动舵机角度,对应终端口输入角度的数字。
整体代码如下图所示:
#include <sys/time.h> #include <stdlib.h> #include <signal.h> #include <wiringPi.h> #define SG90Pin 5 static int i=0; int jd=0; void signal_handler(int signum) {
if(i<=jd){
digitalWrite(SG90Pin,HIGH); }else{
digitalWrite(SG90Pin,LOW); } if(i==40){
i=0; } i ; } int main(int argc,char **argv) {
struct itimerval itv; wiringPiSetup(); pinMode(SG90Pin,OUTPUT); 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){
printf("input jd: 1-0 2-45 3-90 4-135 \n");
scanf("%d",&jd);
}
return 0;
}
wiringPiSetup();初始化io口 pinMode(SG90Pin,OUTPUT);设置io口模式 digitalWrite(SG90Pin,HIGH);向io口输入高电平