基于nios2的倒计时器程序设计

来源:互联网 发布:知为谁哭 王君 编辑:程序博客网 时间:2024/06/03 20:16

最近上课老师让做一个基于nios2的小座椅,就做了一个倒计时器,内核还借用了一下学姐的资料,这里就分享一下好了

这是软核的设计情况,下面的是编写的片上系统的sopc头文件

/*
 * sopc.h
 *
 *  Created on: 2016-12-14
 *      Author: lzl
 */


#ifndef SOPC_H_
#define SOPC_H_




#include "E:\WLL\software\JSQ1_bsp\system.h"
#define _PIO_0
#define _PIO_1
#define _FM_PIO
typedef struct
{
unsigned long int DATA;
unsigned long int DIRECTION;
unsigned long int INTERRUPT_MASK;
unsigned long int EDGE_CAPTURE;
}PIO_STR;


#ifdef _PIO_0
#define PIO_0   ((PIO_STR*)PIO_0_BASE)
#endif


#ifdef _PIO_1
#define PIO_1   ((PIO_STR*)PIO_1_BASE)
#endif


#ifdef _FM_PIO
#define FM_PIO   ((PIO_STR*)FM_PIO_BASE)
#endif


#endif /* SOPC_H_ */

下面是main函数

#include <stdio.h>
#include "../INC1/sopc.h"
#include <unistd.h>
static unsigned long int DG=0,DS=1;
int main()
{
void beep();
  void shuzhi();
  PIO_0->DATA=DS*16+DG;
  while(1)
  {
  usleep(1000000);
  if(PIO_1->DATA==1)
  {
  shuzhi();
  PIO_0->DATA=DS*16+DG;
  }
  }
  return 0;
}


void shuzhi()
{
void beep();
if(DG==0)
{
DG=9;
if(DS==0)
{
femging();
exit(0) ;
}
  else
  DS=DS-1;
}
else
DG=DG-1;


}


void femging()
{   int i;
for(i=0;i<400;i++)


{


FM_PIO->DATA=1;//ding 700HZ


usleep(1250);


}
for(i=0;i<550;i++)


{


FM_PIO->DATA=1;//dong 500HZ


usleep(2000);


}
}

实现的功能就是倒计时10下然后蜂鸣器响,比较简单适合初学者尝试

0 0
原创粉丝点击