main.c

来自「fft 2410 linux 部分驱动 报扩 ad da 数码管 led」· C语言 代码 · 共 75 行

C
75
字号
/****************************************Copyright (c)**************************************************
**                                     研    发    部
**                              http://www.FFTChina.com
**-----------------------------------------文件信息-----------------------------------------------------
**文   件   名: cantest.c
**创   建   人: 
**最后修改日期: 2005年6月30日
**描        述:  
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
/* to produce a pwm of 100khz(10us)and 20% duty cycle with system clock of 14.7456Mhz
   
   Caculate Pwmtermcnt (14.7456M/0.1M) -1 = 146.456 
   Caculate PwmDutyCycle 0.2*(146.456+1)-1= 28.4912
Attention:
   the lowst frequency of pwmout is 224hz,mean that the max cycle is 4.44ms
   the freqency our humanbeing can hear is from 20HZ to 20000HZ
   so the number arrange of  TC is from 737 to 65536 
*/  
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/select.h>
#include <sys/time.h>
#include <errno.h>
int main(void)
{
  int buttons_fd;
  unsigned char key_value;

  buttons_fd = open("/dev/fft7289", 0);
  if (buttons_fd < 0) {
    perror("open device buttons");
    exit(1);
  }

  for (;;) {
    fd_set rds;
    int ret;

    FD_ZERO(&rds);
    FD_SET(buttons_fd, &rds);

    ret = select(buttons_fd + 1, &rds, NULL, NULL, NULL);
    if (ret < 0) {
        perror("select");
        exit(1);
    }
    if (ret == 0) {
        printf("Timeout.\n");
    } else if (FD_ISSET(buttons_fd, &rds)) {
        int ret = read(buttons_fd, &key_value, sizeof(key_value));
        if (ret != sizeof key_value) {
            if (errno != EAGAIN)
              perror("read buttons\n");
            continue;
        } else {
            printf("buttons_value: %x\n", key_value);
            if(key_value == 7)break;
        }
            
    }
  }
  if(close(buttons_fd)<0) {
       perror("close");
       exit(EXIT_FAILURE);
  }
  printf("finished FFT key test\n");
  exit(EXIT_SUCCESS);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?