博文

目前显示的是标签为“software”的博文

6702调试笔记

# 电机部分 at32 pwm功能介绍 https://blog.csdn.net/weixin_64557865/article/details/141779922 官方简略pdf https://arterytek.com/download/DS/DS_AT32F405_402_V2.03_CH.pdf 官方完整pdf https://arterytek.com/download/RM/RM_AT32F402_405_CH_V2.02.pdf pwm有几个重要参数, 周期, 比较值, 计数值, 通道有各种模式, A, B, 相等, 反转..., 强制高低 PWM AB: 以比较值为临界点, 当计数值大于或小于该点, 则输出高或低电平, 即我们平时用的pwm模式, 具体看链接 脉冲模式: 当计数值等于比较值时, 输出高或低电平, 一般用得很少 切换模式: 当计数值等于比较值时, 切换当前电平, 一般用得很少 强制模式: 当普通输出IO用, 一般用得很少 具体看链接 目前GPIO不够用, 只能用互补脚, 经过构思, CH2+PWMA = CH2C+PWMB 立即输出模式: 能够让第一个信号快速输出, 我们的应用应该用不到 ## 20260127调机 pwm互补输出: 2通道互补输出, 会输出和2通道相反的信号, 按照这种特性, 我认为应该把用pwmB模式, 才能负负得正, 把互补通道当作正常通道来用 但是实测下来, 2互补通道输出+pwmB模式 和 3普通通道输出+pwmA模式, 输出的波形却是一样的, 这就有点奇怪了, 跟我的设想有点不一样, 现在先用着, 以后慢慢研究 # 编码器 完整pdf: 297页 编码器模式 A:SMSEL=3’b001,计数器在 C1IFP1 边沿计数(上升沿和下降沿), 计数方向由 C1IFP1 边 沿方向和 C2IFP2 电平高低共同决定。 编码器模式 B:SMSEL=3’b010,计数器在 C2IFP2 边沿计数(上升沿和下降沿), 计数方向由 C2IFP2 边 沿方向和 C1IFP1 电平高低共同决定。 编码器模式 C:SMSEL=3’b011,计数器在 C1IFP1 和 C2IFP2 边沿计数(上升沿和下降沿), 计数方向 由 C1IFP1 边沿方向和...

v2ray 问题修复

# DNS有问题 最近v2ray突然用不了, 这一个月内没有修改本地和服务器的任何配置文件等 首先尝试更新软件, 在国内网站找了一个v2ray的教程, 在里面找到链接, 链接不确定, 请注意甄别 ``` wget https://install.direct/go.sh ``` 结果他说找不到这个域名对应的IP地址, 但是我本地电脑ping可以ping通, 我以为是停止维护了 然后检查了配置, 用v2ctl config xx/config.json, 提示某一行有错误, 原因是大括号内最后一个元素多了一个逗号, 但是以前也是这么用, 不确定为什么这次就报错了, 删除之 结果还是不行, 然后继续排查时间的因素, 安装运行一个对时的指令, 结果发现没网, 原因是DNS服务器有问题, 修复方式如下: ``` apt-get install ntpdate # 网络错误, 安装失败 cat /etc/resolv.conf # 查看DNS rm /etc/resolv.conf echo "nameserver 8.8.8.8" > /etc/resolv.conf ``` 然后DNS就可以了, 其实刚刚重装v2ray的时候就暴露这个问题了, 只是没重视 # 用 screen 管理 v2ray ``` screen -S v2ray # 创建名为v2ray的线程 v2ray # 因为是全局安装, 所以直接运行, 不用到特定路径 screen -X quit # 如需退出, 运行此命令 ``` # 自动对时指令 ``` ntpdata tw.pool.ntp.org & hwclock --systohc || echo "ntpdata sync err" ```

Git 使用问题若干

markdown # 代理 git ssh 添加 sock5 代理 新增文件 vim .ssh/config ``` Host xx.xx HostName xx.xx User xxx ProxyCommand nc -v -x 127.0.0.1:1080 %h %p ``` 设置权限 ``` sudo chmod 600 config ``` 另外, 目前我自己在用的Gerrit, http和ssh的链接是不一样的, ssh需要在前面加个 d. , 网页生成的ssh链接还没改过来, 老是被坑几小时的时间, 特此记录一下 # 多分支 先在 Gerrit 上创建新分支, 新分支会跟master同个版本 创建完之后在本地库里无需添加新的链接, 只需要切换到typec的分支里输入以下指令就可以 ``` git push -f origin typec:typec # : ```

mbd -> png 总结

markdown # 思路 正向一共有 4 个步骤: 1. rbg -> ch\_x 2. ch\_x -> re\_x 3. re\_x -> out\_5b(此步骤带实际尺寸偏移) 4. out_5b -> out(压缩数据密度) 反向同理: 1. out -> out_5b (width+shift) 2. out\_5b -> re\_x (width+shift) 3. re\_x -> ch\_x (width) 4. ch\_x -> rbg (width) 无需分析每一步的操作, 因为都是根据墨盒的喷墨口的排列顺序重新排列, 无实际意义, 只需根据程序逆向即可 # 遇到的问题 ## 内存错乱 用的过程中遇到内存错乱等问题, 原因是 反向第2步 的时候,当判断out_5b的数据不在画幅内时, 错误操作了re\_x之前的内存 错误语句和修改内容参见以下git信息: ``` static inline void load_1byte(uint8_t *buf, int l, int i, int shift, const uint8_t *f) { if (l = img_width) - *(buf + (l - shift) * 36 + i) = 0; + ; else *(buf + (l - shift) * 36 + i) = *f; ``` ## 像素点偏移 发现 M Y 颜色的像素点有偏移, 原因是用mk的正向生成图片程序时, 加入了dpi等元素, 导致shift除了一个数字, 四舍五入后, M Y 的shift都少了1 解决方法是反向程序也引入同样的dpi补偿