零刻sei12 windows10 限制cpu最高频率,降低cpu功耗,调整风扇转速

为什么要降低cpu功耗

虽然风扇声音本身不大,但是我想在自习室用电脑,突然的风扇声音还是会影响到他人.

由于迷你主机集成度比较高不太可能换散热器,所以只能降低cpu功耗.


我的系统

版本    Windows 10 IoT 企业版 LTSC
版本号    21H2
安装日期    ‎2023/‎12/‎18
操作系统内部版本    19044.4170
 

测试无效方案

1.在电源管理中修改 最大处理器状态 (无效)

  修改为"节能"有效,但是性能限制太大,cpuz单核性能只有100."平衡" "高性能" 差距不大

2.在电源管理中修改 散热方式为被动(风扇仍然狂转)

3.使用三方软件修改风扇转速(测试常见的软件都不支持这个主板)

4.拆掉风扇外面的防尘网(能降低7度左右的温度,对风扇噪音无效)

5.拆掉风扇外面的防尘网,外加风扇辅助散热(能降低5度,对风扇噪音无效)

6.设置 CState和C1E , CState默认是开启的,C1E没有找到.

有效方案

Power Limit 原来的值是80000, 我改为 60000后功耗和频率都降低了

修改前cpuz,cpuz处理器稳定性测试 cpu功耗30w,温度80摄氏度

修改后cpuz,cpuz处理器稳定性测试 cpu功耗20w,温度60摄氏度,风扇声音明显更轻

Uncore过高(尝试但为解决)

在20w的cpu功耗中,uncore功耗大约为8w(不降频也是这个功率).

修改此项无效

尝试开启aspm,bios中没有找到.

卸载AIDA64(网上说这个软件有bug导致显示异常),曾经用过,不确定是否卸载干净,但是使用其他软件检测,uncore功耗仍然很高.

uncore相关结论

不用管,没法管,这个功耗好像不是单纯cpu的,好像包含m2固态硬盘的功耗,我的固态硬盘地区有一点发热,但是温度不高不影响使用,如果这个功耗是包含固态硬盘的那么即使解决了对cpu风扇也没有什么影响,所以就不管了.

bios调整风扇的方法

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个用于测量10Hz到4kHz范围内信号频率的单片机频率计的代码示例,使用的单片机为ATmega328P。 ```c #include <avr/io.h> #include <avr/interrupt.h> #include <stdio.h> #define SAMPLE_NUM 100 volatile uint16_t g_captured_value[SAMPLE_NUM]; volatile uint8_t g_captured_cnt = 0; volatile uint8_t g_overflow_cnt = 0; ISR(TIMER1_CAPT_vect) { g_captured_value[g_captured_cnt++] = ICR1; if(g_captured_cnt >= SAMPLE_NUM) { TCCR1B &= ~(1 << CS10); // Disable Timer1 } } ISR(TIMER1_OVF_vect) { g_overflow_cnt++; if(g_overflow_cnt >= 5) { TCCR1B &= ~(1 << CS10); // Disable Timer1 } } uint32_t GetFrequency(void) { uint32_t i; uint32_t sum = 0; uint32_t freq = 0; uint32_t period[SAMPLE_NUM - 1]; for (i = 0; i < SAMPLE_NUM - 1; i++) { period[i] = g_captured_value[i + 1] - g_captured_value[i]; sum += period[i]; } freq = 1000000 / (sum / (SAMPLE_NUM - 1)); return freq; } int main(void) { DDRB &= ~(1 << DDB0); // Set PB0 as input PORTB |= (1 << PB0); // Enable pull-up resistor on PB0 TCCR1B |= (1 << ICES1); // Enable input capture on rising edge TIMSK1 |= (1 << ICIE1) | (1 << TOIE1); // Enable input capture and overflow interrupts sei(); // Enable global interrupts while (1) { g_captured_cnt = 0; g_overflow_cnt = 0; TCCR1B |= (1 << CS10); // Enable Timer1 with no prescaler while(g_captured_cnt < SAMPLE_NUM) { // Wait for input capture } uint32_t freq = GetFrequency(); printf("Frequency: %d Hz\r\n", freq); } } ``` 这个代码使用了Timer1和PB0,通过PB0输入信号,Timer1的输入捕获模式来计算输入信号的频率。其中,通过捕获多个脉冲的时间来计算频率,可以提高测量精度。同时,通过在中断处理函数中禁止Timer1来控制测量时间,从而确保测量频率的范围在10Hz到4kHz之间。另外需要注意的是,这个代码使用了printf函数来输出测量结果,如果不需要可以自行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值