dsPIC33EP 時鐘初始化程式

2021-09-09 03:11:38 字數 2130 閱讀 8664

//檔名p33clk.h

#ifndef _p33clk_h_

#define _p33clk_h_

//#include "p33clk.h"

#define wdt_enb _swdten = 1

#define wdt_dis _swdten = 0

//時鐘源選擇

#define osclk0 0 //frc

#define osclk1 1 //帶pll+n分頻的frc

#define osclk2 2 //hs ms ls 外部時鐘

#define osclk3 3 //帶pll的hs ms ls 外部時鐘

#define osclk4 4 //保留

#define osclk5 5 //lprc

#define osclk6 6 //frc/16

#define osclk7 7 //帶n分頻的frc

//處理器與cpu時鐘分頻比

#define dozediv1 (0<<12)

#define dozediv2 (1<<12)

#define dozediv4 (2<<12)

#define dozediv8 (3<<12)

#define dozediv16 (4<<12)

#define dozediv32 (5<<12)

#define dozediv64 (6<<12)

#define dozediv128 (7<<12)

//------------------------------

//fosc = (fin/v_frcdiv/n1/n2)*m

#define v_frcdiv v_frcdiv1 //frc振盪分頻係數

#define v_n1 v_n1div(2) //x = 2--33 n1 分頻係數

#define v_n2 v_n2div2 //n2 分頻係數

#define v_pllfbd pllmf(50) //(x=2--513)pll 倍頻比

//frc 分頻係數

#define v_frcdiv1 0

#define v_frcdiv2 1

#define v_frcdiv4 2

#define v_frcdiv8 3

#define v_frcdiv16 4

#define v_frcdiv32 5

#define v_frcdiv64 6

#define v_frcdiv256 7

//n1

#define v_n1div(x) (x-2)

//n2

#define v_n2div2 0

#define v_n2div4 1

#define v_n2div8 3

//pll 倍頻數 m

#define pllmf(x) (x-2)

//******************************==

extern void init_clk(uint16 osclk) ;

#endif

//檔名p33clk.c

#include "global.h"

#include "p33clk.h"

//***************************************

// 函式名稱:initclk

// 函式功能:初始化時鐘

// 出口引數:無

// 返回值:無

// fosc = (fin/v_frcdiv/n1/n2)*m

//***************************************

void init_clk(uint16 osclk)

refocon |= 0x8000 ; //參考時鐘輸出使能

}//應用例項 -- 時鐘初始化

//frc 系統時鐘1分頻到cpu pll倍頻50

//fin = 7.37m fcpu = fosc/2 = 46.0625m

init_clk(osclk1) ;

dsPIC33EP timer1 初始化設定及應用

檔案 p33timer1.h ifndef p33timer1 h define p33timer1 h include p33timer1.h define timer1 ien enb t1ie 1 define timer1 ien dis t1ie 0 timer1輸入時鐘分頻 define...

ARM Linux時鐘初始化

arm linux時鐘初始化是從machine start中的map io函式開始的,map io函式中會呼叫s3c24xx init clocks 12000000 來進行,我們來看一下初始化過程 static struct cpu table cpu void init s3c24xx init...

linux clk時鐘初始化

例項記錄的是am335x 時鐘初始化框架,具體細節還沒來得及深究,僅供自己記錄學習用。arch arm mach omap2 board generic.c dt machine start am33xx dt,generic am33xx flattened device tree reserve...