本帖最后由 JackTang1994 于 2024-12-1 19:42 编辑
#每日话题# #技术资源#
我们可以利用PIC16F13145—CLB模块产生特定的波形,比如:SG90舵机的20ms周期的脉冲波形。
CLB-SG90舵机波形生成Verilog代码
- module SG90_Driver(CLK,in2,in1,in0,out_pin);
- input CLK;
- input in2,in1,in0;
- output reg out_pin;
- reg[5:0] counter;
-
- initial //初始化相关引脚及变量
- begin
- counter <= 1; // 从1开始计数脉冲数
- out_pin <= 0; // 初始化状态输出引脚为低电平
- end
- //循环执行的代码块
- always @(posedge CLK)
- begin
- if(counter == 39) // 39个0.5ms脉冲即20ms
- begin
- counter <= 1; // 重新从1开始计数
- out_pin <= 0;
- end
- // 小于或者达到设定的脉冲数量
- else if(counter <= {in2,in1,in0})
- begin
- out_pin <= 1;
- counter <= counter + 1;
- end
- else // 20ms剩余的时间
- begin
- out_pin <= 0;
- counter <= counter + 1;
- end
- end
- endmodule
逻辑分析仪抓取到的CLB产生的波形
详细的操作过程,请查看原文链接:https://mp.weixin.qq.com/s/SLNTV5P1x3ZTfDVZkgnQ8g?token=1567580201&lang=zh_CN
|