亲,仿真时间和实际时间不一致的,一版PC仿真比较慢的,
也就是说你秒表掐20秒,PC仿真时间还不到20秒,
建议,写一段测试代码段,段头段尾加标志(拉高拉低IO,让示波器能够捕捉),仿真计算出经过两个标志位的机器周期数,然后示波器量测这两个标志位时间(代码实际运行时间)。这样子在计算频率。
如果是用keil的话,可以按菜单上的debug进入调试模式,然后可以看到左边多了一个窗口,里面会显示当前各个寄存器、堆栈、PC指针的值,其中有一个项是sec,就是表示程序运行时间的。
想知道一条指令的执行时间,可以把PC指针指向这条指令,然后在下一条指令处设置断点,先按“reset”清零一下sec的值,再按“RUN”运行程序,从sec处就可以知道这条指令的运行时间了。
你的程序主体是循环吧
循环检测温度和显示,在检测结束之后,if 温度超过预定 就启动蜂鸣器,else关闭蜂鸣器,建议你取一个范围,否则温度变化频繁,不太好。这种方法最简单,但是也有问题,假如每次都超过预定,那每次都发出启动指令,这不合理。可以第一次超过的时候启动然后弄个标志位,下一次判断一下标志位,是不是驱动状态,如果是,跳过去,往后执行,如果不是启动状态,那么启动。这就合理了。另外也可以更改整体的程序结构
你测试温度,时间要求不太高吧 可以设个定时器,到定时器时间了 检测一次。这是在定时中断执行的,主程序里,就循环显示和判断,是否超过预定了,超过就启动蜂鸣器,方法和前面的一样。
#include <msp430x14xh>
#define CPU_F ((double)8000000)
#define delay_us(x) __delay_cycles((long)(CPU_F(double)x/10000000))
#define delay_ms(x) __delay_cycles((long)(CPU_F(double)x/10000))
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#define LED P3OUT //LED灯接在P34、P35上
uchar key;
//
// 系统时钟初始化
//
void Clock_Init()
{
uchar i;
BCSCTL1&=~XT2OFF; //打开XT振荡器
BCSCTL2|=SELM1+SELS; //MCLK为8MHZ,SMCLK为8MHZ
do{
IFG1&=~OFIFG; //清除震荡标志
for(i=0;i<100;i++)
_NOP(); //延时等待
}
while((IFG1&OFIFG)!=0); //如果标志为1,则继续循环等待
IFG1&=~OFIFG;
}
//
// MSP430内部看门狗初始化
//
void WDT_Init()
{
WDTCTL = WDTPW + WDTHOLD; //关闭看门狗
}
//
//初始化IO口子程序
//
void Port_init()
{
P1SEL = 0x00; //P1普通IO功能
P1DIR = 0xF0; //P10~P13输入模式,外部电路已接上拉电阻
P3SEL = 0x00; //P3口普通IO功能
P3DIR = 0xFF; //P3口输出模式
}
//
//主程序
//
void main(void)
{
WDT_Init(); //看门狗设置
Clock_Init(); //系统时钟设置
Port_init(); //系统初始化,设置IO口属性
delay_ms(100); //延时100ms
while(1)
{
LED=0xEF; //给不同的键赋键值,键值1,亮1个LED灯D1
//LED=0xDF; //给不同的键赋键值,键值2,亮1个LED灯D2
//LED=0xCF;
// case 4: LED=0xFF;break;//给不同的键赋键值,键值4,亮0个LED灯
}
}
1 可以通过iar软件编程控制4个灯的亮灭
2 首先需要了解每个灯的控制引脚,然后在iar软件中编写相应的控制代码,通过控制引脚的高低电平来控制灯的亮灭。
3 可以通过编写循环语句和延时语句,让4个灯依次或同时亮灭,实现不同的灯光效果。
同时,也可以通过添加传感器等外部设备,实现更多的功能。
以上就是关于使用IAR的cyclecounter查看编写的C语句段执行的时间 疑问全部的内容,包括:使用IAR的cyclecounter查看编写的C语句段执行的时间 疑问、STM32 怎么在IAR得到一条指令的执行时间、请问一下,我想在iar里面在一个工程里面调用另一工程的功能,该怎么实现呢(我用的是msp430f149)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)