⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timer.c

📁 TI公司TMS320VC5509的外设驱动程序
💻 C
字号:
/*
 *  Copyright (C) 2001, Spectrum Digital, Inc.  All Rights Reserved.
 */
 
#include "5509.h"
#include "util.h"

unsigned short int Timer_Test()
{
    PC55XX_TIMER pTIM0 = (PC55XX_TIMER)C55XX_TIM0_ADDR;

    // Stop the timer
    SetMask(pTIM0 -> tcr, TCR_TSS | TCR_TLB);
    
    // Set the prescaler to the PLL multiplier to get 12MHz    
    WriteField(pTIM0 -> prsc, dspclk.pllmult - 1, PRSC_TDDR);
    
    // Set the timer interval to generate 2MHz toggle clock
    // Timer divides by count - 1 so 12MHz / 2Mhz - 1 = 6 - 1 = 5
    Write(pTIM0 -> prd, 5);
    
    // Set up the timer control register and start running
    // TOUT toggles at 2MHz to generate a 1MHz square wave
    WriteMask(pTIM0 -> tcr,
        TCR_FUNC_TOUT | TCR_SOFT | TCR_FREE | TCR_ARB | TCR_CP_TOGGLE,
        TCR_IDLE_EN | TCR_FUNC | TCR_TLB | TCR_SOFT | TCR_FREE | TCR_PWID | TCR_ARB | TCR_TSS | TCR_CP);
        
    return 0;
}

unsigned short int Timer_32k()
{
    PC55XX_TIMER pTIM0 = (PC55XX_TIMER)C55XX_TIM0_ADDR;

    // Stop the timer
    SetMask(pTIM0 -> tcr, TCR_TSS | TCR_TLB);
    
    // Set the prescaler to divide by pll mult, generate 12MHz clock    
    WriteField(pTIM0 -> prsc, dspclk.pllmult -1, PRSC_TDDR);
    
    // Set the timer interval to generate a 65536Hz toggle clock
    // 120MHz / 32768 = 3662.11, 3662 / 2 = 1831, count = 1831 - 1
//    Write(pTIM0 -> prd, 1830);
    Write(pTIM0 -> prd, 182);
    
    // Set up the timer control register and start running
    WriteMask(pTIM0 -> tcr,
        TCR_FUNC_TOUT | TCR_SOFT | TCR_FREE | TCR_ARB | TCR_CP_TOGGLE,
        TCR_IDLE_EN | TCR_FUNC | TCR_TLB | TCR_SOFT | TCR_FREE | TCR_PWID | TCR_ARB | TCR_TSS | TCR_CP);
            
    return 0;
}





⌨️ 快捷键说明

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