模拟信号超出频率范围

系统启动进入Grub后,选择Fedora Core (2.6.18.……),按e键进入子菜单,然后选择/boot/vmlinuz-2.6.18-1…… ,按“e”进行编辑,将最后的"rhgb"改为"single"然后按b键启动。

进入后有个sh-3.1#的提示符,在其后输入nano

/etc/X11/xorg.conf就可以编辑这个文件,修改"Screen"段为如下内容,保存重启即可。

Section   "Screen"  
                  Identifier   "Screen0"  
                  Device       "Videocard0"   
                  DefaultDepth  24  
                  SubSection   "Display"  
                                  Viewport       0   0  
                                  Depth           16  
                                  Modes         "800x600"   "640x480"  
                  EndSubSection  
                  SubSection   "Display"  
                                  Viewport       0   0  
                                  Depth           24  
                                  Modes         "800x600"   "640x480"  
                  EndSubSection  
  EndSection

关于 安装Linux (FC6) 频率超出范围 与 显卡驱动

由于学习的需要,应朋友邀请,昨天给他安装FC6,准备和XP做双系统。

首先,机器配置如下:
AMD Athlon64 3000+ | GeForce7300GT PCI-E | DDRII667 1G | SATA 160G | KTC 17" CRT

先在xp下装了一个PartitionExpert_v8.0.build286,resize出了10G的未分区空间给FC6用,然后用光盘启动机器直接进入FC6的安装,手动分区,串口的硬盘会认成sda(IDE的硬盘则是hda),在空闲空间出新建了一个512MB的Swap交换分区,由于只是玩玩而已,剩余的空间全部给了/,不详细分了。开始安装,一切顺利。安装完毕,进入第一次重启并设置,问题出现了。

重启后默认直接进入了FC6,内核加载完成后,本应该进入到蓝色背景的进度条启动界面,可是显示器提示:“频率超出范围”,然后就是黑屏,不过看到硬盘灯一直在闪,我知道仍然在启动,只是屏幕看不到而已,我试着Ctrl+Alt+Fn,果然F1切到了命令行并唤醒了屏幕,只是并不是准备登陆的时候,而是一些错误信息,试图输入什么命令并没有反应。

关于安装Linux有显示器频率的问题,之前隐约听说过,于是百度了一下,的确不罕见。权威的解决办法我没有找到,不过看到有一种说法,是修改显示器的配置文件/etc/X11/xorg.conf,决定试一下,可是我现在连系统都进不去,怎么改呢?于是百度了一下怎么以命令行的方式启动Linux。

命令行方式启动Linux(用单用户模式)(GRUB引导)
选择Fedora Core (2.6.18.……),按“e”进入编辑模式,选择内核 kernel …… ,按“e”进行编辑,在“or root=……”的“or”前边,加入“single ”,然后回车确认,直接按“b”来启动,来到了命令行。

于是准备修改/etc/X11/xorg.conf,先备份一下吧。以下两个配置是从网上查到的:

[方法1]添加如下字段,重要的是水平刷新率HorizSync和垂直刷新率VertRefresh

Section "Monitor"
identifier "E71f-2"
vendorname "Generic"
modelname "1024x768 @ 70 Hz"
HorizSync 31.5-57.0
VertRefresh 50-70
EndSection

[方法2]在section "screen"字段的subsection "display"子字段添加成如下:

Subsection "Display"
Viewport 0 0
Depth 24
Modes "1024*768" "800*600"
End subsection

就是多了Modes "1024*768" "800*600"这一行。

这两种方法我都试了,合在一起也试了,甚至把HorizSync和VertRefresh的值做了不同的调整,重新启动时仍然无法进入XWindows,但是是有一定效果的,就是可以启动,没有出现频率超出范围而黑屏,当然仍然是没有进度条的启动界面,但是有命令行的信息反馈,比如正在启动什么,成功与否,只是在即将启动XWindows的时候报了一些错误信息,还是刷新率的问题。于是不再过多修改此文件,保持有点效果的状态。

正常启动,到X的时候,无法进入图形界面,会有错误信息,按Ctrl+Alt+Fn,看看哪一个可以输入用户名密码能够登陆,登陆后,运行setup,看看X的设置情况。还好我之前用过这个setup,因为我现在打开的这个setup的界面,中文显示不出来,不过我知道第一项就是X的设置,运行它出现了图形界面的类似Windous显示属性的那个框,此时的分辨率是800*600,我调到了1024*768,这里没有更改刷新率的项目,硬件选项里,显示器没有识别到具体的品牌,而是通用显示器800*600,我找了找,里边没有KTC的牌子,只好被我改到了通用显示器1024*768,显示卡识别为GeForce7300GT,我看没错。改了这些之后,重启看看效果,满心期待之中终于进入了XWindows。

### 调整输出信号范围至1680的技术参数配置 要将输出信号范围设置为1680,主要涉及定时器(TIM)模块中的脉冲宽度调制(PWM)通道配置。以下是实现这一目标的具体方法: #### 定义比较值 在 `TIM_OC_InitTypeDef` 结构体中,成员变量 `Pulse` 是用于定义 PWM 输出占空比的关键参数。该值决定了高电平持续时间相对于计数周期的比例[^1]。 通过计算得出合适的 `Pulse` 值来匹配所需的输出信号范围 1680。假设当前使用的计数值上限为 ARR(Auto Reload Register),则可以按照以下公式设定: ```c uint32_t pulse_value = (ARR * desired_output_range) / max_possible_output; ``` 其中, - `desired_output_range` 表示期望的输出信号范围,即此处的目标值 1680; - `max_possible_output` 则代表最大可能输出范围,通常由硬件设计决定或者基于实际应用环境选定。 因此,在初始化结构体实例时应指定此计算所得的结果作为 `Pulse` 的初始赋值: ```c TIM_OC_InitTypeDef sConfigOC; sConfigOC.Pulse = calculated_pulse_value; // 使用上述公式的计算结果替代calculated_pulse_value // 其他必要的初始化... HAL_TIM_PWM_ConfigChannel(&htimX, &sConfigOC, CHANNEL_NUMBER); ``` #### STM32CubeMX 中的相关配置 如果利用STM32CubeMX工具来进行初步项目搭建,则可以在图形界面下完成大部分基础性的外设及时钟树形图布局工作。对于希望达到特定频率下的精确PWM波形而言,合理规划系统核心运行速率以及各层次预分频系数至关重要[^2]。 当把主振荡源频率固定下来之后(比如72MHz),再依据最终想要达成的效果反向推导出适合自己的Prescaler(pre-scaler value) 和 Auto-reload Value(Auto reload register value): - **Prescaler**: 控制内部时基单元的工作速度降低倍率。 - **Auto-reload Value**: 设定每次重新加载之前的计数值界限。 两者共同作用影响到整个周期长度T=(prescaler+1)*(auto_reload_register+1)/fclk ,从而间接控制了能够产生的最小分辨率单位t_resolution=T/N (N表示有效位宽)。所以为了支持更精细的变化步距直至覆盖到像本例提到的大约1680这样的较大动态区间范围内,就需要仔细权衡这两者之间的关系并做出适当的选择。 另外值得注意的是,尽管Baumer相机提供了高度灵活多样的I/O接口选项供开发者自由组合运用[^3],但是这并不直接影响我们讨论的主题——关于如何针对某个具体的微控制器平台(STM32系列)去编程实现自定义幅度大小的模拟量输出功能方面的问题。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值