`

CPU Sin

 
阅读更多
1 #include <iostream>
 2 #include <cmath>
 3 #include <ctime>
 4 #include <windows.h>
 5 
 6 using namespace std;
 7 
 8 //得到循环0xFFFFFFFF次用的秒数
 9 unsigned int test()
10 {
11     unsigned int c = 0xFFFFFFFF;
12 
13     time_t t1, t2;
14     time(&t1);
15 
16     for(unsigned int i = 0; i < c; i++)
17         ;
18     time(&t2);
19     return (unsigned int)(t2 -t1);
20 
21 }
22 
23 
24 #define T  20000                                        //周期时间 20秒
25 #define C  100                                            //采样点时间间隔
26 #define PI 3.1415                                        //PI
27 const unsigned int count = 0xFFFFFFFF / (test() *1000); //每秒可以执行的循环数目
28 const unsigned int N = T/C;                                //周期内采样点数目
29 unsigned int v[N] = { 0 };                                //所有采样点连续执行循环数
30 unsigned int mt[N] = { 0 };                                //所有采样点休眠毫秒数
31 
32 int main()
33 {
34     //计算循环次数和休眠时间
35     for(int i = 0; i < N; i++)
36     {
37         double x = (2 * PI / N)* i ;//2*PI/N 是把2PI的x轴 分成N份,再乘i得到第i个点相对于sin函数的横坐标
38         double r = (sin(x) + 1) / 2;//将sine函数映射到[0,1],as a coefficient,作为单位时间C内工作的时间比例(y轴0-100%)
39         
40         mt[i] = C - r * C;//(1-r)C,在单位时间C应该休息多久, 在当前C 里面工作r*c, 休息(1-r)*C,绘制的一个点。下一个C又绘制一个,y值是sin得来所以看起来近似正选
                                   //rate = work/C  ->  rate = r ->  work = r*c  
41         v[i] = r * C * count;//r*C在单位时间C应该工作多久,再*count,得到需要多少个for 
42     }
43     for(;;)
44     {
45         for(int i = 0; i < N; i++)
46         {
47             for(int j = 0; j < v[i]; j++)
48                 ;
49             Sleep(mt[i]);
50         }
51     }
52 }
分享到:
评论

相关推荐

    嵌入式系统中sin和cos的快速算法

    嵌入式系统中CPU通常不能有计算一些数学函数的资本,本文提供了一种简洁的计算方法。

    cpu 按正弦波运行

    在任务管理器中把cpu使用记录调成一张表,然后可以看到cpu是按正弦波运行的。同时运行的任务越少,正弦波越好

    用matlab生成正弦函数代码-How-to-Generate-Sine-Table-LUT:如何生成正弦表LUT

    DMA意味着“没有CPU”干预,因此,不影响CPU性能。 因此,LUT只是我们预先计算“我们要查找”的值的数组。 非常方便和机智! 我们可以设计您可能想到的任何波形。 但是,在继续进行任意波形生成之前,我们首先需要...

    Burbuja sin basura-crx插件

    语言:español 这个扩展块在泡沫中的广告横幅... 它提高了性能,因为若干元素被阻止,这消耗了25%的CPU资源。 正如Calopez无法修复它,我创建了这个迷你扩展,以避免额外的资源消耗,并避免在底部出来的那些新的禁令。

    嵌入式系统/ARM技术中的基于嵌入式CPU内核 IAR Systems 32位编译器执行周期减半

    IAR Systems日前发布了支持Atmel全新AVR32嵌入式CPU内核的IAR Embedded Workbench。同日发布的AVR32架构,结合IAR Embedded Workbench for AVR32,可用于开发要求苛刻的各种应用,例如消费者娱教、销售终端...

    自动关机工具 电脑自动关机

    功能强大... 可以监视,时间,进程,窗口,鼠标,文件,目录,网络,内存,cpu, 另带。杀进程。窗口标题,简单下载...==

    [VHDL+Verilog]两种语言分别设计的串口UART源码.zip

    cpu_interface.v serial_interface.v status_registers.v tester.v uart_tb.v uart_top.v xmit_rcv_control.v `resetall `timescale 1ns/10ps module uart_top( // 3-bit address bus addr, clk, // 10 MHz...

    FLEX3中文手册,看我的资源描述就知道了。

    注意:由于 CPU 或操作系统所使用的算法不同,Math 函数 acos、asin、atan、atan2、cos、exp、log、pow、sin 和 sqrt 得出的值可能会稍有不同。 执行上述函数的计算时,Flash Player 将调用 CPU(或操作系统,如果 ...

    cpu-temp-approximation:一个使用分段线性插值和三次样条曲线(贝塞尔曲线)近似时间序列数据的类项目

    _____ ______ _ _ _____ / __ \| ___ \ | | | |_ _| | / \/| |_/ / | | | | | ___ _ __ ___ _ __ | | | __/| | | | | |/ _ \ '_ ` _ \| '_ \ | \__/\| | | |_| | | | __/ | | | | | |_) | ...

    MCU三角函数运算

    说他可望是因为在编译环境函数库中,这些运算都可以通过软件来实现,但他付出的代价是较长代码长度和大量的CPU运算时间。代码长度也许是系统可以承受的,但大量的CPU运算时间则是实时控制系统无法接受的。 Xinnova...

    scripts:杂项脚本,对于它们自己的存储库来说还不够重要

    前任: ~ &gt; calc " 1 + 1 "2~ &gt; calc " math.sin(math.pi/2) "1.0复制视频到phone.sh 将文件列表(不仅仅是视频!)复制到通过ADB通过USB连接的Android手机上。cpu-temps.py 打印每个CPU内核的温度。 包括最小,...

    pb函数大集合

    Sin() RegistryDelete() PrintCancel() SignalError() Sqrt() RegistryGet() PrintClose() UnitsToPixels() Tan() RegistryKeys() PrintDataWindow() Truncate() RegistrySet() PrintDefineFont() ...

    Python Multiprocessing多进程 使用tqdm显示进度条的实现

    在python运行一些,计算复杂度比较高的函数时,服务器端单核CPU的情况比较耗时,因此需要多CPU使用多进程加快速度 2.函数要求 笔者使用的是:pathos.multiprocessing 库,进度条显示用tqdm库,安装方法: pip ...

    python multiprocessing模块用法及原理介绍

    python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu\_count\(\)查看),在python中大部分情况需要使用多进程。 Python提供了multiprocessing。 multiprocessing模块用来开启子进程,并在子...

    esp8266 mp3

    memcpy(&ip-&gt;sin_addr, addr_list[0], sizeof(ip-&gt;sin_addr)); return 1; } //Open a connection to a webserver and request an URL. Yes, this possibly is one of the worst ways to do this, //but RAM is ...

    Python多线程threading和multiprocessing模块实例解析

    一个执行流是由CPU运行程序代码并操作程序的数据所形成的。因此,线程被认为是以CPU为主体的行为。 线程不包含进程地址空间中的代码和数据,线程是计算过程在某一时刻的状态。所以,系统在产生一个线程或各个线程...

    家庭智能网关设计,linux+QT做界面(部分源码+视频演示)-电路方案

    本系统主要采用了三星S5PV210(CPU)为核心,运行主频可高达1GHz,S5PV210内部集成了PowerVR SGX540高性能图形引擎,支持3D图形流畅运行,并可播放1080P大尺寸高清视频。SIN210开发板使用了核心板+底板的方案。S5PV...

    CalcExpress

    accepts functions: cos, sin, tg, ctg, abs, sgn or sign, sqrt, ln, exp, arcsin, arccos, arctg or arctan, arcctg, sh or sinh, ch or cosh, th or tanh, cth or coth, heaviside; supports unlimited number ...

    Python多进程multiprocessing用法实例分析

    像线程一样管理进程,这个是mutilprocess的核心,他与threading很是相像,对多核CPU的利用率会比threading好的多。 简单的创建进程: import multiprocessing def worker(num): thread worker function print '...

Global site tag (gtag.js) - Google Analytics