历史上的今天
今天是:2025年10月17日(星期五)
2022年10月17日 | 【MSP430】关于MSP430的精准延时__delay_cycles的分析
2022-10-17 来源:csdn
首先我们先看以下代码:
#define CPU_F ((double)8000000) //CPU_F代表系统选用的主时钟大小,单位Hz
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
分析上述代码:
一、8000000为MSP430板载的外部高速晶振提供的8MHz的主时钟频率,单位为Hz
二、__delay_cycles是编译器提供的一个内联的精准延时函数,该函数的原型是:
__intrinsic void __delay_cycles(unsigned long __cycles); //__cycles是CPU运行周期的个数,即时钟/机器周期的个数分析
1、在MSP430单片机中,一个时钟周期 = MCLK晶振的倒数
例如:如果MCLK是8MHz,则一个时钟周期为1/8us
2、MSP430的时钟模块主要包括:
ACLK --> 辅助时钟
MCLK --> 主时钟
SMCLK --> 子系统时钟
3、时钟的来源:
ACLK --> 是LFXT1CLK信号经1/2/4/8分频后得到的,主要用作低速外围的时钟
MCLK --> 是LFXT1CLK,XT2CLK, DCOCLK的三者之一决定,由软件选择,然后经1/2/4/8分频后得到,主要用于CPU和系统
SMCLK --> 可由LFXT1CLK和DCOCLK ,或者XT2CLK和DCOCLK决定,然后经1/2/4/8分频后得到,主要用于高速外围模块
4、注意:
上文陈述的代码中,8000000是已经由系统选定的MCLK时钟(8MHz),不可以直接通过改变它的值来实现对不同主频系统参数的统一,即它的值受主时钟频率的改变而改变,而非MCLK频率受它的值的改变而改变。
举个例子:
当系统时钟为1MHz时,改为 --> #define CPU_F ((double)1000000)
史海拾趣
|
各位大虾们,我刚上班不久,单片机知识只限于书本的知识,根本没实际经验,现在碰到一个设计一个单片机控制系统的难题,望各位哥哥姐姐们帮偶看下,能不能讲的详细些(最好帮我出个电路原理图),在此先谢过了~ 开关量:69个 38输入31输出 温度模拟量3路 ...… 查看全部问答> |
|
做个家用带有温湿度测试仪的电子表,原理图、PCB在17楼,欢迎讨论 这个应用很简单,取代家用的电子表,除了具有普通电子表具有的显示时间,报警功能外,添加温度和湿度显示,这样可以随时了解室内的温湿度状况。市场挺好。… 查看全部问答> |
|
我在看书看到这样一段话: 对于arm指令集来说,PC指向当前指令的下两条指令的地址,由于ARM指令是字对齐的,PC值的第0位和第一位总为0, 这句话全不懂,谁能解释下呢… 查看全部问答> |
|
应用API: BOOL ReadFile( HANDLE hFile, //端口句柄 LPVOID lpBuffer, //接收缓冲的指针 DWORD nNumberOfBytesToRead, //要读取的字节长度 LPDWORD lpNumberOfBytesRead, //P ...… 查看全部问答> |
|
WinCE6.0 设备挂载点命名方法是怎么用的?? 如: \\$device\\COM23 , 是怎么在CE6.0注册在使用的? 比如说注册表是怎么写的?, 或者是那里需要怎么操作?才能实现这样设备挂载点命名方法? 跪求高人指点!!… 查看全部问答> |
|
请问mw5一定要用TI的通讯模块吗?如果用wavecom的通讯模块,我该如何对ril进行处理 请问mw5一定要用TI的通讯模块吗?如果用wavecom的通讯模块,我该如何对ril进行处理?哪怕是给个思路也好,谢谢… 查看全部问答> |
|
spartan 6 warning HDLCompiler:89 在spartan 6 中,我调用了一个除法器,结果出现如下warning: HDLCompiler:89 - \"E:\\qiaodong\\FPGA\\test_FPGA\\test_div\\top.vhf\" Line 53: <div_lx16> remains a black-box since it has no binding entity. 如何解决? ...… 查看全部问答> |
|
先前使用的都是51单片机,用它编写小程序实在再方便不过了,但是那次将项目的总程序量增加到5个K我就对文件和软件的格式发傻了,各种不规范,各种无用功,从那时开始我就萌生了关注单片机的软件工程的想法,直到最近接触MSP430单片机,尤其是看到《 ...… 查看全部问答> |
|
* COB:COB是Chip On Board的英文简写,它是LCM驱动线路板的另一种加工方式。 该工艺是将裸芯片用粘片胶直接贴在PCB板指定位置上,通过焊接机用铝线将芯片电极与PCB板相应焊盘连接起来,再用黑胶将芯片与铝线封住固化, ...… 查看全部问答> |




