MSP430G2231单片机,使用内部晶振,不倍频,怎样计算实现一个500us的延时程序?
MSP430G2231的datasheet上写它的指令周期时间是62.5ns,求计算过程和程序...
MSP430G2231的datasheet上写它的指令周期时间是62.5ns,求计算过程和程序
展开
1个回答
展开全部
给你一个大体流程,不使用定时器,只对指令周期计数就行了。
1、采用62.5ns指令周期, 500uS需要8000个指令周期;
2、使用计时器,由于你不需要倍频,则这个计时器只对指令周期进行基数;
3、计时器如果是8bit的,那就计时器没计数到250(十进制),就对计时器清零,同时给计时器250溢出计数器+1,未满250是就跳转会开始处继续检测计时器。
4、检测计时器的溢出计数器是否计数到32次。没有达到32次,就跳回开始重新检测计时器,达到32次,就完成程序进行标记,然后结束。
注意:你要使用一个计时器,这个计时器timer每运行一天指令,就+1;
使用一个数据暂存器temp,对250次计时器溢出计数。
使用两个循环程序,第一次对指令周期进行计数,检测是否到达250次;第二次循环程序是对250次溢出的次数计数。其中前一个循环被后一个循环所包含。
1、采用62.5ns指令周期, 500uS需要8000个指令周期;
2、使用计时器,由于你不需要倍频,则这个计时器只对指令周期进行基数;
3、计时器如果是8bit的,那就计时器没计数到250(十进制),就对计时器清零,同时给计时器250溢出计数器+1,未满250是就跳转会开始处继续检测计时器。
4、检测计时器的溢出计数器是否计数到32次。没有达到32次,就跳回开始重新检测计时器,达到32次,就完成程序进行标记,然后结束。
注意:你要使用一个计时器,这个计时器timer每运行一天指令,就+1;
使用一个数据暂存器temp,对250次计时器溢出计数。
使用两个循环程序,第一次对指令周期进行计数,检测是否到达250次;第二次循环程序是对250次溢出的次数计数。其中前一个循环被后一个循环所包含。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询