5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
12
返回列表 发新帖
楼主: i150625
打印 上一主题 下一主题

BLHeli开源帖子讨论

[复制链接]
21
发表于 2016-7-26 13:51 | 只看该作者
i150625 发表于 2016-7-17 08:58
可以,你刷固定翼尾桨的电调就好了

恩恩,谢谢楼主

欢迎继续阅读楼主其他信息

主题

  • 没有相关信息
  • 没有相关信息
  • 没有相关信息
22
发表于 2016-10-29 11:32 | 只看该作者

你好 ,你的这个问题找到了吗 ,我好像也是这样,刷过之后就像视频里那样,启动不起来,看源码也没看出个所以然来,求帮助!

23
发表于 2016-11-9 14:04 | 只看该作者
楼主编译解决了吗?汇编代码容易看吗?
24
 楼主| 发表于 2016-11-25 17:43 | 只看该作者
逗倪豌儿 发表于 2016-10-29 11:32
你好 ,你的这个问题找到了吗 ,我好像也是这样,刷过之后就像视频里那样,启动不起来,看源码也没看出个 ...

遗憾的是没有找到,我看了程序也不知道原因在哪里,后来没有看了
25
 楼主| 发表于 2016-11-25 17:45 | 只看该作者
18513030413 发表于 2016-11-9 14:04
楼主编译解决了吗?汇编代码容易看吗?

好像是因为宏定义过长导致的,换了个低版本的代码看就可以编译了,他的汇编不太好看,注释太少,花时间的话,还是没有问题

26
发表于 2017-1-13 11:16 | 只看该作者
本帖最后由 sjh2100 于 2017-1-23 00:23 编辑


;Set BEC voltage,
set_bec_voltage:
; Set bec voltage
;
IF HIGH_BEC_VOLTAGE == 1
Set_BEC_Lo   ; Set default to low
mov Temp1, #Pgm_BEC_Voltage_High  
mov A, @Temp1   
jz set_bec_voltage_exit
Set_BEC_Hi   ; Set to high
****************************
program_by_tx_entry_wait_pwm:
  clr     EA                                          ; Disable all interrupts
         call beep_f1
         call wait10ms
         call beep_f1
         setb EA                                          ; Enable all interrupts
         call wait100ms
         clr     C
         mov A, New_Rcp                        ; Load new RC pulse value
         subb          A, #RCP_MAX                    ; At or above max?
         jc      program_by_tx_entry_wait_pwm  ; No - start over

         jmp  program_by_tx                           ; Yes - enter programming mode

         ; PPM throttle calibration and tx program entry
*****************以上红色代码没有找到来源,我搜索了BLHeliTxPgm.inc,BLHeliBootLoad.inc,C8051F330.INC,Skywalker_20A.inc,和blheli.asm这5个文档(非s版程序)都没发现,请教各位网友。






27
发表于 2017-1-13 11:53 | 只看该作者
i150625 发表于 2016-4-29 21:08
看程序时这两个变量不知道是什么意思?这两个变量在pwm产生定时器中断中使用,Damping的翻译为阻尼??好像 ...

damp应该就是阻尼,类似刹车的效果吧。

28
发表于 2017-1-23 22:55 | 只看该作者
本帖最后由 sjh2100 于 2017-1-23 23:03 编辑

            jb        Flags1.DIR_CHANGE_BRAKE, run6_check_speed;;A1--如果Flags1.DIR_CHANGE_BRAKE=1则run6_check_speed
        setb        Flags1.DIR_CHANGE_BRAKE                   ;   ; B1--如果Flags1.DIR_CHANGE_BRAKE=0则令其为1
        mov        Pwm_Limit, Pwm_Limit_Beg         
        jmp        run4            
run6_check_speed:                                                      ;;B1之后顺序执行到这里时,Flags1.DIR_CHANGE_BRAKE=1
        mov        Temp1, #0F0h                                       ; ; A2 --Flags1.DIR_CHANGE_BRAKE=1
        jnb        Flags1.DIR_CHANGE_BRAKE, run6_brake_done   ;从B1下来Flags1.DIR_CHANGE_BRAKE=1,从A1下来也是为1,再判断还有意义吗?
        mov        Pwm_Limit, Pwm_Limit_Beg                        
        mov        Temp1, #20h            
run6_brake_done:
       clr        C


29
发表于 2017-2-18 22:05 | 只看该作者
sjh2100 发表于 2017-1-13 11:16
;Set BEC voltage,
set_bec_voltage:
; Set bec voltage

找不到代码是因为你看的那个Skywalker_20A不支持设置BEC电压,前面那个  IF HIGH_BEC_VOLTAGE == 1  是告诉编译器,只有设置了HIGH_BEC_VOLTAGE 为1 才编译下面这段。
而在Skywalker_20A.inc里面是定义了 HIGH_BEC_VOLTAGE 为 0,所以不编译下面这段。
在BLHeli里,只有Align RCE-BL35P, Platinum 50A v3,Turnigy AE 45A, Turnigy KForce 40A 这几个才支持这个功能。

30
发表于 2017-2-19 10:36 | 只看该作者
huhuzz 发表于 2017-2-18 22:05
找不到代码是因为你看的那个Skywalker_20A不支持设置BEC电压,前面那个  IF HIGH_BEC_VOLTAGE == 1  是告 ...

谢谢不吝指教!

31
发表于 2017-3-4 16:48 | 只看该作者
本帖最后由 chenzdh 于 2017-3-4 17:10 编辑
i150625 发表于 2016-4-20 09:54
我发现用keil编译blheli10.1版本可以,而编译blheli12.1和14.1版本就一直通不过提示错误如下:
Build targ ...

可以用Keil编译14.1版本的,报错是因为程序开始电调型号选择定义的常量太多,将不需要的电调型号选择常量定义都删掉编译就不会出错了,如下:
;**** **** **** **** ****
; List of enumerated supported ESCs and modes  (main, tail or multi)

XP_3A_Main                                         EQU 1
XP_3A_Tail                                         EQU 2
XP_3A_Multi                                         EQU 3


只保留需要的定义,其它都删掉,这样就可以编译了!



您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /2 下一条

快速回复 返回顶部 返回列表