zoukankan      html  css  js  c++  java
  • 单片机TM4C123学习(四):频率计

    1.#define的使用

    #define SQUARE_DUTY 0.5

    2.FPU的开启:浮点运算

    FPUEnable();
    FPULazyStackingEnable();

    3.定时器初始化

        //
        // Timer init
        //        
          SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0);   //使能外设
          TimerConfigure(TIMER0_BASE, TIMER_CFG_PERIODIC);//周期计时模式

    两个步骤:外部设备使能,设置定时器的类型

    4.定时周期设置

        //
        // Timer delay period 
        //    
          ui32Period = (SysCtlClockGet()/4/83000);                //设置计数上限,这里的设置可以产生83kHz的信号
          TimerLoadSet(TIMER0_BASE, TIMER_A, ui32Period -1);      //设置计数范围

    这里因为占空比是25%,所以/4,如果占空比是50%,那么/2。

    SysCtlClockGet()获得的是系统的频率,也就是40*1000*1000,一个定时周期中灯只能选择暗或者亮,持续时间为1s,所以一暗一亮构成一个周期2s,f=0.5。
    SysCtlClockGet()*f=20M,用20M/想要获得的频率,就是ui32Period的值。

    5.定时器中断设置
    //
    // interrupt enable--timer0A
    //
       IntEnable(INT_TIMER0A);                            //在系统层使能定时器中断
       TimerIntEnable(TIMER0_BASE, TIMER_TIMA_TIMEOUT);   //允许处理某个定时器的中断请求
    IntMasterEnable();   //使能系统总中断开关
    TimerIntRegister(TIMER0_BASE, TIMER_BOTH, Timer0IntHandler); //注册中断处理函数
    void Timer0IntHandler(void)
    {
        // 清除定时器中断标志位
        TimerIntClear(TIMER0_BASE, TIMER_TIMA_TIMEOUT);
    if(k==0)
    {
    GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_4, 1<<4);
    }
    else
    {
    GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_4, 0<<4);
    }
    k++;
    if(k==4)
    {
        k=0;
    }
    }

    6.开启定时器

        //
        // timer0 enable--This will start the timer and interrupts
        //        
            TimerEnable(TIMER0_BASE, TIMER_A);

     7.不知道为什么需要这个,是为了提高精度?

    // 建立并使能系统滴答定时器,作为延时循环的时钟参考(1s)(秒级延时不准确)
    ROM_SysTickPeriodSet(ROM_SysCtlClockGet()); //设置SysTick计数器的周期值
    ROM_SysTickEnable(); //使能SysTick计数器,开始倒计数

    8.




  • 相关阅读:
    xcode 4.2 运行 4.3 simulator出错, dyld: Library not loaded: /usr/lib/libc++abi.dylib
    Mathematica 进阶 自定义抽象矩阵运算
    php正则表达式函数 preg_replace用法
    jQuery DIV圆角插件之jquery.corner.js jQuery插件怎么用?
    JQuery获取和设置Select选项方法
    javascript+css无刷新实现页面样式的更换
    Nginx 高性能的 HTTP 和 反向代理 服务器
    240多个jquery插件
    imgPreview在线预览
    Linux下查看apache连接数
  • 原文地址:https://www.cnblogs.com/pursuit1996/p/4912869.html
Copyright © 2011-2022 走看看