标签: clock

我正在制作24小时制

我正在做一个24小时.我有下面的代码.我的问题是int[]时间等于[0, 0, 0]并在每次迭代时打印出来.
一些可能对您有帮助的信息.我有Array TimeCounteras [hours, minutes, seconds].reset方法将选择的int值设置为零,保持不变或增加1.嵌套的while循环用于通过时钟.

public static int hours;
public static int minutes;
public static int seconds;
public static int [] TimeCounter = {hours, minutes, seconds};

//End of day
public static void reset(int [] midNight){
    hours = 0;
    minutes = 0;
    seconds = 0;
}

//End of a minute
public static void resetSeconds(int [] endOfMin){
    minutes++;
    seconds = 0;
}

//End of a Hour
public static void resetMinutes(int [] endOfHour){ …
Run Code Online (Sandbox Code Playgroud)

java arrays clock

0
推荐指数
1
解决办法
4103
查看次数

objc 中的时间更改通知(小时和分钟)

是否有在时间更改时获取通知的最佳实践?

我使用的是NSTimer每 0,002 秒检查一次时间是否更改(小时和分钟,而不是秒和毫秒),以保持应用程序中的标签每分钟与手机时钟同步。

我希望有更好的解决方案。

谢谢

time objective-c clock nstimer clock-synchronization

0
推荐指数
1
解决办法
890
查看次数

FPGA 系统中的同步与异步复位

我刚开始使用各种不同的模块创建 FPGA 系统来驱动 I2C 总线(尽管我认为这个问题适用于任何 FPGA 系统),并且所有模块都使用同步复位。

这些模块使用时钟分频器模块进行计时,该模块获取系统时钟并向系统的其余部分输出较低的频率。

我遇到的问题是,当复位信号变低时,时钟分频器复位,因此其他模块依赖的时钟停止 - 因此其他模块不会注册复位

一个明显的解决方案是进行异步复位,但是,在 Xilinx ISE 中,它似乎不喜欢它们,并抛出警告,指出这与 Spartan-6 FPGA 不兼容(特别是当异步代码之后的代码是同步代码时) ,这是因为 I2C 总线使用总线时钟将位放入总线上)。

另一种解决方案是时钟分频器根本不可重置,因此时钟永远不会停止并且所有模块都会正确重置。然而,这意味着时钟分频器寄存器无法初始化/重新初始化为已知状态 - 有人告诉我这将是一个大问题,尽管我知道您可以 := '0'/'1'; 在模拟中使用该运算符,但这一旦编程就不起作用实际的 FPGA(?)。

同步复位的约定是什么?时钟发生器一般不复位吗?或者它们仅在复位信号的瞬时边沿复位?或者我的建议都不是真正的解决方案!

我放入了时序图和代码来说明我的意思,并显示我一直在使用的代码。

非常感谢!

大卫

在此输入图像描述

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
library UNISIM;
use UNISIM.VComponents.all;
ENTITY CLK_DIVIDER IS
    GENERIC(INPUT_FREQ : INTEGER;
            OUT1_FREQ  : INTEGER;
            OUT2_FREQ  : INTEGER
    );
    PORT(SYSCLK  : IN  STD_LOGIC;
         RESET_N : IN  STD_LOGIC;
         OUT1    : OUT STD_LOGIC;
         OUT2    : OUT STD_LOGIC);
END CLK_DIVIDER;
architecture Behavioral of Clk_Divider is
    constant divider1 …
Run Code Online (Sandbox Code Playgroud)

asynchronous clock vhdl reset xilinx

0
推荐指数
1
解决办法
2921
查看次数

与较慢的cpu相比,更快的cpu浪费更多的时间

假设我有一个程序,其中包含添加两个数字的指令,该操作需要10纳秒(常数,由门制造商强制执行).
现在我有3个不同的处理器A,B和C(其中A <B <C就时钟周期而言).

A的一个时钟周期为15纳秒,B为10纳秒,C为7纳秒.

首先,我是按照以下假设纠正的:
1.添加操作需要1个完整的处理器A循环(慢速处理器),并且浪费剩余的5 ns循环.
2.添加操作需要1个完整周期的处理器B浪费时间.
3.添加操作需要2个完整周期(20 ns)的处理器C(快速处理器),浪费20-14 = 7 ns的其余部分.

如果上述假设是正确的,那么这与具有高时钟周期的处理器更快的常规假设不矛盾.
这里最快的处理器C实际上需要2个周期并且浪费7ns,而较慢的处理器A仅需要1个周期.

cpu performance clock computer-architecture

0
推荐指数
1
解决办法
542
查看次数

如何在verilog中拆分顺序和组合

我正在尝试在 verilog 中创建一个计数器,我想知道如何将连续部分与组合部分分开。

我有这个模块,它工作正常,但我不知道如何拆分它?

module counter4bits(
    input clk_i,
    input rst_n_i,
    input enable_i,
    input   up_down_i,
    output reg[3:0] val_o);

    always@(posedge clk_i) begin
        if (rst_n_i == 1)
            val_o <= 0;
        else if(enable_i == 1)
            val_o <= val_o + 1;
        end

endmodule
Run Code Online (Sandbox Code Playgroud)

counter verilog clock

0
推荐指数
1
解决办法
1023
查看次数

在QT中创建一个简单的时钟

我想在我的 Qt 程序中创建一个简单的时钟:QLabel,每秒更新一次。

Q标签名称:label_clock

我的时钟“脚本”:

while (true)
{
   QString time1 = QTime::currentTime().toString();
   ui->label_clock->setText(time1);
}
Run Code Online (Sandbox Code Playgroud)

但是当我将它粘贴到我的程序中时,您已经知道它将在该脚本处停止执行 - while 总是给出 true,因此脚本下的其余代码永远不会执行 -> 程序崩溃。

我应该怎么做才能使这个脚本工作?我想创建一个简单的时钟,每秒更新一次。

c++ qt clock

0
推荐指数
1
解决办法
3192
查看次数

尝试在 flutter 中创建一个更新的数字时钟

所以我使用一个名为timebuilder 的包来重建我的小部件。对于 DateFormat 类,我使用了这个包。

 final String currentTime = getSystemTime();

 static String getSystemTime() {
   var now = new DateTime.now();
   return new DateFormat("H:m:s").format(now);
 }

 @override
 Widget build(BuildContext context) {
   return TimerBuilder.periodic(Duration(seconds: 1), builder: (context) {
     print("$currentTime");
     return Text(
       "$currentTime",
       style: TextStyle(
           color: Color(0xff2d386b),
           fontSize: 30,
           fontWeight: FontWeight.w700),
     );
   });
 }
}
Run Code Online (Sandbox Code Playgroud)

然后我将显示 ClockWidget。我的小部件重建得很好。但 currentTime 的值仍然是我构建项目时最初的值。关于为什么 currentTime 不更新的任何线索?

clock dart flutter

0
推荐指数
1
解决办法
5891
查看次数

使用clock_gettime(CLOCK_MONOTONIC)测量经过的时间

我必须在多个线程期间消耗测量时间。我必须得到这样的输出:

Starting Time | Thread Number

00000000000   |   1

00000000100   |   2

00000000200   |   3
Run Code Online (Sandbox Code Playgroud)

首先,我使用了 gettimeofday 但我看到有一些负数,然后我做了一些研究并了解到 gettimeofday 无法可靠地测量经过的时间。然后我决定使用clock_gettime(CLOCK_MONOTONIC)。

然而,有一个问题。当我用秒来测量时间时,我无法精确地测量时间。当我使用纳秒时, end.tv_nsec 变量的长度不能超过 9 位数字(因为它是一个长变量)。这意味着,当它必须移动到第 10 位时,它仍然保持在 9 位,并且实际上数字变小,导致经过的时间为负数。

这是我的代码:

long elapsedTime;
struct timespec end;
struct timespec start2;
//gettimeofday(&start2, NULL);
clock_gettime(CLOCK_MONOTONIC,&start2);

while(c <= totalCount)
{   
    if(strcmp(algorithm,"FCFS") == 0)
    {
        printf("In SErunner count=%d \n",count);
        if(count > 0)
        {
            printf("Count = %d \n",count);
        
            it = deQueue();
            c++;
            tid = it->tid;

            clock_gettime(CLOCK_MONOTONIC,&end);
            
            usleep( 1000*(it->value));
            elapsedTime = ( end.tv_sec - start2.tv_sec);
            
            printf("Process of thread …
Run Code Online (Sandbox Code Playgroud)

c linux pthreads clock

0
推荐指数
1
解决办法
4614
查看次数

在 C 中使用 CLOCKS_PER_SEC 是否保证获得 1 秒?

我知道clock()不提供挂钟时间,并且CLOCKS_PER_SEC是系统相关值。假设我不关心系统相关问题,我可以假设下面的代码在GNU/LinuxWindows 中总是等待 1 秒,因为我测试过它对我来说似乎没问题。还是我应该坚持使用依赖于系统的sleep()/usleep()函数?

void wait_a_sec()
{
    clock_t start = clock();
    do
    {
        // wait 1 sec
        /**
         * Second call to clock() gives the processor time in clock ticks
         * since first call to it.
         * CLOCKS_PER_SEC: clock ticks per sec.
         */
    } while ( clock() < (start + CLOCKS_PER_SEC) );
}
Run Code Online (Sandbox Code Playgroud)

c time clock

0
推荐指数
1
解决办法
45
查看次数

为什么每次执行此程序时CPU时间都不同?

我很难理解处理器的时间.该计划的结果:

#include <iostream>
#include <chrono>

// the function f() does some time-consuming work
void f()
{
    volatile long double d;
    int size = 10000;
    for(int n=0; n<size; ++n)
       for(int m=0; m<size; ++m)
           d = n*m;
}

int main()
{
    std::clock_t start = std::clock();
    f();
    std::clock_t end = std::clock();

    std::cout << "CPU time used: "
              << (end - start)
              << "\n";
}
Run Code Online (Sandbox Code Playgroud)

似乎在210 000,220 000和230 000之间随机波动.起初我很惊讶,为什么这些离散值.然后我发现std::clock()只返回大约处理器时间.因此,返回的值可能std::clock()会舍入到10 000的倍数.这也可以解释为什么CPU时间之间的最大差异为20 000(第一次调用时为10 000 ==舍入误差,第二次调用为std::clock()10 000).

但是,如果我换到int …

c++ performance clock

-1
推荐指数
1
解决办法
3473
查看次数