[STM8]

大神们请指教,COSMIC仿真。。。

[复制链接]
693|11
手机看帖
扫描二维码
随时随地手机跟帖
hfei|  楼主 | 2016-11-13 18:02 | 显示全部楼层 |阅读模式
COSMIC能用软件仿真TIMER吗?我用软件仿真,TIM4_CNTR数值不变化。。
zhuomuniao110| | 2016-11-13 22:08 | 显示全部楼层
宇宙的?啥意思?》

使用特权

评论回复
天灵灵地灵灵| | 2016-11-13 22:54 | 显示全部楼层
没有用软件仿真过,Debug时候应该可以设置断点观察吧

使用特权

评论回复
皈依| | 2016-11-14 08:55 | 显示全部楼层
cosmic应该是可以的 不过我我一般都安装完cosmic用stvd仿真

使用特权

评论回复
hfei|  楼主 | 2016-11-14 10:14 | 显示全部楼层
嗯,就是STVD调试,软件仿真TIM4_CNTR的值不变化。。

使用特权

评论回复
hfei|  楼主 | 2016-11-14 10:17 | 显示全部楼层
ST-LINK硬件仿真,TIM4_CNTR值会变化,难道STM8S的定时器不能用软件仿真,刚转来学ST,很多功能不熟悉。

使用特权

评论回复
flove00| | 2016-11-14 15:15 | 显示全部楼层
可以变化的,楼主是不是忘了点实施读取

使用特权

评论回复
xmshao| | 2016-11-14 16:06 | 显示全部楼层
可以的。
你确认下所用料号有无TIM4,检查下tim4开启了没有,是否做了正常配置。如果用库的话,基于芯片型号的宏定义要打开。

使用特权

评论回复
hfei|  楼主 | 2016-11-14 17:40 | 显示全部楼层
就一个简单的实验程序
#include "STM8S103k3.h"

main()
{
        unsigned char x;
  // 首先初始化GPIO
        CLK_CKDIVR=0x10;//4M
        while(!(CLK_ICKR&0x02));//等待时钟就绪
        PD_DDR|=0x04;
        PD_CR1|=0x04;
        PD_CR2&=~0x04;//推挽输出

//IWDG看门狗
  //IWDG_KR=0xcc;
  IWDG_KR=0x55;//禁止写保护
        IWDG_PR=0x03;
        IWDG_RLR=0x66;
        IWDG_KR=0xaa;//刷新IWDG看门狗

  // 然后初始化定时器4                              
  TIM4_IER = 0x00;            // 禁止中断
  TIM4_EGR = 0x01;            // 允许产生更新事件
  TIM4_PSCR = 0x07;           // 计数器时钟=主时钟/128=4MHZ/128
                                            // 相当于计数器周期为32uS
  TIM4_ARR = 255;             // 设定重装载时的寄存器值,255是最大值
  TIM4_CNTR = 255;            // 设定计数器的初值
                              // 定时周期=(ARR+1)*32=8192uS
  TIM4_CR1 = 0x01;            // b0 = 1,允许计数器工作
                              // b1 = 0,允许更新
                              // 设置控制器,启动定时?
        //TIM4_IER=0x01;
        //_asm("rim");


  while(1)                    // 进入无限循环
  {
                for(x=62;x>0;x--)
    {
    while((TIM4_SR & 0x01) == 0x00); // 等待更新标志
    TIM4_SR = 0x00; // 清除更新标志
    //IWDG_KR=0xaa;
    }
    PD_ODR = PD_ODR ^ 0x04;// LED驱动信号取反
  }         
}

搜狗截图20161114173731.jpg
软件仿真,TIM4_CNTR值不变,一直无法运行到断点处。。。

使用特权

评论回复
hfei|  楼主 | 2016-11-14 17:42 | 显示全部楼层
flove00 发表于 2016-11-14 15:15
可以变化的,楼主是不是忘了点实施读取

在哪里点“实施读取”啊?没找到,

使用特权

评论回复
hfei|  楼主 | 2016-11-14 17:45 | 显示全部楼层
xmshao 发表于 2016-11-14 16:06
可以的。
你确认下所用料号有无TIM4,检查下tim4开启了没有,是否做了正常配置。如果用库的话,基于芯片型 ...

MCU型号也选的STM8S103K3,该芯片有TIM4,没有用库,寄存器方式。且用ST-LINK硬件仿真正常。就是纠结软件仿真为什么不行呢

使用特权

评论回复
xyz549040622| | 2016-11-15 21:24 | 显示全部楼层
中断呢?这些操作应该放在中断中的吧?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

93

帖子

1

粉丝