1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3805|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

飛思卡爾xs128單片機(jī)輸出比較問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:135098 發(fā)表于 2016-11-21 20:28 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
程序如下,輸出比較時(shí)間是怎么算出來(lái)的


/*---------------------------------------------------------*/
/************************************************************
飛翔科技MC9S12XS128汽車(chē)電子開(kāi)發(fā)板
E-mail: 2008f.d@163.com

************************************************************/
/*---------------------------------------------------------*/
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */

#define LEDCPU PORTK_PK4
#define LEDCPU_dir DDRK_DDRK4
#define  BUS_CLOCK                   32000000           //總線頻率
#define  OSC_CLOCK                   16000000           //晶振頻率

/*************************************************************/
/*                      初始化鎖相環(huán)                         */
/*************************************************************/
void INIT_PLL(void)
{
    CLKSEL &= 0x7f;       //set OSCCLK as sysclk
    PLLCTL &= 0x8F;       //Disable PLL circuit
    CRGINT &= 0xDF;

    #if(BUS_CLOCK == 40000000)
      SYNR = 0x44;
    #elif(BUS_CLOCK == 32000000)
      SYNR = 0x43;     
    #elif(BUS_CLOCK == 24000000)
      SYNR = 0x42;
    #endif

    REFDV = 0x81;         //PLLCLK=2×OSCCLK×(SYNDIV+1)/(REFDIV+1)=64MHz ,fbus=32M
    PLLCTL =PLLCTL|0x70;  //Enable PLL circuit
    asm NOP;
    asm NOP;
    while(!(CRGFLG&0x08)); //PLLCLK is Locked already
    CLKSEL |= 0x80;        //set PLLCLK as sysclk
}

/************************************************************/
/*                    初始化ECT模塊                         */
/************************************************************/
void initialize_ect(void){
  TSCR1_TFFCA = 1;  // 定時(shí)器標(biāo)志位快速清除
  TSCR1_TEN = 1;    // 定時(shí)器使能位. 1=允許定時(shí)器正常工作; 0=使主定時(shí)器不起作用(包括計(jì)數(shù)器)
  TIOS  = 0xff;      //指定所有通道為輸出比較方式
  TCTL1 = 0x00;            // 后四個(gè)通道設(shè)置為定時(shí)器與輸出引腳斷開(kāi)
  TCTL2 = 0x00;     // 前四個(gè)通道設(shè)置為定時(shí)器與輸出引腳斷開(kāi)
  TIE   = 0x00;     // 禁止所有通道定時(shí)中斷
  TSCR2 = 0x07;            // 預(yù)分頻系數(shù)pr2-pr0:111,,時(shí)鐘周期為4us,
  TFLG1 = 0xff;            // 清除各IC/OC中斷標(biāo)志位
  TFLG2 = 0xff;     // 清除自由定時(shí)器中斷標(biāo)志位
}

/*************************************************************/
/*                        初始化LED                          */
/*************************************************************/
void INIT_LED(void)
{
LEDCPU_dir = 1;
LEDCPU = 0;
}


/*************************************************************/
/*                         主函數(shù)                            */
/*************************************************************/
void main(void) {
  DisableInterrupts;
  INIT_PLL();
  INIT_LED();
  initialize_ect();
  EnableInterrupts;

  for(;;)
  {
    TFLG1_C0F = 1;              //清除標(biāo)志位
    TC0 = TCNT + 31250;         //設(shè)置輸出比較時(shí)間為0.125s
    while(TFLG1_C0F == 0);      //等待,直到發(fā)生輸出比較事件
    TFLG1_C0F = 1;              //清除標(biāo)志位
    TC0 = TCNT + 31250;         //設(shè)置輸出比較時(shí)間為0.125s
    while(TFLG1_C0F == 0);      //等待,直到發(fā)生輸出比較事件
    TFLG1_C0F = 1;              //清除標(biāo)志位
    TC0 = TCNT + 31250;         //設(shè)置輸出比較時(shí)間為0.125s
    while(TFLG1_C0F == 0);      //等待,直到發(fā)生輸出比較事件
    TFLG1_C0F = 1;              //清除標(biāo)志位
    TC0 = TCNT + 31250;         //設(shè)置輸出比較時(shí)間為0.125s
    while(TFLG1_C0F == 0);      //等待,直到發(fā)生輸出比較事件
    LEDCPU = ~LEDCPU;           //反轉(zhuǎn)燈的狀態(tài)
  }
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:403396 發(fā)表于 2018-11-4 16:47 | 只看該作者
用輸出比較時(shí)間0.125s  除以 時(shí)鐘周期4us,   就是計(jì)數(shù)次數(shù)  31250   這是我的理解,不知道對(duì)不對(duì)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表