当前位置:网站首页>dsPIC33EP 时钟初始化程序
dsPIC33EP 时钟初始化程序
2022-07-05 10:13:00 【全栈程序员站长】
//文件名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
// 函数功能:初始化时钟
// 入口参数:时钟来源选择 FRC分频 pll倍频比
// 出口参数:无
// 返回值:无
// Fosc = (Fin/V_FRCDIV/N1/N2)*M
//***************************************
void Init_Clk(uint16 OsClk)
{
CLKDIV = 0X0000 ; //处理器与外设时钟比为1:1
_FRCDIV = V_FRCDIV ; //FRC分频系数
_PLLPOST = V_N2 ;//N2
_PLLPRE = V_N1 ;//N1
PLLFBD = V_PLLFBD ;// PLL倍频
OSCTUN = 0X0000 ; //振荡器调节寄存器 默认7.37M
REFOCON = 0X0000 ; //参考时钟=系统时钟
OSCCON = 0X0000 ;
_OSWEN = 1 ; //请求切换由NOSC指定的时钟
_NOSC = OsClk ; //切换 新的振荡器
while(_OSWEN) ;//等待时钟切换完成
if((_NOSC == OSCLK1) ||(_NOSC == OSCLK3))//带PLL
{
while(!_LOCK) ;//等待PLL锁定
}
REFOCON |= 0X8000 ; //参考时钟输出使能
}
//应用实例 -- 时钟初始化
//FRC 系统时钟1分频到CPU PLL倍频50
//Fin = 7.37M Fcpu = Fosc/2 = 46.0625M
Init_Clk(OSCLK1) ;发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/109983.html原文链接:https://javaforall.cn
边栏推荐
- Glide Mastery
- C function returns multiple value methods
- QT implements JSON parsing
- C#函数返回多个值方法
- vscode的快捷键
- Error: module not found: error: can't resolve 'xxx' in 'XXXX‘
- Should the dependency given by the official website be Flink SQL connector MySQL CDC, with dependency added
- What is the most suitable book for programmers to engage in open source?
- Swift saves an array of class objects with userdefaults and nssecurecoding
- Blockbuster: the domestic IDE is released, developed by Alibaba, and is completely open source!
猜你喜欢

Swift tableview style (I) system basic
![C language QQ chat room small project [complete source code]](/img/4e/b3703ac864830d55c824e1b56c8f85.png)
C language QQ chat room small project [complete source code]

最全是一次I2C总结

ConstraintLayout的流式布局Flow

Swift set pickerview to white on black background

学习笔记5--高精地图解决方案

【Vite】1371- 手把手开发 Vite 插件

Energy momentum: how to achieve carbon neutralization in the power industry?

Fluent generates icon prompt logo widget

A large number of virtual anchors in station B were collectively forced to refund: revenue evaporated, but they still owe station B; Jobs was posthumously awarded the U.S. presidential medal of freedo
随机推荐
Workmanager Learning one
> Could not create task ‘:app:MyTest.main()‘. > SourceSet with name ‘main‘ not found.问题修复
leetcode:1200. 最小绝对差
Go项目实战—参数绑定,类型转换
How did automated specification inspection software develop?
学习笔记5--高精地图解决方案
自动化规范检查软件如何发展而来?
【JS】数组降维
Qt实现json解析
【观察】跨境电商“独立站”模式崛起,如何抓住下一个红利爆发时代?
想请教一下,十大券商有哪些?在线开户是安全么?
Learning note 4 -- Key Technologies of high-precision map (Part 2)
[tips] get the x-axis and y-axis values of cdfplot function in MATLAB
Advanced opencv:bgr pixel intensity map
Shortcut keys for vscode
Swift saves an array of class objects with userdefaults and nssecurecoding
pytorch输出tensor张量时有省略号的解决方案(将tensor完整输出)
《天天数学》连载58:二月二十七日
Error: module not found: error: can't resolve 'xxx' in 'XXXX‘
Singleton mode encapsulates activity management class