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.




  • 相关阅读:
    Asp.Net Core 2.0 项目实战(7)MD5加密、AES&DES对称加解密
    Asp.Net Core 2.0 项目实战(8)Core下缓存操作、序列化操作、JSON操作等Helper集合类
    Java后端开发-SSM框架的图片上传
    个人作业——软件工程实践总结&个人技术博客
    个人作业——软件评测
    结对第二次作业——某次疫情统计可视化的实现
    结对第一次—疫情统计可视化(原型设计)
    软工实践寒假作业(2/2)
    my codestyle
    alibaba-java-style-guide
  • 原文地址:https://www.cnblogs.com/pursuit1996/p/4912869.html
Copyright © 2011-2022 走看看