• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

知道C语言的用法但是avr里面并没有time这个头文件

zhuce 2017-02-28 浏览量:1167
知道C语言的用法但是avr里面并没有time这个头文件,是要用中断吗, 求大神神助解答
 
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 是用中断,计时函数micros的原型如下,函数原型要用到interrupt.h这个头文件


    unsigned long micros() {
     unsigned long m;
     uint8_t oldSREG = SREG, t;
     
     cli();
     m = timer0_overflow_count;
    #if defined(TCNT0)
     t = TCNT0;
    #elif defined(TCNT0L)
     t = TCNT0L;
    #else
     #error TIMER 0 not defined
    #endif

    #ifdef TIFR0
     if ((TIFR0 & _BV(TOV0)) && (t < 255))
      m++;
    #else
     if ((TIFR & _BV(TOV0)) && (t < 255))
      m++;
    #endif

     SREG = oldSREG;
     
     return ((m << 8) + t) * (64 / (F_CPU/1000000L));
    }



    • 发布于 2017-02-28
    • 举报
    • 评论 0
    • 1
    • 0

其他答案 数量:6

  • 这个是定时器中断函数,实际使用时需加入_TIMERINTERRUPT_H_


    • 发布于2017-02-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以用中断,你可以仿照time写一个
    • 发布于2017-02-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 您要做什麼用途?

    如果是Arduino IDE開發可以使用以下API

    Time

    如果是使用Atmel Studio,就看您需求可直接引用time.h

    以上希望對您有用

    • 发布于2017-02-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个是linux下的头文件,在avr里你需要通过timer定时器来自己模拟一个
    • 发布于2017-02-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 如果你使用的是avr gcc编译器,那么是有time.h头文件的,用法和标准C语言一样,主要是用于日期和时间。


    如果只是为了定时或者PWM,就需要自己操作寄存器了。

    • 发布于2017-03-01
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

知道C语言的用法但是avr里面并没有time这个头文件