打印
[技术问答]

关于M058LAN单片机的问题

[复制链接]
2976|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dongjie_0000|  楼主 | 2014-4-20 11:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  M058单片机单独执行一步程序的时间是多少?
沙发
heelary| | 2014-4-20 11:55 | 只看该作者
汇编一步还是c语言一步?

使用特权

评论回复
板凳
dongjie_0000|  楼主 | 2014-4-20 12:02 | 只看该作者
heelary 发表于 2014-4-20 11:55
汇编一步还是c语言一步?

C语言

使用特权

评论回复
地板
haolaishi| | 2014-4-20 12:15 | 只看该作者
c语言的话看你的反汇编语句

使用特权

评论回复
5
haolaishi| | 2014-4-20 12:16 | 只看该作者
假设晶振为12MhZ,一条指令的一个周期时间为1/12Mhz

使用特权

评论回复
6
heelary| | 2014-4-20 13:01 | 只看该作者
c语言一步的时间是不确定的,调用一个涵数也是一步,这个函数有多大你懂的,可以运行不停的都有。

使用特权

评论回复
7
dongjie_0000|  楼主 | 2014-4-20 14:23 | 只看该作者
本帖最后由 dongjie_0000 于 2014-4-20 14:33 编辑
heelary 发表于 2014-4-20 13:01
c语言一步的时间是不确定的,调用一个涵数也是一步,这个函数有多大你懂的,可以运行不停的都有。 ...

其实我就是想做一个精确延时1us的函数   在M051代码中,#include "M051.h"
void Delayus(uint32_t unCnt){
    SYST_RVR = unCnt*12;
          SYST_CVR = 0;
          SYST_CSR |=1UL<<0;
          
          while((SYST_CSR & 1UL<<16)==0);
}

但是#include "M051Series.h",该怎么移植呢

使用特权

评论回复
8
Regsen| | 2014-4-20 14:31 | 只看该作者
用M058的滴答中断来做好了
新唐的NUC系列都有。库里面直接包含头文件来使用就可以了。

使用特权

评论回复
9
dongjie_0000|  楼主 | 2014-4-20 14:49 | 只看该作者
本帖最后由 dongjie_0000 于 2014-4-20 14:50 编辑
Regsen 发表于 2014-4-20 14:31
用M058的滴答中断来做好了
新唐的NUC系列都有。库里面直接包含头文件来使用就可以了。 ...

能不能说的详细点?

使用特权

评论回复
10
haolaishi| | 2014-4-20 15:53 | 只看该作者
dongjie_0000 发表于 2014-4-20 14:49
能不能说的详细点?

你说的这个函数,在M058S中就有

使用特权

评论回复
11
haolaishi| | 2014-4-20 15:53 | 只看该作者
static __INLINE void SYS_SysTickDelay(uint32_t us)
{
    SysTick->LOAD = us * CyclesPerUs;
    SysTick->VAL  =  (0x00);
    SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | SysTick_CTRL_ENABLE_Msk;

    /* Waiting for down-count to zero */
    while((SysTick->CTRL & SysTick_CTRL_COUNTFLAG_Msk) == 0);
}

使用特权

评论回复
12
dongjie_0000|  楼主 | 2014-4-20 20:32 | 只看该作者
haolaishi 发表于 2014-4-20 15:53

头文件是哪个?

使用特权

评论回复
13
haolaishi| | 2014-4-20 20:33 | 只看该作者
SYS.h这个头文件中了

使用特权

评论回复
14
dongjie_0000|  楼主 | 2014-4-20 21:19 | 只看该作者
haolaishi 发表于 2014-4-20 20:33
SYS.h这个头文件中了

找到了,谢谢啊

使用特权

评论回复
15
dongjie_0000|  楼主 | 2014-4-20 22:01 | 只看该作者
dongjie_0000 发表于 2014-4-20 21:19
找到了,谢谢啊

SYS_SysTickDelay(uint32_t us)是不是只要填上所需要的时间就可以了。是不是很精确啊

使用特权

评论回复
16
haolaishi| | 2014-4-21 10:08 | 只看该作者
dongjie_0000 发表于 2014-4-20 22:01
SYS_SysTickDelay(uint32_t us)是不是只要填上所需要的时间就可以了。是不是很精确啊 ...

填上时间即可,精确度还可以,需要更精确的话就得用RTC了,M058S貌似没有RTC

使用特权

评论回复
17
从小木丁丁| | 2014-4-21 10:44 | 只看该作者
haolaishi 发表于 2014-4-21 10:08
填上时间即可,精确度还可以,需要更精确的话就得用RTC了,M058S貌似没有RTC ...

rtc都没有?

使用特权

评论回复
18
dongjie_0000|  楼主 | 2014-4-21 12:12 | 只看该作者
从小木丁丁 发表于 2014-4-21 10:44
rtc都没有?

RTC有的

使用特权

评论回复
19
从小木丁丁| | 2014-4-21 15:03 | 只看该作者
c语言一步的时间是不确定的,调用一个涵数也是一步,这个函数有多大你懂的,可以运行不停的都有。

使用特权

评论回复
20
从小木丁丁| | 2014-4-21 15:03 | 只看该作者
haolaishi 发表于 2014-4-20 12:16
假设晶振为12MhZ,一条指令的一个周期时间为1/12Mhz

一个指令周期。。。。

使用特权

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

本版积分规则

10

主题

43

帖子

0

粉丝