msp430的_nop指令时间?

[复制链接]
3670|2
 楼主| zhaoqiu258 发表于 2008-4-30 11:42 | 显示全部楼层 |阅读模式
msp430的书中讲它是150纳秒的指令执行时间(8M晶振),可是书中又讲每一个指令的机器周期是不一样的啊,那么_nop指令到底占用多长的时间?51中的简单,一个NOP是1微秒(12M晶振)。如何做出1us或者1ms的程序?
谢谢!! 
 
ATmega32L 发表于 2008-4-30 16:21 | 显示全部楼层

F_CPU

#include <intrinsics.h>
#define F_CPU 8000000 
#define _delay_ms(A)     __delay_cycles((uint64)(A)*(uint64)(F_CPU)/1000UL)
#define _delay_us(A)     __delay_cycles((uint64)(A)*(uint64)(F_CPU)/1000000UL)
TI_CPIC 发表于 2008-5-4 14:04 | 显示全部楼层

RE

每条指令的执行时间不都是相同的,指令执行需要的周期数取决于指令格式和寻址方式。150ns的执行时间是对于单周期指令在8M MCLK下执行的时间。NOP指令是单单周期指令,占用一个MCLK时间,如果使用8M的MCLK,则执行时间为150ns。

延时程序可以使用空操作指令实现,也可以使用定时器实现。msp430x20x2.h内WDT定时器定义了部分常用的延时,可直接调用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

42

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部