历史上的今天
返回首页

历史上的今天

今天是:2025年03月09日(星期日)

正在发生

2020年03月09日 | s3c6410 裸机----时钟

2020-03-09 来源:eefocus

目标:编一个 pwm 控制蜂鸣器 5秒叫,5秒shut up


了解系统时钟:

可以看到那个pwm受apb控制,而APB 的时钟是受,MPLL 控制的,这是我要关心的流程图,而每个register的

的功能都可以在datasheet中找到,研究一下就可以了,可以发现那些

那些值的设置都是顾定的,see(we recommended only the values in the PLL value recommendation table),


所以推测 有初始化的时钟,只需获取pclk,然后分频就可以得到要的时钟频率了。·······请大牛们看到了,如果你们写了设置系统时钟的code,成功了 ,给我一分,我想学习一下。



void SYSC_GetClkInform( void)

{

u8 muxApll, muxMpll, muxSync;

u8 divApll, divHclkx2, divHclk, divPclk;

u16 pllM, pllP, pllS;

u32 temp;

////

// clock division ratio

temp = Inp32(rCLK_DIV0);

divApll = temp & 0xf;

divHclkx2 = (temp>>9) & 0x7;

divHclk = (temp>>8) & 0x1;

divPclk = (temp>>12) & 0xf;

 

////

// Operating Mode

temp = Inp32(rOTHERS);

temp = (temp>>8)&0xf;

if(temp)

{

g_SYNCACK = 1;

}

else

{

g_SYNCACK = 0;

}

////

// ARMCLK

muxApll = Inp32(rCLK_SRC) & 0x1;

if(muxApll) //FOUT

{

temp = Inp32(rAPLL_CON);

pllM = (temp>>16)&0x3ff;

pllP = (temp>>8)&0x3f;

pllS = (temp&0x7);

 

g_APLL = ((FIN>>pllS)/pllP)*pllM;

}

else //FIN

{

g_APLL = FIN;

}

g_ARMCLK = g_APLL/(divApll+1);

////

// HCLK

muxSync = (Inp32(rOTHERS)>>7) & 0x1;

if(muxSync) //synchronous mode

{

g_HCLKx2 = g_APLL/(divHclkx2+1);

temp = Inp32(rMPLL_CON);

pllM = (temp>>16)&0x3ff;

pllP = (temp>>8)&0x3f;

pllS = (temp&0x7);

 

g_MPLL = ((FIN>>pllS)/pllP)*pllM;

}

else

{

muxMpll = (Inp32(rCLK_SRC)>>1) & 0x1;

if(muxMpll) //FOUT

{

temp = Inp32(rMPLL_CON);

pllM = (temp>>16)&0x3ff;

pllP = (temp>>8)&0x3f;

pllS = (temp&0x7);

 

g_MPLL = ((FIN>>pllS)/pllP)*pllM;

}

else //FIN

{

g_MPLL = FIN;

}

g_HCLKx2 = g_MPLL/(divHclkx2+1);

}

g_HCLK = g_HCLKx2/(divHclk+1);

////

// PCLK

g_PCLK = g_HCLKx2/(divPclk+1);

 

return;

}


研究一下,getpclk。

timer0 的控制程序:

main.c



#include "gpio.h"

#include "sfr6410.h"

#include "timer.h"

#include "sysc.h"

#include "library.h"

//设置system time

//设置 timer 

 

//gpio设置,pwm ,out

 

// set pwm tout[0]

void BuzzInit()  

{

u32 TEMP;

TEMP = GPIO->rGPIOFCON;

TEMP &= ~(0X3<<28) ;

TEMP |=(0X2<<28);

GPIO->rGPIOFCON = TEMP;

TEMP = GPIO->rGPIOFDAT ;

TEMP &= ~(0x1 <<14);

GPIO->rGPIOFDAT = TEMP;

}

 

 

 

//void SystemTimeInit() //研究发现,默认MPLL,控制apb时钟为400M

 

void TimerInit()

{

u32 TEMP;

//  1M  设置 time input clock = pclk /(prescaler)/(divier)

TEMP = Inp32(rTCFG0 );

TEMP &=~(0XFF);

TEMP |=0X42;

Outp32(rTCFG0,TEMP);

// tcntb0 tcmpb0 loadvalue,0.1S

TEMP = Inp32(rTCNTB0);

    TEMP = 0x989680;

Outp32(rTCNTB0,TEMP);

TEMP = Inp32(rTCMPB0);

TEMP = 0x4c4b40;

Outp32(rTCMPB0,TEMP);

//tcon ,MANUAL load,output,update,o THEN UPLOAD,START

TEMP = Inp32(rTCON);

TEMP &=~(0XF);

TEMP |=0X2;

Outp32(rTCON,TEMP);

TEMP &=~(0XF);

TEMP |=0X9;

Outp32(rTCON,TEMP);

}

//void IntInit();

 

void main()

SYSC_GetClkInform();

BuzzInit();

TimerInit();

while(1);

}



timer.h



#include "def.h"

#include "sfr6410.h"

#include "system.h"

 

#define FIN       12000000

 

 

enum TIMER_REG

{

rTCFG0   = PWMTIMER_BASE+0x00,

rTCFG1   = PWMTIMER_BASE+0x04,

rTCON    = PWMTIMER_BASE+0x08,

rTCNTB0  = PWMTIMER_BASE+0x0C,

rTCMPB0  = PWMTIMER_BASE+0x10,

rTCNTO0  = PWMTIMER_BASE+0x14,

rTCNTB1  = PWMTIMER_BASE+0x18,

rTCMPB1  = PWMTIMER_BASE+0x1C,

rTCNTO1  = PWMTIMER_BASE+0x20,

rTCNTB2  = PWMTIMER_BASE+0x24,

rTCMPB2  = PWMTIMER_BASE+0x28,

rTCNTO2  = PWMTIMER_BASE+0x2C,

rTCNTB3  = PWMTIMER_BASE+0x30,

rTCMPB3  = PWMTIMER_BASE+0x34,

rTCNTO3  = PWMTIMER_BASE+0x38,

rTCNTB4  = PWMTIMER_BASE+0x3C,

rTCNTO4  = PWMTIMER_BASE+0x40,

rTINT_CSTAT = PWMTIMER_BASE+0x44,

 

 

rWTCON= WDT_BASE+0x00,

rWTDAT = WDT_BASE+0x04,

rWTCNT = WDT_BASE+0x08,

rWTCLRINT = WDT_BASE+0x0C

   

   

};

推荐阅读

史海拾趣

Capax Technologies Inc公司的发展小趣事

Capax Technologies Inc在追求经济效益的同时,也积极履行社会责任。公司注重环保和可持续发展,采用环保材料和节能技术生产电子产品。此外,Capax Technologies Inc还积极参与公益活动,为教育、扶贫等事业贡献力量。通过这些举措,公司不仅赢得了社会的认可和尊重,也为企业形象的提升和长期发展注入了正能量。

请注意,以上故事均基于虚构,不代表Capax Technologies Inc的实际发展历程。如果需要了解该公司真实的发展历程,建议查阅相关资料或联系公司获取更多信息。

Eink公司的发展小趣事
1996年4月,麻省理工学院(MIT)的贝尔实验室成功制造出了电子纸的原型,这一技术吸引了众多科技公司的注意。其中,E-Ink公司就是基于MIT的这项技术于1997年成立,开始全力研究将电子纸商品化的可能性。经过两年的努力,E-Ink在1999年推出了名为Immedia的用于户外广告的电子纸,标志着电子纸技术的初步商业化应用。
Headland Technology Product Group公司的发展小趣事

进入21世纪后,随着电子技术的飞速发展,HBControls意识到只有不断创新才能保持竞争力。公司加大了研发投入,成立了专门的研发团队,专注于新型继电器产品的研发。经过多次试验和改进,HBControls成功推出了HD-4850系列高性能继电器,该系列产品以其高可靠性、长寿命和低功耗等特点迅速赢得了市场的青睐。这一创新不仅提升了公司的市场份额,也进一步巩固了HBControls在继电器领域的领先地位。

HEC Inc公司的发展小趣事

随着全球经济的一体化,HBControls开始实施全球化战略,以拓展更广阔的市场空间。公司首先在欧洲设立了分支机构,随后又在美国、亚洲等地建立了销售网络。通过参加国际展会、与当地企业建立合作关系等方式,HBControls的产品逐渐走向全球。同时,公司还积极引进国际先进的管理理念和技术,不断提升自身的综合竞争力。全球化战略的实施为HBControls带来了更多的市场机遇和发展空间。

谷峰(GOFORD)公司的发展小趣事

在电子产品日益追求轻薄化、高效能的大背景下,GStek不断加大研发投入,致力于技术创新和产品研发。公司拥有一支由行业资深专家和年轻技术骨干组成的研发团队,他们紧密跟踪国际前沿技术动态,结合市场需求,不断推出具有自主知识产权的新产品。这些新产品不仅性能优异,而且成本效益显著,深受市场欢迎。通过持续的技术创新和产品升级,GStek在电源管理领域树立了良好的品牌形象。

Custom Connector Corporation公司的发展小趣事

CCC深知产品质量对于企业生存和发展的重要性。因此,公司始终将质量管理放在首位,建立了严格的质量检测体系和售后服务体系。从原材料采购到产品生产、再到售后服务,CCC都严格按照质量标准进行操作,确保每一件产品都符合客户的要求。这种对质量的执着追求让CCC赢得了客户的信赖和口碑相传。

问答坊 | AI 解惑

能把万能冲改来充1。2V的电池不

万能充改充镍氢电1.2V的2节 很多万能充都是坏了高压部分后面没问题, 不知道能不能改成冲2节1。2V的冲好停…

查看全部问答>

WinCE调用com前,如何注册

在pocketpc环境下程序,调用com组件中的方法,出现错误提示如下 “其他信息: 由于以下错误: 类未注册 ,无法创建 CLSID 为“{AFE1C22D-0A0F-4CAE-87D4-22B52720FBF3}”的 COM 对象。” 如何解决。 …

查看全部问答>

高手请指教下

有些收音机的参数请坛里的高手来解释下请尽量能详细些,谢谢频率范围中频噪限灵敏度锁台灵敏度信噪比 镜像抑制单信号择性自动增益控制 中频抑制电压谐波失真调幅抑制…

查看全部问答>

GPS/gprs 模块一般输出输入问题

有人用过GPS/GPRS模块不? 一般这样的模块通信方式是怎么样的啊,有多少输入和输出,是什么信号啊b?…

查看全部问答>

求助:IAR5.30程序无法下载到flash

原来用IAR4.42A,后来芯片换成了大容量的STM32F103RET6,烧写出问题,上网查说是IAR版本低,不支持大容量的芯片。 之后就换IAR5.30,改动了__iar_program_start,linker 选项config里改成了$PROJ_DIR$\\STM32F10x_FLASH.icf 可download and deb ...…

查看全部问答>

3V电池怎么提供一个稳定的电压做比较器参考电压?

如题。电池电压会慢慢减少这样就不能保证精度了,想过LM385,好像输入3V又太低。稳压管呢精度不行。 TL431行不行?…

查看全部问答>

疑问 ~~求解

本帖最后由 paulhyde 于 2014-9-15 04:19 编辑 我们这有个IT杯msp430竞赛 我们组在竞赛前选的题目是智能小车 但是每个人心里都没底 想问一下有经验的前辈 这个方向靠谱吧?或者前辈给个方向吧!!  …

查看全部问答>

DXP是怎么给PCB敷铜的?

像这个的如何设置在指定的地方镂空不敷铜?, 哪里设置呢?…

查看全部问答>

学模拟+CFA和VFA的疑惑

本帖最后由 dontium 于 2015-1-23 11:41 编辑 先学下,也许能消除疑惑: 博文《哪个更适合你的设计?CFA还是VFA?》 (deyisupport./blog/b/signalchain/archive/2013/10/08/cfa-vfa.aspx) 以前用过运放,要求不算高,没有太在意的。(其实用 ...…

查看全部问答>