├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.yml │ ├── config.yml │ └── feature_request.yml └── workflows │ └── cmake.yml ├── .gitignore ├── LICENSE ├── README.md ├── README_CN.md ├── circuit ├── miniFOC-Sensor │ ├── miniFOC-Sensor_PCB.json │ ├── miniFOC-Sensor_schematic.json │ └── miniFOC-Sensor_schematic.pdf └── miniFOC │ ├── miniFOC_PCB.json │ ├── miniFOC_schematic.json │ └── miniFOC_schematic.pdf ├── docs ├── Acme_LOGO.png ├── _c_make_c_compiler_id_8c_source.html ├── _config.yml ├── _mainpage.md ├── annotated.html ├── bc_s.png ├── bdwn.png ├── classes.html ├── closed.png ├── config_8h.html ├── config_8h_source.html ├── dir_09158ec9ecf5b299dee5a1527cca4698.html ├── dir_25e5c098894e54fba396f56526bbeec6.html ├── dir_262ef3e34820216e073ea116856421e0.html ├── dir_42e555215cde261dd5295a864caa3e52.html ├── dir_49e56c817e5e54854c35e136979f97ca.html ├── dir_4a17fea078384b3abfc61b4e00b7f90f.html ├── dir_99d3723365464dd656f512988bb8dbbd.html ├── dir_b6bdff26d79b996cd9f148e35037b859.html ├── doc.png ├── doxygen.css ├── doxygen.svg ├── dynsections.js ├── encoder_8c.html ├── encoder_8c_source.html ├── encoder_8h.html ├── encoder_8h_source.html ├── error_8h.html ├── error_8h_source.html ├── fast__math_8c.html ├── fast__math_8c_source.html ├── fast__math_8h.html ├── fast__math_8h_source.html ├── files.html ├── filter_8c.html ├── filter_8c_source.html ├── filter_8h.html ├── filter_8h_source.html ├── flash_8c.html ├── flash_8c_source.html ├── flash_8h.html ├── flash_8h_source.html ├── foc_8c.html ├── foc_8c_source.html ├── foc_8h.html ├── foc_8h_source.html ├── folderclosed.png ├── folderopen.png ├── functions.html ├── functions_vars.html ├── gd32f1x0__it_8c.html ├── gd32f1x0__it_8c_source.html ├── gd32f1x0__it_8h.html ├── gd32f1x0__it_8h_source.html ├── globals.html ├── globals_defs.html ├── globals_func.html ├── globals_vars.html ├── image │ ├── Acme_LOGO.png │ ├── LOGO.png │ ├── cmake_install.png │ ├── miniFOC-Sensor_schematic.png │ ├── miniFOC_schematic.png │ ├── single_calculation_cycle.jpg │ ├── ubuntu_check_install.png │ ├── windows_check_install.png │ └── windows_clion_install.png ├── index.html ├── jquery.js ├── led_8h.html ├── led_8h_source.html ├── main_8c.html ├── main_8c_source.html ├── main_8h.html ├── main_8h_source.html ├── menu.js ├── menudata.js ├── nav_f.png ├── nav_g.png ├── nav_h.png ├── open.png ├── pid_8c.html ├── pid_8c_source.html ├── pid_8h.html ├── pid_8h_source.html ├── report_8c.html ├── report_8c_source.html ├── report_8h.html ├── report_8h_source.html ├── search │ ├── all_0.html │ ├── all_0.js │ ├── all_1.html │ ├── all_1.js │ ├── all_10.html │ ├── all_10.js │ ├── all_11.html │ ├── all_11.js │ ├── all_12.html │ ├── all_12.js │ ├── all_13.html │ ├── all_13.js │ ├── all_2.html │ ├── all_2.js │ ├── all_3.html │ ├── all_3.js │ ├── all_4.html │ ├── all_4.js │ ├── all_5.html │ ├── all_5.js │ ├── all_6.html │ ├── all_6.js │ ├── all_7.html │ ├── all_7.js │ ├── all_8.html │ ├── all_8.js │ ├── all_9.html │ ├── all_9.js │ ├── all_a.html │ ├── all_a.js │ ├── all_b.html │ ├── all_b.js │ ├── all_c.html │ ├── all_c.js │ ├── all_d.html │ ├── all_d.js │ ├── all_e.html │ ├── all_e.js │ ├── all_f.html │ ├── all_f.js │ ├── classes_0.html │ ├── classes_0.js │ ├── classes_1.html │ ├── classes_1.js │ ├── close.svg │ ├── defines_0.html │ ├── defines_0.js │ ├── defines_1.html │ ├── defines_1.js │ ├── defines_2.html │ ├── defines_2.js │ ├── defines_3.html │ ├── defines_3.js │ ├── defines_4.html │ ├── defines_4.js │ ├── defines_5.html │ ├── defines_5.js │ ├── defines_6.html │ ├── defines_6.js │ ├── defines_7.html │ ├── defines_7.js │ ├── defines_8.html │ ├── defines_8.js │ ├── defines_9.html │ ├── defines_9.js │ ├── defines_a.html │ ├── defines_a.js │ ├── defines_b.html │ ├── defines_b.js │ ├── files_0.html │ ├── files_0.js │ ├── files_1.html │ ├── files_1.js │ ├── files_2.html │ ├── files_2.js │ ├── files_3.html │ ├── files_3.js │ ├── files_4.html │ ├── files_4.js │ ├── files_5.html │ ├── files_5.js │ ├── files_6.html │ ├── files_6.js │ ├── files_7.html │ ├── files_7.js │ ├── files_8.html │ ├── files_8.js │ ├── files_9.html │ ├── files_9.js │ ├── files_a.html │ ├── files_a.js │ ├── functions_0.html │ ├── functions_0.js │ ├── functions_1.html │ ├── functions_1.js │ ├── functions_2.html │ ├── functions_2.js │ ├── functions_3.html │ ├── functions_3.js │ ├── functions_4.html │ ├── functions_4.js │ ├── functions_5.html │ ├── functions_5.js │ ├── functions_6.html │ ├── functions_6.js │ ├── functions_7.html │ ├── functions_7.js │ ├── functions_8.html │ ├── functions_8.js │ ├── functions_9.html │ ├── functions_9.js │ ├── functions_a.html │ ├── functions_a.js │ ├── functions_b.html │ ├── functions_b.js │ ├── functions_c.html │ ├── functions_c.js │ ├── mag_sel.svg │ ├── nomatches.html │ ├── pages_0.html │ ├── pages_0.js │ ├── search.css │ ├── search.js │ ├── search_l.png │ ├── search_m.png │ ├── search_r.png │ ├── searchdata.js │ ├── variables_0.html │ ├── variables_0.js │ ├── variables_1.html │ ├── variables_1.js │ ├── variables_2.html │ ├── variables_2.js │ ├── variables_3.html │ ├── variables_3.js │ ├── variables_4.html │ ├── variables_4.js │ ├── variables_5.html │ ├── variables_5.js │ ├── variables_6.html │ ├── variables_6.js │ ├── variables_7.html │ ├── variables_7.js │ ├── variables_8.html │ ├── variables_8.js │ ├── variables_9.html │ ├── variables_9.js │ ├── variables_a.html │ ├── variables_a.js │ ├── variables_b.html │ ├── variables_b.js │ ├── variables_c.html │ ├── variables_c.js │ ├── variables_d.html │ └── variables_d.js ├── spi_8c.html ├── spi_8c_source.html ├── spi_8h.html ├── spi_8h_source.html ├── splitbar.png ├── struct_f_o_c___structure__t.html ├── struct_filter___structure__t.html ├── struct_p_i_d___structure__t.html ├── sync_off.png ├── sync_on.png ├── system_8c.html ├── system_8c_source.html ├── system_8h.html ├── system_8h_source.html ├── tab_a.png ├── tab_b.png ├── tab_h.png ├── tab_s.png ├── tabs.css ├── timer_8c.html ├── timer_8c_source.html ├── timer_8h.html ├── timer_8h_source.html ├── uart_8c.html ├── uart_8c_source.html ├── uart_8h.html └── uart_8h_source.html ├── manufacture ├── miniFOC-Sensor │ ├── BOM_miniFOC-Sensor.csv │ ├── BOM_miniFOC-Sensor.xlsx │ ├── Gerber_BoardOutline.GKO │ ├── Gerber_BottomLayer.GBL │ ├── Gerber_BottomPasteMaskLayer.GBP │ ├── Gerber_BottomSilkLayer.GBO │ ├── Gerber_BottomSolderMaskLayer.GBS │ ├── Gerber_Drill_NPTH.DRL │ ├── Gerber_Drill_PTH.DRL │ ├── Gerber_TopLayer.GTL │ ├── Gerber_TopPasteMaskLayer.GTP │ ├── Gerber_TopSilkLayer.GTO │ ├── Gerber_TopSolderMaskLayer.GTS │ └── PickAndPlace_miniFOC-Sensor.csv └── miniFOC │ ├── BOM_miniFOC.csv │ ├── BOM_miniFOC.xlsx │ ├── Gerber_BoardOutline.GKO │ ├── Gerber_BottomLayer.GBL │ ├── Gerber_BottomPasteMaskLayer.GBP │ ├── Gerber_BottomSilkLayer.GBO │ ├── Gerber_BottomSolderMaskLayer.GBS │ ├── Gerber_Drill_PTH.DRL │ ├── Gerber_TopLayer.GTL │ ├── Gerber_TopPasteMaskLayer.GTP │ ├── Gerber_TopSilkLayer.GTO │ ├── Gerber_TopSolderMaskLayer.GTS │ └── PickAndPlace_miniFOC.csv ├── program ├── .gitignore ├── .idea │ ├── .gitignore │ ├── .name │ ├── inspectionProfiles │ │ └── Project_Default.xml │ ├── misc.xml │ ├── modules.xml │ ├── program.iml │ ├── saveactions_settings.xml │ └── vcs.xml ├── CMakeLists.txt ├── Doxygen.cfg ├── algorithm │ ├── encoder.c │ ├── encoder.h │ ├── fast_math.c │ ├── fast_math.h │ ├── filter.c │ ├── filter.h │ ├── foc.c │ ├── foc.h │ ├── pid.c │ ├── pid.h │ ├── report.c │ └── report.h ├── board.cfg ├── build_fw.bat ├── config.h ├── error.h ├── hardware │ ├── flash.c │ ├── flash.h │ ├── led.h │ ├── spi.c │ ├── spi.h │ ├── timer.c │ ├── timer.h │ ├── uart.c │ └── uart.h ├── library │ ├── inc │ │ ├── gd32f1x0_dma.h │ │ ├── gd32f1x0_fmc.h │ │ ├── gd32f1x0_gpio.h │ │ ├── gd32f1x0_misc.h │ │ ├── gd32f1x0_rcu.h │ │ ├── gd32f1x0_spi.h │ │ ├── gd32f1x0_timer.h │ │ └── gd32f1x0_usart.h │ └── src │ │ ├── gd32f1x0_dma.c │ │ ├── gd32f1x0_fmc.c │ │ ├── gd32f1x0_gpio.c │ │ ├── gd32f1x0_misc.c │ │ ├── gd32f1x0_rcu.c │ │ ├── gd32f1x0_spi.c │ │ ├── gd32f1x0_timer.c │ │ └── gd32f1x0_usart.c ├── main.c └── system │ ├── cmsis_compiler.h │ ├── cmsis_gcc.h │ ├── cmsis_version.h │ ├── core_cm3.h │ ├── gd32f130g6u6.ld │ ├── gd32f1x0.h │ ├── gd32f1x0_it.c │ ├── gd32f1x0_it.h │ ├── gd32f1x0_libopt.h │ ├── main.h │ ├── startup_gd32f130.s │ ├── system.c │ ├── system.h │ ├── system_gd32f1x0.c │ └── system_gd32f1x0.h └── tools ├── .gitignore ├── CMakeLists.txt ├── CMakeLists.txt.user ├── app_win32.rc ├── icon.ico ├── main.cpp ├── mainwindow.cpp ├── mainwindow.h ├── mainwindow.ui ├── mdtp ├── decrypt.cpp └── encrypt.cpp ├── qcustomplot.cpp └── qcustomplot.h /.github/ISSUE_TEMPLATE/bug_report.yml: -------------------------------------------------------------------------------- 1 | name: Bug report 2 | description: Create a report to help us improve 3 | title: "[Bug] " 4 | body: 5 | - type: checkboxes 6 | id: ensure 7 | attributes: 8 | label: Verify steps 9 | description: "在提交之前,请确认:
Please verify that you've followed these steps:
" 10 | options: 11 | - label: "如果你可以自己 debug 并解决的话,提交 PR 吧。
Is this something you can **debug and fix**? Send a pull request! Bug fixes and documentation fixes are welcome." 12 | required: true 13 | - label: "我已经在 [Issue Tracker](……/) 中找过我要提出的问题。
I have searched on the [issue tracker](……/) for a related issue." 14 | required: true 15 | - label: "我已经仔细看过 [Documentation](https://github.com/ZhuYanzhen1/miniFOC/wiki) 并无法自行解决问题。
I have read the [documentation](https://github.com/ZhuYanzhen1/miniFOC/wiki) and was unable to solve the issue." 16 | required: true 17 | - label: "这是 miniFOC 核心的问题,并非我所使用的 miniFOC 衍生版本的特定问题。
This is an issue of the miniFOC core, not to the derivatives of miniFOC." 18 | required: true 19 | - type: input 20 | attributes: 21 | label: miniFOC version 22 | validations: 23 | required: true 24 | - type: dropdown 25 | id: os 26 | attributes: 27 | label: What OS are you seeing the problem on? 28 | multiple: true 29 | options: 30 | - macOS 31 | - Windows 32 | - Linux 33 | - type: textarea 34 | attributes: 35 | render: yaml 36 | label: "miniFOC config" 37 | description: "在下方附上 config.h 脱敏后配置文件的内容。
Paste the miniFOC config.h file content below." 38 | validations: 39 | required: true 40 | - type: textarea 41 | attributes: 42 | render: shell 43 | label: miniFOC log 44 | description: "在下方附上 miniFOC 从串口返回的日志信息,log level 使用 DEBUG。
Paste the miniFOC log from UART below with the log level set to `DEBUG`." 45 | - type: textarea 46 | attributes: 47 | label: Description 48 | validations: 49 | required: true 50 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | 3 | contact_links: 4 | - name: Get help in GitHub Discussions 5 | url: https://github.com/ZhuYanzhen1/miniFOC/discussions 6 | about: Have a question? Not sure if your issue affects everyone reproducibly? The quickest way to get help is on miniFOC GitHub Discussions! 7 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.yml: -------------------------------------------------------------------------------- 1 | name: Feature request 2 | description: Suggest an idea for this project 3 | title: "[Feature] " 4 | body: 5 | - type: checkboxes 6 | id: ensure 7 | attributes: 8 | label: Verify steps 9 | description: " 10 | 在提交之前,请确认:
11 | Please verify that you've followed these steps: 12 | " 13 | options: 14 | - label: " 15 | 我已经在 [Issue Tracker](……/) 中找过我要提出的请求
16 | I have searched on the [issue tracker](……/) for a related feature request. 17 | " 18 | required: true 19 | - label: " 20 | 我已经仔细看过 [Documentation](https://github.com/ZhuYanzhen1/miniFOC/wiki) 并无法自行解决问题 21 | I have read the [documentation](https://github.com/ZhuYanzhen1/miniFOC/wiki) and was unable to solve the issue. 22 | " 23 | required: true 24 | - type: textarea 25 | attributes: 26 | label: Description 27 | description: "请详细、清晰地表达你要提出的论述,例如这个问题如何影响到你?你想实现什么功能?目前 miniFOC 的行为是什么?
28 | Please express your statement in detail and clearly. For example, how does this problem affect you? What do you want to achieve? What is the current behavior of minifoc?" 29 | validations: 30 | required: true 31 | - type: textarea 32 | attributes: 33 | label: Possible Solution 34 | description: " 35 | 此项非必须,但是如果你有想法的话欢迎提出。
36 | Not obligatory, but suggest a fix/reason for the bug, or ideas how to implement the addition or change 37 | " 38 | -------------------------------------------------------------------------------- /.github/workflows/cmake.yml: -------------------------------------------------------------------------------- 1 | name: Compile Firmware 2 | 3 | on: [ push ] 4 | #schedule: 5 | # - cron: '40 15 * * *' # compile at 23:50 each day 6 | 7 | env: 8 | BUILD_TYPE: Release 9 | 10 | jobs: 11 | build: 12 | runs-on: ubuntu-20.04 13 | steps: 14 | - uses: actions/checkout@v2 15 | with: 16 | fetch-depth: 1 17 | - name: Configure Software 18 | run: | 19 | sudo apt-get update && sudo apt-get -y upgrade && sudo apt-get install -y cmake gcc g++ automake autoconf libtool make build-essential wget 20 | wget -q https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2 21 | - name: Install Compiler 22 | run: | 23 | tar jxf gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2 24 | mv gcc-arm-none-eabi-10-2020-q4-major ./gcc-arm-none-eabi 25 | rm gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2 26 | - name: Configure CMake 27 | run: | 28 | PATH="$PATH:/home/runner/work/miniFOC/miniFOC/gcc-arm-none-eabi/bin" && echo $PATH 29 | mkdir build -p && cd build && cmake ../program 30 | - name: Build Hex 31 | run: | 32 | PATH="$PATH:/home/runner/work/miniFOC/miniFOC/gcc-arm-none-eabi/bin" && echo $PATH 33 | cd build && ls && make && ls 34 | - name: Upload Hex 35 | uses: actions/upload-artifact@v2 36 | with: 37 | name: miniFOC-hex 38 | path: build/miniFOC.hex 39 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Prerequisites 2 | *.d 3 | 4 | # Object files 5 | *.o 6 | *.ko 7 | *.obj 8 | *.elf 9 | 10 | # Linker output 11 | *.ilk 12 | *.map 13 | *.exp 14 | 15 | # Precompiled Headers 16 | *.gch 17 | *.pch 18 | 19 | # Executables 20 | *.out 21 | *.hex 22 | 23 | # Debug files 24 | *.dSYM/ 25 | *.su 26 | *.idb 27 | *.pdb 28 | 29 | # Kernel Module Compile Results 30 | *.mod* 31 | *.cmd 32 | .tmp_versions/ 33 | modules.order 34 | Module.symvers 35 | Mkfile.old 36 | dkms.conf 37 | -------------------------------------------------------------------------------- /circuit/miniFOC-Sensor/miniFOC-Sensor_schematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/circuit/miniFOC-Sensor/miniFOC-Sensor_schematic.pdf -------------------------------------------------------------------------------- /circuit/miniFOC/miniFOC_schematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/circuit/miniFOC/miniFOC_schematic.pdf -------------------------------------------------------------------------------- /docs/Acme_LOGO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/docs/Acme_LOGO.png -------------------------------------------------------------------------------- /docs/_config.yml: -------------------------------------------------------------------------------- 1 | remote_theme: pages-themes/minimal@v0.2.0 2 | plugins: 3 | - jekyll-remote-theme 4 | title: [Firmware Download] 5 | description: [The firmware generated by each compilation will be published to this page.] -------------------------------------------------------------------------------- /docs/bc_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/docs/bc_s.png -------------------------------------------------------------------------------- /docs/bdwn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/docs/bdwn.png -------------------------------------------------------------------------------- /docs/closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/docs/closed.png -------------------------------------------------------------------------------- /docs/doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/docs/doc.png -------------------------------------------------------------------------------- /docs/folderclosed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/docs/folderclosed.png -------------------------------------------------------------------------------- /docs/folderopen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/docs/folderopen.png -------------------------------------------------------------------------------- /docs/image/Acme_LOGO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/docs/image/Acme_LOGO.png -------------------------------------------------------------------------------- /docs/image/LOGO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/docs/image/LOGO.png -------------------------------------------------------------------------------- /docs/image/cmake_install.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/docs/image/cmake_install.png -------------------------------------------------------------------------------- /docs/image/miniFOC-Sensor_schematic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/docs/image/miniFOC-Sensor_schematic.png -------------------------------------------------------------------------------- /docs/image/miniFOC_schematic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/docs/image/miniFOC_schematic.png -------------------------------------------------------------------------------- /docs/image/single_calculation_cycle.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/docs/image/single_calculation_cycle.jpg -------------------------------------------------------------------------------- /docs/image/ubuntu_check_install.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/docs/image/ubuntu_check_install.png -------------------------------------------------------------------------------- /docs/image/windows_check_install.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/docs/image/windows_check_install.png -------------------------------------------------------------------------------- /docs/image/windows_clion_install.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/docs/image/windows_clion_install.png -------------------------------------------------------------------------------- /docs/nav_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/docs/nav_f.png -------------------------------------------------------------------------------- /docs/nav_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/docs/nav_g.png -------------------------------------------------------------------------------- /docs/nav_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/docs/nav_h.png -------------------------------------------------------------------------------- /docs/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/docs/open.png -------------------------------------------------------------------------------- /docs/search/all_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['angle_5floop_5fcontrol_0',['ANGLE_LOOP_CONTROL',['../pid_8h.html#a7dad3a985101eaec7ac078f43747c928',1,'pid.h']]], 4 | ['angle_5fpid_5fhandler_1',['angle_pid_handler',['../pid_8c.html#aaa8f5bad87ffc78a20f06863ab6bad5c',1,'angle_pid_handler(): pid.c'],['../pid_8h.html#aaa8f5bad87ffc78a20f06863ab6bad5c',1,'angle_pid_handler(): pid.c']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/all_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['busfault_5fhandler_0',['BusFault_Handler',['../gd32f1x0__it_8c.html#a850cefb17a977292ae5eb4cafa9976c3',1,'BusFault_Handler(void): gd32f1x0_it.c'],['../gd32f1x0__it_8h.html#a850cefb17a977292ae5eb4cafa9976c3',1,'BusFault_Handler(void): gd32f1x0_it.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/all_10.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_11.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_11.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['tim13_5ffrequency_0',['TIM13_FREQUENCY',['../config_8h.html#ae9289eb166344bb9d0d6560b6da41118',1,'config.h']]], 4 | ['tim13_5fpriority_1',['TIM13_PRIORITY',['../config_8h.html#a5726838e06fba2bf7e5a7ebf44de9641',1,'config.h']]], 5 | ['tim2_5ffrequency_2',['TIM2_FREQUENCY',['../config_8h.html#abf175a4d203eb22407f26a7e09abe70e',1,'config.h']]], 6 | ['tim2_5fpriority_3',['TIM2_PRIORITY',['../config_8h.html#af73502ecef65b17c424513be3294841f',1,'config.h']]], 7 | ['timer_2ec_4',['timer.c',['../timer_8c.html',1,'']]], 8 | ['timer_2eh_5',['timer.h',['../timer_8h.html',1,'']]], 9 | ['timer13_5fconfig_6',['timer13_config',['../timer_8c.html#a97f6f408a34a56cfe1488f8aafa54756',1,'timer13_config(void): timer.c'],['../timer_8h.html#a97f6f408a34a56cfe1488f8aafa54756',1,'timer13_config(void): timer.c']]], 10 | ['timer13_5fdisable_7',['timer13_disable',['../timer_8c.html#a96e7b337ea7bf3c245ff1053e4843a1d',1,'timer13_disable(void): timer.c'],['../timer_8h.html#a96e7b337ea7bf3c245ff1053e4843a1d',1,'timer13_disable(void): timer.c']]], 11 | ['timer13_5firqhandler_8',['TIMER13_IRQHandler',['../gd32f1x0__it_8c.html#a94ca44d5889df2048bb8e52f7e2076e4',1,'TIMER13_IRQHandler(void): gd32f1x0_it.c'],['../gd32f1x0__it_8h.html#a94ca44d5889df2048bb8e52f7e2076e4',1,'TIMER13_IRQHandler(void): gd32f1x0_it.c']]], 12 | ['timer2_5fconfig_9',['timer2_config',['../timer_8c.html#af7559b2302c6fd04f459ae08a2eb8f6d',1,'timer2_config(void): timer.c'],['../timer_8h.html#af7559b2302c6fd04f459ae08a2eb8f6d',1,'timer2_config(void): timer.c']]], 13 | ['timer2_5fdisable_10',['timer2_disable',['../timer_8c.html#a0ff329af778ba1ea50c17d3184af78d5',1,'timer2_disable(void): timer.c'],['../timer_8h.html#a0ff329af778ba1ea50c17d3184af78d5',1,'timer2_disable(void): timer.c']]], 14 | ['timer2_5firqhandler_11',['TIMER2_IRQHandler',['../gd32f1x0__it_8c.html#a12c8b827e5eab9d3f93d56f858e735a3',1,'TIMER2_IRQHandler(void): gd32f1x0_it.c'],['../gd32f1x0__it_8h.html#a12c8b827e5eab9d3f93d56f858e735a3',1,'TIMER2_IRQHandler(void): gd32f1x0_it.c']]], 15 | ['torque_5floop_5fcontrol_12',['TORQUE_LOOP_CONTROL',['../pid_8h.html#a8ffc8824a06f7892f9691a65b83982a7',1,'pid.h']]], 16 | ['total_5fmachine_5fangle_13',['total_machine_angle',['../encoder_8c.html#a97999bca302a3ae095acd9977fee272a',1,'encoder.c']]] 17 | ]; 18 | -------------------------------------------------------------------------------- /docs/search/all_12.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_12.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['uart_2ec_0',['uart.c',['../uart_8c.html',1,'']]], 4 | ['uart_2eh_1',['uart.h',['../uart_8h.html',1,'']]], 5 | ['uart_5fbaudrate_2',['UART_BAUDRATE',['../config_8h.html#a2c7ed0283bd6f2f9d791860d6254ef4f',1,'config.h']]], 6 | ['uart_5fconfig_3',['uart_config',['../uart_8c.html#afb2565a333438fc66b5725bf1e41ca0f',1,'uart_config(void): uart.c'],['../uart_8h.html#afb2565a333438fc66b5725bf1e41ca0f',1,'uart_config(void): uart.c']]], 7 | ['uart_5fpriority_4',['UART_PRIORITY',['../config_8h.html#a7bb8116c0084a1decc494f532e229e1e',1,'config.h']]], 8 | ['uart_5fsendbyte_5',['uart_sendbyte',['../uart_8h.html#ad0829c8bd2841fd6525781b3dbf496b7',1,'uart.h']]], 9 | ['update_5fpwm_5fdutycycle_6',['update_pwm_dutycycle',['../timer_8c.html#ab3614c1dcfba485b2e299839d9c189e4',1,'update_pwm_dutycycle(float ch0, float ch1, float ch2): timer.c'],['../timer_8h.html#ab3614c1dcfba485b2e299839d9c189e4',1,'update_pwm_dutycycle(float ch0, float ch1, float ch2): timer.c']]], 10 | ['usagefault_5fhandler_7',['UsageFault_Handler',['../gd32f1x0__it_8c.html#a1d98923de2ed6b7309b66f9ba2971647',1,'UsageFault_Handler(void): gd32f1x0_it.c'],['../gd32f1x0__it_8h.html#a1d98923de2ed6b7309b66f9ba2971647',1,'UsageFault_Handler(void): gd32f1x0_it.c']]], 11 | ['usart0_5firqhandler_8',['USART0_IRQHandler',['../gd32f1x0__it_8c.html#aa521223328872dd7e4cd659fecbdfb84',1,'USART0_IRQHandler(void): gd32f1x0_it.c'],['../gd32f1x0__it_8h.html#aa521223328872dd7e4cd659fecbdfb84',1,'USART0_IRQHandler(void): gd32f1x0_it.c']]], 12 | ['use_5fsvpwm_9',['USE_SVPWM',['../config_8h.html#a214f3669dd4f982a92d438406be0f442',1,'config.h']]], 13 | ['user_5fexpect_10',['user_expect',['../struct_f_o_c___structure__t.html#a483644b553c2be32ffbaf641f23c6cea',1,'FOC_Structure_t']]], 14 | ['user_5fmemset_11',['user_memset',['../system_8c.html#a7e7cece1b30ef67968b244698f999b0e',1,'user_memset(void *buf, unsigned char data, unsigned char num): system.c'],['../system_8h.html#a7e7cece1b30ef67968b244698f999b0e',1,'user_memset(void *buf, unsigned char data, unsigned char num): system.c']]] 15 | ]; 16 | -------------------------------------------------------------------------------- /docs/search/all_13.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_13.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['vbus_0',['VBUS',['../config_8h.html#ad3d3342321e5502fa12f14a719ce48ec',1,'config.h']]], 4 | ['velocity_5ffilter_1',['velocity_filter',['../filter_8c.html#a70331d536c7d5e99a76bd8651fd6b714',1,'velocity_filter(): filter.c'],['../filter_8h.html#a70331d536c7d5e99a76bd8651fd6b714',1,'velocity_filter(): filter.c']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/all_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['cali_5ftorque_0',['CALI_TORQUE',['../config_8h.html#a637f29a41ea0451a8567972018c095f0',1,'config.h']]], 4 | ['coefficient1_1',['coefficient1',['../struct_filter___structure__t.html#a95c29040dec4c9e97cf2f64cf4212435',1,'Filter_Structure_t']]], 5 | ['coefficient2_2',['coefficient2',['../struct_filter___structure__t.html#a08c1824c5523caa58ec64b9fcfd48f92',1,'Filter_Structure_t']]], 6 | ['config_2eh_3',['config.h',['../config_8h.html',1,'']]], 7 | ['current_5fresult_4',['current_result',['../struct_filter___structure__t.html#a845b4ebfab6dc03b5babd7f9ff5e2b6c',1,'Filter_Structure_t']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/search/all_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['debugmon_5fhandler_0',['DebugMon_Handler',['../gd32f1x0__it_8c.html#adbdfb05858cc36fc520974df37ec3cb0',1,'DebugMon_Handler(void): gd32f1x0_it.c'],['../gd32f1x0__it_8h.html#adbdfb05858cc36fc520974df37ec3cb0',1,'DebugMon_Handler(void): gd32f1x0_it.c']]], 4 | ['delay_5fdecrement_1',['delay_decrement',['../system_8c.html#a713199ab95f480628d6658708ed8de8b',1,'delay_decrement(void): system.c'],['../system_8h.html#a713199ab95f480628d6658708ed8de8b',1,'delay_decrement(void): system.c']]], 5 | ['delayms_2',['delayms',['../system_8c.html#a837b6e9a8c812f0964f71e37ac853bff',1,'delayms(unsigned long count): system.c'],['../system_8h.html#a837b6e9a8c812f0964f71e37ac853bff',1,'delayms(unsigned long count): system.c']]], 6 | ['delayms_5fcounter_3',['delayms_counter',['../system_8c.html#adfdeec3bd66b51d01833f44ec130c0cb',1,'system.c']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/search/all_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['elecangle_5fcoefficient_0',['ELECANGLE_COEFFICIENT',['../foc_8h.html#a5446f29b725bafeb256b404b8b8107d1',1,'foc.h']]], 4 | ['encoder_2ec_1',['encoder.c',['../encoder_8c.html',1,'']]], 5 | ['encoder_2eh_2',['encoder.h',['../encoder_8h.html',1,'']]], 6 | ['encoder_5fdelay_3',['encoder_delay',['../encoder_8c.html#a496fbd2820274bbbc7352c91415e2d3e',1,'encoder.c']]], 7 | ['encoder_5fget_5felectronic_5fangle_4',['encoder_get_electronic_angle',['../encoder_8c.html#a8fbcb19c2f15c20c1a862e0cf64f6771',1,'encoder_get_electronic_angle(void): encoder.c'],['../encoder_8h.html#a8fbcb19c2f15c20c1a862e0cf64f6771',1,'encoder_get_electronic_angle(void): encoder.c']]], 8 | ['encoder_5fget_5fmechanical_5fangle_5',['encoder_get_mechanical_angle',['../encoder_8c.html#a28beb7b571ff9e6d39118c8d1324e154',1,'encoder_get_mechanical_angle(void): encoder.c'],['../encoder_8h.html#a28beb7b571ff9e6d39118c8d1324e154',1,'encoder_get_mechanical_angle(void): encoder.c']]], 9 | ['encoder_5fread_5fdata_6',['encoder_read_data',['../encoder_8c.html#aa5d6a09bb36a38d53242d3b2401a0d1a',1,'encoder.c']]], 10 | ['encoder_5freso_7',['ENCODER_RESO',['../config_8h.html#a922433e3d0d117291cc2725164f21718',1,'config.h']]], 11 | ['encoder_5fupdate_5fspeed_8',['encoder_update_speed',['../encoder_8c.html#a82c51d78a1f7bb4a5976974ab8d7ffe5',1,'encoder_update_speed(void): encoder.c'],['../encoder_8h.html#a82c51d78a1f7bb4a5976974ab8d7ffe5',1,'encoder_update_speed(void): encoder.c']]], 12 | ['encoder_5fzeroing_9',['encoder_zeroing',['../encoder_8c.html#ad28e37c20d065e5014ea3a5f2de91e82',1,'encoder_zeroing(void): encoder.c'],['../encoder_8h.html#ad28e37c20d065e5014ea3a5f2de91e82',1,'encoder_zeroing(void): encoder.c']]], 13 | ['error_2eh_10',['error.h',['../error_8h.html',1,'']]], 14 | ['expect_11',['expect',['../struct_p_i_d___structure__t.html#ad0e13a810b1a4602c1ce625f9877cbf5',1,'PID_Structure_t']]] 15 | ]; 16 | -------------------------------------------------------------------------------- /docs/search/all_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['gd32f1x0_5fit_2ec_0',['gd32f1x0_it.c',['../gd32f1x0__it_8c.html',1,'']]], 4 | ['gd32f1x0_5fit_2eh_1',['gd32f1x0_it.h',['../gd32f1x0__it_8h.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/all_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['hardfault_5fhandler_0',['HardFault_Handler',['../gd32f1x0__it_8c.html#a2bffc10d5bd4106753b7c30e86903bea',1,'HardFault_Handler(void): gd32f1x0_it.c'],['../gd32f1x0__it_8h.html#a2bffc10d5bd4106753b7c30e86903bea',1,'HardFault_Handler(void): gd32f1x0_it.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/all_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['int32_5fto_5ffloat_0',['int32_to_float',['../system_8c.html#ade748eddd7c60c3bf4c67bce9c463545',1,'int32_to_float(unsigned int data0): system.c'],['../system_8h.html#ade748eddd7c60c3bf4c67bce9c463545',1,'int32_to_float(unsigned int data0): system.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/all_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['judge_5favailable_0',['JUDGE_AVAILABLE',['../flash_8c.html#a1760a04db0927406235efe5f6ebea292',1,'flash.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/all_a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['kd_0',['kd',['../struct_p_i_d___structure__t.html#ae7a5c6018507bb1361fcca170e069b9c',1,'PID_Structure_t']]], 4 | ['ki_1',['ki',['../struct_p_i_d___structure__t.html#a050993b7ca6c97e62c1020017f716b91',1,'PID_Structure_t']]], 5 | ['kp_2',['kp',['../struct_p_i_d___structure__t.html#a1f7add0f84d583bc2eceb290d6c4cc06',1,'PID_Structure_t']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/all_b.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['last_5ferror_0',['last_error',['../struct_p_i_d___structure__t.html#a53bf2ded26ca455e1227890c20123cd9',1,'PID_Structure_t']]], 4 | ['last_5fmechanical_5fangle_1',['last_mechanical_angle',['../encoder_8c.html#af58d29dfca2d46874e2da41b45b48482',1,'encoder.c']]], 5 | ['last_5fresult_2',['last_result',['../struct_filter___structure__t.html#a72864a941ae97fcfd272e9493d6cb6c7',1,'Filter_Structure_t']]], 6 | ['led_2eh_3',['led.h',['../led_8h.html',1,'']]], 7 | ['led_5fconfig_4',['led_config',['../led_8h.html#a2cb4ec14f5c960e9fd5d5348eaf36f65',1,'led.h']]], 8 | ['led_5foff_5',['led_off',['../led_8h.html#a8f2c2b803b06ac3b6a6d0a0f879eee39',1,'led.h']]], 9 | ['led_5fon_6',['led_on',['../led_8h.html#a1b0a0f843bc25a0545eaa62a240ea3b2',1,'led.h']]], 10 | ['led_5ftoggle_7',['led_toggle',['../led_8h.html#a927d8328da439f32fe78f647b70db599',1,'led.h']]] 11 | ]; 12 | -------------------------------------------------------------------------------- /docs/search/all_c.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_d.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['nmi_5fhandler_0',['NMI_Handler',['../gd32f1x0__it_8c.html#a6ad7a5e3ee69cb6db6a6b9111ba898bc',1,'NMI_Handler(void): gd32f1x0_it.c'],['../gd32f1x0__it_8h.html#a6ad7a5e3ee69cb6db6a6b9111ba898bc',1,'NMI_Handler(void): gd32f1x0_it.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/all_e.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_f.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_f.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['report_2ec_0',['report.c',['../report_8c.html',1,'']]], 4 | ['report_2eh_1',['report.h',['../report_8h.html',1,'']]], 5 | ['report_5fangle_5fspeed_2',['report_angle_speed',['../report_8c.html#ad34fcba452be8c07f046c3a11950d41c',1,'report_angle_speed(void): report.c'],['../report_8h.html#ad34fcba452be8c07f046c3a11950d41c',1,'report_angle_speed(void): report.c']]], 6 | ['report_5flocal_5fvariable_3',['report_local_variable',['../report_8c.html#a39f7667109df28fd65d1b391498f043f',1,'report_local_variable(void): report.c'],['../report_8h.html#a39f7667109df28fd65d1b391498f043f',1,'report_local_variable(void): report.c']]], 7 | ['rotate_5fspeed_4',['rotate_speed',['../struct_f_o_c___structure__t.html#af32f899f7a231c9df64a594c7b13bfa4',1,'FOC_Structure_t']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/search/classes_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/classes_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['filter_5fstructure_5ft_0',['Filter_Structure_t',['../struct_filter___structure__t.html',1,'']]], 4 | ['foc_5fstructure_5ft_1',['FOC_Structure_t',['../struct_f_o_c___structure__t.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/classes_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/classes_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['pid_5fstructure_5ft_0',['PID_Structure_t',['../struct_p_i_d___structure__t.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/close.svg: -------------------------------------------------------------------------------- 1 | 2 | 13 | 15 | 16 | 18 | image/svg+xml 19 | 21 | 22 | 23 | 24 | 25 | 27 | 31 | 32 | -------------------------------------------------------------------------------- /docs/search/defines_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/defines_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['angle_5floop_5fcontrol_0',['ANGLE_LOOP_CONTROL',['../pid_8h.html#a7dad3a985101eaec7ac078f43747c928',1,'pid.h']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/defines_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/defines_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['cali_5ftorque_0',['CALI_TORQUE',['../config_8h.html#a637f29a41ea0451a8567972018c095f0',1,'config.h']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/defines_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/defines_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['elecangle_5fcoefficient_0',['ELECANGLE_COEFFICIENT',['../foc_8h.html#a5446f29b725bafeb256b404b8b8107d1',1,'foc.h']]], 4 | ['encoder_5freso_1',['ENCODER_RESO',['../config_8h.html#a922433e3d0d117291cc2725164f21718',1,'config.h']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/defines_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/defines_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['fast_5fconstrain_0',['fast_constrain',['../fast__math_8h.html#a11b75b7ef242489024467ef9285dfeed',1,'fast_math.h']]], 4 | ['fast_5fcos_1',['fast_cos',['../fast__math_8h.html#a684c3efa1e89aa4ed8534c429f614aad',1,'fast_math.h']]], 5 | ['fmc_5fwrite_5fstart_5faddr_2',['FMC_WRITE_START_ADDR',['../config_8h.html#a17c58df3fba73bc0fe08b011bc3d404f',1,'config.h']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/defines_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/defines_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['judge_5favailable_0',['JUDGE_AVAILABLE',['../flash_8c.html#a1760a04db0927406235efe5f6ebea292',1,'flash.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/defines_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/defines_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['led_5fconfig_0',['led_config',['../led_8h.html#a2cb4ec14f5c960e9fd5d5348eaf36f65',1,'led.h']]], 4 | ['led_5foff_1',['led_off',['../led_8h.html#a8f2c2b803b06ac3b6a6d0a0f879eee39',1,'led.h']]], 5 | ['led_5fon_2',['led_on',['../led_8h.html#a1b0a0f843bc25a0545eaa62a240ea3b2',1,'led.h']]], 6 | ['led_5ftoggle_3',['led_toggle',['../led_8h.html#a927d8328da439f32fe78f647b70db599',1,'led.h']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/search/defines_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/defines_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['mechangle_5fcoefficient_0',['MECHANGLE_COEFFICIENT',['../foc_8h.html#a56e6126a0ee9ac8857f6eb4cc0e720d5',1,'foc.h']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/defines_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/defines_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['polar_5fpairs_0',['POLAR_PAIRS',['../config_8h.html#a9be884f546a1b98b40f8cb7971e88bfd',1,'config.h']]], 4 | ['pwm_5ffrequency_1',['PWM_FREQUENCY',['../config_8h.html#a6177eb86ee16a1956c81749e4e332cf0',1,'config.h']]], 5 | ['pwm_5fperiod_2',['PWM_PERIOD',['../timer_8h.html#aacaca0988244bd3a888ca5befa89f44b',1,'timer.h']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/defines_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/defines_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['speed_5fcoefficient_0',['SPEED_COEFFICIENT',['../foc_8h.html#a2ce50cab9f20bc664e4888ffc07e656e',1,'foc.h']]], 4 | ['speed_5floop_5fcontrol_1',['SPEED_LOOP_CONTROL',['../pid_8h.html#aa5ef3ead33ee14a82e7ee277d31e02d1',1,'pid.h']]], 5 | ['speed_5fup_5ffreq_2',['SPEED_UP_FREQ',['../config_8h.html#adddd943909a2fac22c5fe8e3949d105f',1,'config.h']]], 6 | ['spi_5fprescale_3',['SPI_PRESCALE',['../config_8h.html#a3b13b9a69505b192a40569ac6bae91f6',1,'config.h']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/search/defines_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/defines_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['tim13_5ffrequency_0',['TIM13_FREQUENCY',['../config_8h.html#ae9289eb166344bb9d0d6560b6da41118',1,'config.h']]], 4 | ['tim13_5fpriority_1',['TIM13_PRIORITY',['../config_8h.html#a5726838e06fba2bf7e5a7ebf44de9641',1,'config.h']]], 5 | ['tim2_5ffrequency_2',['TIM2_FREQUENCY',['../config_8h.html#abf175a4d203eb22407f26a7e09abe70e',1,'config.h']]], 6 | ['tim2_5fpriority_3',['TIM2_PRIORITY',['../config_8h.html#af73502ecef65b17c424513be3294841f',1,'config.h']]], 7 | ['torque_5floop_5fcontrol_4',['TORQUE_LOOP_CONTROL',['../pid_8h.html#a8ffc8824a06f7892f9691a65b83982a7',1,'pid.h']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/search/defines_a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/defines_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['uart_5fbaudrate_0',['UART_BAUDRATE',['../config_8h.html#a2c7ed0283bd6f2f9d791860d6254ef4f',1,'config.h']]], 4 | ['uart_5fpriority_1',['UART_PRIORITY',['../config_8h.html#a7bb8116c0084a1decc494f532e229e1e',1,'config.h']]], 5 | ['uart_5fsendbyte_2',['uart_sendbyte',['../uart_8h.html#ad0829c8bd2841fd6525781b3dbf496b7',1,'uart.h']]], 6 | ['use_5fsvpwm_3',['USE_SVPWM',['../config_8h.html#a214f3669dd4f982a92d438406be0f442',1,'config.h']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/search/defines_b.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/defines_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['vbus_0',['VBUS',['../config_8h.html#ad3d3342321e5502fa12f14a719ce48ec',1,'config.h']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/files_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/files_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['config_2eh_0',['config.h',['../config_8h.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/files_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/files_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['encoder_2ec_0',['encoder.c',['../encoder_8c.html',1,'']]], 4 | ['encoder_2eh_1',['encoder.h',['../encoder_8h.html',1,'']]], 5 | ['error_2eh_2',['error.h',['../error_8h.html',1,'']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/files_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/files_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['fast_5fmath_2ec_0',['fast_math.c',['../fast__math_8c.html',1,'']]], 4 | ['fast_5fmath_2eh_1',['fast_math.h',['../fast__math_8h.html',1,'']]], 5 | ['filter_2ec_2',['filter.c',['../filter_8c.html',1,'']]], 6 | ['filter_2eh_3',['filter.h',['../filter_8h.html',1,'']]], 7 | ['flash_2ec_4',['flash.c',['../flash_8c.html',1,'']]], 8 | ['flash_2eh_5',['flash.h',['../flash_8h.html',1,'']]], 9 | ['foc_2ec_6',['foc.c',['../foc_8c.html',1,'']]], 10 | ['foc_2eh_7',['foc.h',['../foc_8h.html',1,'']]] 11 | ]; 12 | -------------------------------------------------------------------------------- /docs/search/files_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/files_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['gd32f1x0_5fit_2ec_0',['gd32f1x0_it.c',['../gd32f1x0__it_8c.html',1,'']]], 4 | ['gd32f1x0_5fit_2eh_1',['gd32f1x0_it.h',['../gd32f1x0__it_8h.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/files_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/files_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['led_2eh_0',['led.h',['../led_8h.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/files_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/files_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['main_2ec_0',['main.c',['../main_8c.html',1,'']]], 4 | ['main_2eh_1',['main.h',['../main_8h.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/files_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/files_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['pid_2ec_0',['pid.c',['../pid_8c.html',1,'']]], 4 | ['pid_2eh_1',['pid.h',['../pid_8h.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/files_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/files_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['report_2ec_0',['report.c',['../report_8c.html',1,'']]], 4 | ['report_2eh_1',['report.h',['../report_8h.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/files_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/files_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['spi_2ec_0',['spi.c',['../spi_8c.html',1,'']]], 4 | ['spi_2eh_1',['spi.h',['../spi_8h.html',1,'']]], 5 | ['system_2ec_2',['system.c',['../system_8c.html',1,'']]], 6 | ['system_2eh_3',['system.h',['../system_8h.html',1,'']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/search/files_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/files_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['timer_2ec_0',['timer.c',['../timer_8c.html',1,'']]], 4 | ['timer_2eh_1',['timer.h',['../timer_8h.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/files_a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/files_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['uart_2ec_0',['uart.c',['../uart_8c.html',1,'']]], 4 | ['uart_2eh_1',['uart.h',['../uart_8h.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/functions_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/functions_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['busfault_5fhandler_0',['BusFault_Handler',['../gd32f1x0__it_8c.html#a850cefb17a977292ae5eb4cafa9976c3',1,'BusFault_Handler(void): gd32f1x0_it.c'],['../gd32f1x0__it_8h.html#a850cefb17a977292ae5eb4cafa9976c3',1,'BusFault_Handler(void): gd32f1x0_it.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/functions_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/functions_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['debugmon_5fhandler_0',['DebugMon_Handler',['../gd32f1x0__it_8c.html#adbdfb05858cc36fc520974df37ec3cb0',1,'DebugMon_Handler(void): gd32f1x0_it.c'],['../gd32f1x0__it_8h.html#adbdfb05858cc36fc520974df37ec3cb0',1,'DebugMon_Handler(void): gd32f1x0_it.c']]], 4 | ['delay_5fdecrement_1',['delay_decrement',['../system_8c.html#a713199ab95f480628d6658708ed8de8b',1,'delay_decrement(void): system.c'],['../system_8h.html#a713199ab95f480628d6658708ed8de8b',1,'delay_decrement(void): system.c']]], 5 | ['delayms_2',['delayms',['../system_8c.html#a837b6e9a8c812f0964f71e37ac853bff',1,'delayms(unsigned long count): system.c'],['../system_8h.html#a837b6e9a8c812f0964f71e37ac853bff',1,'delayms(unsigned long count): system.c']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/functions_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/functions_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['encoder_5fdelay_0',['encoder_delay',['../encoder_8c.html#a496fbd2820274bbbc7352c91415e2d3e',1,'encoder.c']]], 4 | ['encoder_5fget_5felectronic_5fangle_1',['encoder_get_electronic_angle',['../encoder_8c.html#a8fbcb19c2f15c20c1a862e0cf64f6771',1,'encoder_get_electronic_angle(void): encoder.c'],['../encoder_8h.html#a8fbcb19c2f15c20c1a862e0cf64f6771',1,'encoder_get_electronic_angle(void): encoder.c']]], 5 | ['encoder_5fget_5fmechanical_5fangle_2',['encoder_get_mechanical_angle',['../encoder_8c.html#a28beb7b571ff9e6d39118c8d1324e154',1,'encoder_get_mechanical_angle(void): encoder.c'],['../encoder_8h.html#a28beb7b571ff9e6d39118c8d1324e154',1,'encoder_get_mechanical_angle(void): encoder.c']]], 6 | ['encoder_5fread_5fdata_3',['encoder_read_data',['../encoder_8c.html#aa5d6a09bb36a38d53242d3b2401a0d1a',1,'encoder.c']]], 7 | ['encoder_5fupdate_5fspeed_4',['encoder_update_speed',['../encoder_8c.html#a82c51d78a1f7bb4a5976974ab8d7ffe5',1,'encoder_update_speed(void): encoder.c'],['../encoder_8h.html#a82c51d78a1f7bb4a5976974ab8d7ffe5',1,'encoder_update_speed(void): encoder.c']]], 8 | ['encoder_5fzeroing_5',['encoder_zeroing',['../encoder_8c.html#ad28e37c20d065e5014ea3a5f2de91e82',1,'encoder_zeroing(void): encoder.c'],['../encoder_8h.html#ad28e37c20d065e5014ea3a5f2de91e82',1,'encoder_zeroing(void): encoder.c']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /docs/search/functions_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/functions_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/functions_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['hardfault_5fhandler_0',['HardFault_Handler',['../gd32f1x0__it_8c.html#a2bffc10d5bd4106753b7c30e86903bea',1,'HardFault_Handler(void): gd32f1x0_it.c'],['../gd32f1x0__it_8h.html#a2bffc10d5bd4106753b7c30e86903bea',1,'HardFault_Handler(void): gd32f1x0_it.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/functions_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/functions_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['int32_5fto_5ffloat_0',['int32_to_float',['../system_8c.html#ade748eddd7c60c3bf4c67bce9c463545',1,'int32_to_float(unsigned int data0): system.c'],['../system_8h.html#ade748eddd7c60c3bf4c67bce9c463545',1,'int32_to_float(unsigned int data0): system.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/functions_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/functions_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['main_0',['main',['../main_8c.html#a840291bc02cba5474a4cb46a9b9566fe',1,'main.c']]], 4 | ['mdtp_5fcallback_5fhandler_1',['mdtp_callback_handler',['../uart_8h.html#a6d278b36110f5f0e56b59e058b867b65',1,'mdtp_callback_handler(unsigned char pid, const unsigned char *data): main.c'],['../main_8c.html#a6d278b36110f5f0e56b59e058b867b65',1,'mdtp_callback_handler(unsigned char pid, const unsigned char *data): main.c']]], 5 | ['mdtp_5fdata_5ftransmit_2',['mdtp_data_transmit',['../uart_8c.html#ab01834c3618e9e1078f1b7e9512337c6',1,'mdtp_data_transmit(unsigned char pid, const unsigned char *buffer): uart.c'],['../uart_8h.html#ab01834c3618e9e1078f1b7e9512337c6',1,'mdtp_data_transmit(unsigned char pid, const unsigned char *buffer): uart.c']]], 6 | ['mdtp_5freceive_5fhandler_3',['mdtp_receive_handler',['../uart_8c.html#a8b1fe807c1672229711abeb195185046',1,'mdtp_receive_handler(unsigned char data): uart.c'],['../uart_8h.html#a8b1fe807c1672229711abeb195185046',1,'mdtp_receive_handler(unsigned char data): uart.c']]], 7 | ['memmanage_5fhandler_4',['MemManage_Handler',['../gd32f1x0__it_8c.html#a3150f74512510287a942624aa9b44cc5',1,'MemManage_Handler(void): gd32f1x0_it.c'],['../gd32f1x0__it_8h.html#a3150f74512510287a942624aa9b44cc5',1,'MemManage_Handler(void): gd32f1x0_it.c']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/search/functions_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/functions_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['nmi_5fhandler_0',['NMI_Handler',['../gd32f1x0__it_8c.html#a6ad7a5e3ee69cb6db6a6b9111ba898bc',1,'NMI_Handler(void): gd32f1x0_it.c'],['../gd32f1x0__it_8h.html#a6ad7a5e3ee69cb6db6a6b9111ba898bc',1,'NMI_Handler(void): gd32f1x0_it.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/functions_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/functions_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['pendsv_5fhandler_0',['PendSV_Handler',['../gd32f1x0__it_8c.html#a6303e1f258cbdc1f970ce579cc015623',1,'PendSV_Handler(void): gd32f1x0_it.c'],['../gd32f1x0__it_8h.html#a6303e1f258cbdc1f970ce579cc015623',1,'PendSV_Handler(void): gd32f1x0_it.c']]], 4 | ['pid_5fcalculate_5fresult_1',['pid_calculate_result',['../pid_8c.html#abe6a9dce63d0eaad5a10d4c8c5ffcd07',1,'pid_calculate_result(PID_Structure_t *pid_handler, float collect): pid.c'],['../pid_8h.html#abe6a9dce63d0eaad5a10d4c8c5ffcd07',1,'pid_calculate_result(PID_Structure_t *pid_handler, float collect): pid.c']]], 5 | ['pid_5fconfig_2',['pid_config',['../pid_8c.html#a58a093011af03fae7427eb1980434a5e',1,'pid_config(unsigned char mode): pid.c'],['../pid_8h.html#a58a093011af03fae7427eb1980434a5e',1,'pid_config(unsigned char mode): pid.c']]], 6 | ['pwm_5fconfig_3',['pwm_config',['../timer_8c.html#a5047a45bb0e8e868a84cbe6c6d5f8ec8',1,'pwm_config(void): timer.c'],['../timer_8h.html#a5047a45bb0e8e868a84cbe6c6d5f8ec8',1,'pwm_config(void): timer.c']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/search/functions_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/functions_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['report_5fangle_5fspeed_0',['report_angle_speed',['../report_8c.html#ad34fcba452be8c07f046c3a11950d41c',1,'report_angle_speed(void): report.c'],['../report_8h.html#ad34fcba452be8c07f046c3a11950d41c',1,'report_angle_speed(void): report.c']]], 4 | ['report_5flocal_5fvariable_1',['report_local_variable',['../report_8c.html#a39f7667109df28fd65d1b391498f043f',1,'report_local_variable(void): report.c'],['../report_8h.html#a39f7667109df28fd65d1b391498f043f',1,'report_local_variable(void): report.c']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/functions_a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/functions_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['spi_5fconfig_0',['spi_config',['../spi_8c.html#aa913932d23eead8cf414e5d605b9175d',1,'spi_config(void): spi.c'],['../spi_8h.html#aa913932d23eead8cf414e5d605b9175d',1,'spi_config(void): spi.c']]], 4 | ['spi_5freadwrite_5fhalfworld_1',['spi_readwrite_halfworld',['../spi_8c.html#abbbc27ff0ee7fe2241ea2935b92d66cc',1,'spi_readwrite_halfworld(unsigned short data): spi.c'],['../spi_8h.html#abbbc27ff0ee7fe2241ea2935b92d66cc',1,'spi_readwrite_halfworld(unsigned short data): spi.c']]], 5 | ['svc_5fhandler_2',['SVC_Handler',['../gd32f1x0__it_8c.html#a3e5ddb3df0d62f2dc357e64a3f04a6ce',1,'SVC_Handler(void): gd32f1x0_it.c'],['../gd32f1x0__it_8h.html#a3e5ddb3df0d62f2dc357e64a3f04a6ce',1,'SVC_Handler(void): gd32f1x0_it.c']]], 6 | ['systick_5fconfig_3',['systick_config',['../system_8c.html#a35f0081c3632bdd1851b3b0180812224',1,'systick_config(void): system.c'],['../system_8h.html#a35f0081c3632bdd1851b3b0180812224',1,'systick_config(void): system.c']]], 7 | ['systick_5fhandler_4',['SysTick_Handler',['../gd32f1x0__it_8c.html#ab5e09814056d617c521549e542639b7e',1,'SysTick_Handler(void): gd32f1x0_it.c'],['../gd32f1x0__it_8h.html#ab5e09814056d617c521549e542639b7e',1,'SysTick_Handler(void): gd32f1x0_it.c']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/search/functions_b.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/functions_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['timer13_5fconfig_0',['timer13_config',['../timer_8c.html#a97f6f408a34a56cfe1488f8aafa54756',1,'timer13_config(void): timer.c'],['../timer_8h.html#a97f6f408a34a56cfe1488f8aafa54756',1,'timer13_config(void): timer.c']]], 4 | ['timer13_5fdisable_1',['timer13_disable',['../timer_8c.html#a96e7b337ea7bf3c245ff1053e4843a1d',1,'timer13_disable(void): timer.c'],['../timer_8h.html#a96e7b337ea7bf3c245ff1053e4843a1d',1,'timer13_disable(void): timer.c']]], 5 | ['timer13_5firqhandler_2',['TIMER13_IRQHandler',['../gd32f1x0__it_8c.html#a94ca44d5889df2048bb8e52f7e2076e4',1,'TIMER13_IRQHandler(void): gd32f1x0_it.c'],['../gd32f1x0__it_8h.html#a94ca44d5889df2048bb8e52f7e2076e4',1,'TIMER13_IRQHandler(void): gd32f1x0_it.c']]], 6 | ['timer2_5fconfig_3',['timer2_config',['../timer_8c.html#af7559b2302c6fd04f459ae08a2eb8f6d',1,'timer2_config(void): timer.c'],['../timer_8h.html#af7559b2302c6fd04f459ae08a2eb8f6d',1,'timer2_config(void): timer.c']]], 7 | ['timer2_5fdisable_4',['timer2_disable',['../timer_8c.html#a0ff329af778ba1ea50c17d3184af78d5',1,'timer2_disable(void): timer.c'],['../timer_8h.html#a0ff329af778ba1ea50c17d3184af78d5',1,'timer2_disable(void): timer.c']]], 8 | ['timer2_5firqhandler_5',['TIMER2_IRQHandler',['../gd32f1x0__it_8c.html#a12c8b827e5eab9d3f93d56f858e735a3',1,'TIMER2_IRQHandler(void): gd32f1x0_it.c'],['../gd32f1x0__it_8h.html#a12c8b827e5eab9d3f93d56f858e735a3',1,'TIMER2_IRQHandler(void): gd32f1x0_it.c']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /docs/search/functions_c.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/functions_c.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['uart_5fconfig_0',['uart_config',['../uart_8c.html#afb2565a333438fc66b5725bf1e41ca0f',1,'uart_config(void): uart.c'],['../uart_8h.html#afb2565a333438fc66b5725bf1e41ca0f',1,'uart_config(void): uart.c']]], 4 | ['update_5fpwm_5fdutycycle_1',['update_pwm_dutycycle',['../timer_8c.html#ab3614c1dcfba485b2e299839d9c189e4',1,'update_pwm_dutycycle(float ch0, float ch1, float ch2): timer.c'],['../timer_8h.html#ab3614c1dcfba485b2e299839d9c189e4',1,'update_pwm_dutycycle(float ch0, float ch1, float ch2): timer.c']]], 5 | ['usagefault_5fhandler_2',['UsageFault_Handler',['../gd32f1x0__it_8c.html#a1d98923de2ed6b7309b66f9ba2971647',1,'UsageFault_Handler(void): gd32f1x0_it.c'],['../gd32f1x0__it_8h.html#a1d98923de2ed6b7309b66f9ba2971647',1,'UsageFault_Handler(void): gd32f1x0_it.c']]], 6 | ['usart0_5firqhandler_3',['USART0_IRQHandler',['../gd32f1x0__it_8c.html#aa521223328872dd7e4cd659fecbdfb84',1,'USART0_IRQHandler(void): gd32f1x0_it.c'],['../gd32f1x0__it_8h.html#aa521223328872dd7e4cd659fecbdfb84',1,'USART0_IRQHandler(void): gd32f1x0_it.c']]], 7 | ['user_5fmemset_4',['user_memset',['../system_8c.html#a7e7cece1b30ef67968b244698f999b0e',1,'user_memset(void *buf, unsigned char data, unsigned char num): system.c'],['../system_8h.html#a7e7cece1b30ef67968b244698f999b0e',1,'user_memset(void *buf, unsigned char data, unsigned char num): system.c']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/search/nomatches.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
No Matches
11 |
12 | 13 | 14 | -------------------------------------------------------------------------------- /docs/search/pages_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/pages_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['function_20manual_20_2f_20函数手册_0',['Function manual / 函数手册',['../index.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/search_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/docs/search/search_l.png -------------------------------------------------------------------------------- /docs/search/search_m.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/docs/search/search_m.png -------------------------------------------------------------------------------- /docs/search/search_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/docs/search/search_r.png -------------------------------------------------------------------------------- /docs/search/searchdata.js: -------------------------------------------------------------------------------- 1 | var indexSectionsWithContent = 2 | { 3 | 0: "abcdefghijklmnprstuv", 4 | 1: "fp", 5 | 2: "cefglmprstu", 6 | 3: "bdefhimnprstu", 7 | 4: "acdefklmprstuv", 8 | 5: "acefjlmpstuv", 9 | 6: "f" 10 | }; 11 | 12 | var indexSectionNames = 13 | { 14 | 0: "all", 15 | 1: "classes", 16 | 2: "files", 17 | 3: "functions", 18 | 4: "variables", 19 | 5: "defines", 20 | 6: "pages" 21 | }; 22 | 23 | var indexSectionLabels = 24 | { 25 | 0: "All", 26 | 1: "Data Structures", 27 | 2: "Files", 28 | 3: "Functions", 29 | 4: "Variables", 30 | 5: "Macros", 31 | 6: "Pages" 32 | }; 33 | 34 | -------------------------------------------------------------------------------- /docs/search/variables_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/variables_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['angle_5fpid_5fhandler_0',['angle_pid_handler',['../pid_8c.html#aaa8f5bad87ffc78a20f06863ab6bad5c',1,'angle_pid_handler(): pid.c'],['../pid_8h.html#aaa8f5bad87ffc78a20f06863ab6bad5c',1,'angle_pid_handler(): pid.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/variables_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/variables_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['coefficient1_0',['coefficient1',['../struct_filter___structure__t.html#a95c29040dec4c9e97cf2f64cf4212435',1,'Filter_Structure_t']]], 4 | ['coefficient2_1',['coefficient2',['../struct_filter___structure__t.html#a08c1824c5523caa58ec64b9fcfd48f92',1,'Filter_Structure_t']]], 5 | ['current_5fresult_2',['current_result',['../struct_filter___structure__t.html#a845b4ebfab6dc03b5babd7f9ff5e2b6c',1,'Filter_Structure_t']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/variables_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/variables_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['delayms_5fcounter_0',['delayms_counter',['../system_8c.html#adfdeec3bd66b51d01833f44ec130c0cb',1,'system.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/variables_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/variables_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['expect_0',['expect',['../struct_p_i_d___structure__t.html#ad0e13a810b1a4602c1ce625f9877cbf5',1,'PID_Structure_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/variables_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/variables_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['foc_5fparameter_5favailable_5fflag_0',['foc_parameter_available_flag',['../foc_8c.html#a418bbe3f3019eaefea9f904a87cf0a05',1,'foc_parameter_available_flag(): foc.c'],['../foc_8h.html#a418bbe3f3019eaefea9f904a87cf0a05',1,'foc_parameter_available_flag(): foc.c']]], 4 | ['foc_5fstruct_1',['FOC_Struct',['../foc_8c.html#a6c9e1e8356380a4129a3a59d52ee1ec4',1,'FOC_Struct(): foc.c'],['../foc_8h.html#a6c9e1e8356380a4129a3a59d52ee1ec4',1,'FOC_Struct(): foc.c']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/variables_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/variables_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['kd_0',['kd',['../struct_p_i_d___structure__t.html#ae7a5c6018507bb1361fcca170e069b9c',1,'PID_Structure_t']]], 4 | ['ki_1',['ki',['../struct_p_i_d___structure__t.html#a050993b7ca6c97e62c1020017f716b91',1,'PID_Structure_t']]], 5 | ['kp_2',['kp',['../struct_p_i_d___structure__t.html#a1f7add0f84d583bc2eceb290d6c4cc06',1,'PID_Structure_t']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/variables_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/variables_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['last_5ferror_0',['last_error',['../struct_p_i_d___structure__t.html#a53bf2ded26ca455e1227890c20123cd9',1,'PID_Structure_t']]], 4 | ['last_5fmechanical_5fangle_1',['last_mechanical_angle',['../encoder_8c.html#af58d29dfca2d46874e2da41b45b48482',1,'encoder.c']]], 5 | ['last_5fresult_2',['last_result',['../struct_filter___structure__t.html#a72864a941ae97fcfd272e9493d6cb6c7',1,'Filter_Structure_t']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/variables_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/variables_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['machine_5fangle_5foffset_0',['machine_angle_offset',['../encoder_8c.html#a562eacc7259f25574b1ab8ce9d7c6a3e',1,'machine_angle_offset(): encoder.c'],['../encoder_8h.html#a562eacc7259f25574b1ab8ce9d7c6a3e',1,'machine_angle_offset(): encoder.c']]], 4 | ['maximum_1',['maximum',['../struct_p_i_d___structure__t.html#a466d4dab1bd38a43438c2e5e6ad5534e',1,'PID_Structure_t']]], 5 | ['mdtp_5freceive_5fdata_5fbuffer_2',['mdtp_receive_data_buffer',['../uart_8c.html#a8967fc1147a3c08266cd57e7210f4fae',1,'uart.c']]], 6 | ['mdtp_5freceive_5fnumber_5fcounter_3',['mdtp_receive_number_counter',['../uart_8c.html#a6e6e7fd37513522129125894f141f19f',1,'uart.c']]], 7 | ['mdtp_5freceive_5fstatus_4',['mdtp_receive_status',['../uart_8c.html#ae6fa1b5eca1c33c10c65e46a88eaf934',1,'uart.c']]], 8 | ['mechanical_5fangle_5',['mechanical_angle',['../struct_f_o_c___structure__t.html#af832998676bd09b4198a7a7274072766',1,'FOC_Structure_t']]], 9 | ['minifoc_5ffsm_5fstate_6',['minifoc_fsm_state',['../main_8c.html#a7eb1a10df8fd98a22d65df31180c5114',1,'main.c']]], 10 | ['minimum_7',['minimum',['../struct_p_i_d___structure__t.html#a1fac701369b1197497f7c698ad74386d',1,'PID_Structure_t']]] 11 | ]; 12 | -------------------------------------------------------------------------------- /docs/search/variables_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/variables_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['phase_5fsequence_0',['phase_sequence',['../foc_8c.html#ad335385ea3909d9485703d97735b34ca',1,'phase_sequence(): foc.c'],['../foc_8h.html#ad335385ea3909d9485703d97735b34ca',1,'phase_sequence(): foc.c']]], 4 | ['pid_5fcontrol_5fmode_5fflag_1',['pid_control_mode_flag',['../pid_8c.html#a2c7bcbec66fa40a2347b1cd253a5ae82',1,'pid_control_mode_flag(): pid.c'],['../pid_8h.html#a2c7bcbec66fa40a2347b1cd253a5ae82',1,'pid_control_mode_flag(): pid.c']]], 5 | ['pid_5fparameter_5favailable_5fflag_2',['pid_parameter_available_flag',['../pid_8c.html#a48934d9569b54761658f7fe0484db10c',1,'pid_parameter_available_flag(): pid.c'],['../pid_8h.html#a48934d9569b54761658f7fe0484db10c',1,'pid_parameter_available_flag(): pid.c']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/variables_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/variables_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['rotate_5fspeed_0',['rotate_speed',['../struct_f_o_c___structure__t.html#af32f899f7a231c9df64a594c7b13bfa4',1,'FOC_Structure_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/variables_a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/variables_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['sin_5ftab_0',['sin_tab',['../fast__math_8c.html#a4efa9d728789fa7109f4250033e6e7b1',1,'fast_math.c']]], 4 | ['speed_5fpid_5fhandler_1',['speed_pid_handler',['../pid_8c.html#ab051c8f4a730b934b146f330514efd95',1,'speed_pid_handler(): pid.c'],['../pid_8h.html#ab051c8f4a730b934b146f330514efd95',1,'speed_pid_handler(): pid.c']]], 5 | ['sum_5fmaximum_2',['sum_maximum',['../struct_p_i_d___structure__t.html#a51379d672c255e751fb020ef2394a8f0',1,'PID_Structure_t']]], 6 | ['summary_3',['summary',['../struct_p_i_d___structure__t.html#a5f567aec72ce48f24c2dbc06dcfa3a09',1,'PID_Structure_t']]], 7 | ['systick_5fcounter_4',['systick_counter',['../gd32f1x0__it_8c.html#abb5e2753d967e52e57ddb82924eb5cf7',1,'gd32f1x0_it.c']]], 8 | ['systick_5fmechanical_5fangle_5flast_5',['systick_mechanical_angle_last',['../encoder_8c.html#aeb44dbae80bf7edaf6189fb8e2278f99',1,'encoder.c']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /docs/search/variables_b.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/variables_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['total_5fmachine_5fangle_0',['total_machine_angle',['../encoder_8c.html#a97999bca302a3ae095acd9977fee272a',1,'encoder.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/variables_c.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/variables_c.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['user_5fexpect_0',['user_expect',['../struct_f_o_c___structure__t.html#a483644b553c2be32ffbaf641f23c6cea',1,'FOC_Structure_t']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/variables_d.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/variables_d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['velocity_5ffilter_0',['velocity_filter',['../filter_8c.html#a70331d536c7d5e99a76bd8651fd6b714',1,'velocity_filter(): filter.c'],['../filter_8h.html#a70331d536c7d5e99a76bd8651fd6b714',1,'velocity_filter(): filter.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/splitbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/docs/splitbar.png -------------------------------------------------------------------------------- /docs/sync_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/docs/sync_off.png -------------------------------------------------------------------------------- /docs/sync_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/docs/sync_on.png -------------------------------------------------------------------------------- /docs/tab_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/docs/tab_a.png -------------------------------------------------------------------------------- /docs/tab_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/docs/tab_b.png -------------------------------------------------------------------------------- /docs/tab_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/docs/tab_h.png -------------------------------------------------------------------------------- /docs/tab_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/docs/tab_s.png -------------------------------------------------------------------------------- /manufacture/miniFOC-Sensor/BOM_miniFOC-Sensor.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/manufacture/miniFOC-Sensor/BOM_miniFOC-Sensor.csv -------------------------------------------------------------------------------- /manufacture/miniFOC-Sensor/BOM_miniFOC-Sensor.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/manufacture/miniFOC-Sensor/BOM_miniFOC-Sensor.xlsx -------------------------------------------------------------------------------- /manufacture/miniFOC-Sensor/Gerber_BoardOutline.GKO: -------------------------------------------------------------------------------- 1 | G04 Layer: BoardOutline* 2 | G04 EasyEDA v6.4.23, 2021-09-04T00:31:51+08:00* 3 | G04 872143699bd64a1e8f6259a32930bd7b,34bb6763e28e4bbdb854ef51fa08daf4,10* 4 | G04 Gerber Generator version 0.2* 5 | G04 Scale: 100 percent, Rotated: No, Reflected: No * 6 | G04 Dimensions in millimeters * 7 | G04 leading zeros omitted , absolute positions ,4 integer and 5 decimal * 8 | %FSLAX45Y45*% 9 | %MOMM*% 10 | 11 | %ADD10C,0.2540*% 12 | D10* 13 | G75* 14 | G01 15 | X2999994Y1499997D02* 16 | G03X2999994Y1499997I-1499997J0D01* 17 | 18 | %LPD*% 19 | M02* 20 | -------------------------------------------------------------------------------- /manufacture/miniFOC-Sensor/Gerber_BottomPasteMaskLayer.GBP: -------------------------------------------------------------------------------- 1 | G04 Layer: BottomPasteMaskLayer* 2 | G04 EasyEDA v6.4.23, 2021-09-04T00:31:51+08:00* 3 | G04 872143699bd64a1e8f6259a32930bd7b,34bb6763e28e4bbdb854ef51fa08daf4,10* 4 | G04 Gerber Generator version 0.2* 5 | G04 Scale: 100 percent, Rotated: No, Reflected: No * 6 | G04 Dimensions in millimeters * 7 | G04 leading zeros omitted , absolute positions ,4 integer and 5 decimal * 8 | %FSLAX45Y45*% 9 | %MOMM*% 10 | 11 | %ADD17C,0.5684*% 12 | 13 | %LPD*% 14 | D17* 15 | X1701416Y1690496D02* 16 | G01* 17 | X1839597Y1690496D01* 18 | X1701416Y1563496D02* 19 | G01* 20 | X1839597Y1563496D01* 21 | X1701416Y1436496D02* 22 | G01* 23 | X1839597Y1436496D01* 24 | X1701416Y1309496D02* 25 | G01* 26 | X1839597Y1309496D01* 27 | X1160396Y1690496D02* 28 | G01* 29 | X1298577Y1690496D01* 30 | X1160396Y1563496D02* 31 | G01* 32 | X1298577Y1563496D01* 33 | X1160396Y1436496D02* 34 | G01* 35 | X1298577Y1436496D01* 36 | X1160396Y1309496D02* 37 | G01* 38 | X1298577Y1309496D01* 39 | G36* 40 | X1986998Y1341600D02* 41 | G01* 42 | X1986998Y1261600D01* 43 | X2077001Y1261600D01* 44 | X2077001Y1341600D01* 45 | G37* 46 | G36* 47 | X1986998Y1481599D02* 48 | G01* 49 | X1986998Y1401599D01* 50 | X2077001Y1401599D01* 51 | X2077001Y1481599D01* 52 | G37* 53 | M02* 54 | -------------------------------------------------------------------------------- /manufacture/miniFOC-Sensor/Gerber_BottomSolderMaskLayer.GBS: -------------------------------------------------------------------------------- 1 | G04 Layer: BottomSolderMaskLayer* 2 | G04 EasyEDA v6.4.23, 2021-09-04T00:31:51+08:00* 3 | G04 872143699bd64a1e8f6259a32930bd7b,34bb6763e28e4bbdb854ef51fa08daf4,10* 4 | G04 Gerber Generator version 0.2* 5 | G04 Scale: 100 percent, Rotated: No, Reflected: No * 6 | G04 Dimensions in millimeters * 7 | G04 leading zeros omitted , absolute positions ,4 integer and 5 decimal * 8 | %FSLAX45Y45*% 9 | %MOMM*% 10 | 11 | %ADD27C,0.6700*% 12 | 13 | %LPD*% 14 | D27* 15 | X1701416Y1690496D02* 16 | G01* 17 | X1839597Y1690496D01* 18 | X1701416Y1563496D02* 19 | G01* 20 | X1839597Y1563496D01* 21 | X1701416Y1436496D02* 22 | G01* 23 | X1839597Y1436496D01* 24 | X1701416Y1309496D02* 25 | G01* 26 | X1839597Y1309496D01* 27 | X1160396Y1690496D02* 28 | G01* 29 | X1298577Y1690496D01* 30 | X1160396Y1563496D02* 31 | G01* 32 | X1298577Y1563496D01* 33 | X1160396Y1436496D02* 34 | G01* 35 | X1298577Y1436496D01* 36 | X1160396Y1309496D02* 37 | G01* 38 | X1298577Y1309496D01* 39 | G36* 40 | X1981961Y1256537D02* 41 | G01* 42 | X1981961Y1346707D01* 43 | X2082038Y1346707D01* 44 | X2082038Y1256537D01* 45 | G37* 46 | G36* 47 | X1981961Y1396492D02* 48 | G01* 49 | X1981961Y1486662D01* 50 | X2082038Y1486662D01* 51 | X2082038Y1396492D01* 52 | G37* 53 | M02* 54 | -------------------------------------------------------------------------------- /manufacture/miniFOC-Sensor/Gerber_Drill_NPTH.DRL: -------------------------------------------------------------------------------- 1 | M48 2 | METRIC,LZ,000.000 3 | ;FILE_FORMAT=3:3 4 | ;TYPE=NON_PLATED 5 | ;Layer: Drill NPTH 6 | ;EasyEDA v6.4.23, 2021-09-04T00:31:51+08:00 7 | ;872143699bd64a1e8f6259a32930bd7b,34bb6763e28e4bbdb854ef51fa08daf4,10 8 | ;Gerber Generator version 0.2 9 | ;Holesize 1 = 3.200 mm 10 | T01C3.200 11 | % 12 | G05 13 | G90 14 | T01 15 | X009144Y009514 16 | X020458Y020828 17 | X020458Y009514 18 | X009144Y020828 19 | M30 20 | -------------------------------------------------------------------------------- /manufacture/miniFOC-Sensor/Gerber_Drill_PTH.DRL: -------------------------------------------------------------------------------- 1 | M48 2 | METRIC,LZ,000.000 3 | ;FILE_FORMAT=3:3 4 | ;TYPE=PLATED 5 | ;Layer: Drill PTH 6 | ;EasyEDA v6.4.23, 2021-09-04T00:31:51+08:00 7 | ;872143699bd64a1e8f6259a32930bd7b,34bb6763e28e4bbdb854ef51fa08daf4,10 8 | ;Gerber Generator version 0.2 9 | ;Holesize 1 = 0.305 mm 10 | T01C0.305 11 | % 12 | G05 13 | G90 14 | T01 15 | X019177Y015240 16 | X018333Y013096 17 | X014478Y007366 18 | X015748Y007366 19 | X016891Y007493 20 | X016891Y008763 21 | M30 22 | -------------------------------------------------------------------------------- /manufacture/miniFOC-Sensor/Gerber_TopPasteMaskLayer.GTP: -------------------------------------------------------------------------------- 1 | G04 Layer: TopPasteMaskLayer* 2 | G04 EasyEDA v6.4.23, 2021-09-04T00:31:51+08:00* 3 | G04 872143699bd64a1e8f6259a32930bd7b,34bb6763e28e4bbdb854ef51fa08daf4,10* 4 | G04 Gerber Generator version 0.2* 5 | G04 Scale: 100 percent, Rotated: No, Reflected: No * 6 | G04 Dimensions in millimeters * 7 | G04 leading zeros omitted , absolute positions ,4 integer and 5 decimal * 8 | %FSLAX45Y45*% 9 | %MOMM*% 10 | 11 | %ADD16R,0.6000X1.0000*% 12 | 13 | %LPD*% 14 | G36* 15 | X1503199Y1226101D02* 16 | G01* 17 | X1583199Y1226101D01* 18 | X1583199Y1136098D01* 19 | X1503199Y1136098D01* 20 | G37* 21 | G36* 22 | X1363200Y1226101D02* 23 | G01* 24 | X1443200Y1226101D01* 25 | X1443200Y1136098D01* 26 | X1363200Y1136098D01* 27 | G37* 28 | G36* 29 | X1291854Y689610D02* 30 | G01* 31 | X1351798Y689610D01* 32 | X1351798Y519429D01* 33 | X1291854Y519429D01* 34 | G37* 35 | G36* 36 | X1166926Y689610D02* 37 | G01* 38 | X1226870Y689610D01* 39 | X1226870Y519429D01* 40 | X1166926Y519429D01* 41 | G37* 42 | G36* 43 | X1966584Y419501D02* 44 | G01* 45 | X2066660Y419501D01* 46 | X2066660Y149499D01* 47 | X1966584Y149499D01* 48 | G37* 49 | G36* 50 | X951862Y419501D02* 51 | G01* 52 | X1051938Y419501D01* 53 | X1051938Y149499D01* 54 | X951862Y149499D01* 55 | G37* 56 | G36* 57 | X1416834Y689610D02* 58 | G01* 59 | X1476778Y689610D01* 60 | X1476778Y519429D01* 61 | X1416834Y519429D01* 62 | G37* 63 | G36* 64 | X1541820Y689610D02* 65 | G01* 66 | X1601764Y689610D01* 67 | X1601764Y519429D01* 68 | X1541820Y519429D01* 69 | G37* 70 | G36* 71 | X1666798Y689607D02* 72 | G01* 73 | X1726742Y689607D01* 74 | X1726742Y519427D01* 75 | X1666798Y519427D01* 76 | G37* 77 | G36* 78 | X1791776Y689607D02* 79 | G01* 80 | X1851720Y689607D01* 81 | X1851720Y519427D01* 82 | X1791776Y519427D01* 83 | G37* 84 | D16* 85 | G01* 86 | X1405001Y1630019D03* 87 | G01* 88 | X1594993Y1630019D03* 89 | G01* 90 | X1594993Y1369999D03* 91 | G01* 92 | X1499996Y1369999D03* 93 | G01* 94 | X1405001Y1369999D03* 95 | M02* 96 | -------------------------------------------------------------------------------- /manufacture/miniFOC-Sensor/PickAndPlace_miniFOC-Sensor.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/manufacture/miniFOC-Sensor/PickAndPlace_miniFOC-Sensor.csv -------------------------------------------------------------------------------- /manufacture/miniFOC/BOM_miniFOC.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/manufacture/miniFOC/BOM_miniFOC.csv -------------------------------------------------------------------------------- /manufacture/miniFOC/BOM_miniFOC.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/manufacture/miniFOC/BOM_miniFOC.xlsx -------------------------------------------------------------------------------- /manufacture/miniFOC/Gerber_BoardOutline.GKO: -------------------------------------------------------------------------------- 1 | G04 Layer: BoardOutline* 2 | G04 EasyEDA v6.4.25, 2021-10-30T01:07:18+08:00* 3 | G04 7f02064591534d1f9d428ba05e81f3eb,34bb6763e28e4bbdb854ef51fa08daf4,10* 4 | G04 Gerber Generator version 0.2* 5 | G04 Scale: 100 percent, Rotated: No, Reflected: No * 6 | G04 Dimensions in millimeters * 7 | G04 leading zeros omitted , absolute positions ,4 integer and 5 decimal * 8 | %FSLAX45Y45*% 9 | %MOMM*% 10 | 11 | %ADD10C,0.2540*% 12 | D10* 13 | X2508001Y3787800D02* 14 | G01* 15 | X2508001Y187799D01* 16 | X2307998Y-12199D02* 17 | G01* 18 | X208000Y-12199D01* 19 | X208000Y3987800D02* 20 | G01* 21 | X2307998Y3987800D01* 22 | X8001Y190500D02* 23 | G01* 24 | X8001Y3790500D01* 25 | G75* 26 | G01* 27 | X2508001Y187800D02* 28 | G02* 29 | X2307999Y-12200I-200000J0D01* 30 | G75* 31 | G01* 32 | X2307999Y3987800D02* 33 | G02* 34 | X2508001Y3787800I2J-200000D01* 35 | G75* 36 | G01* 37 | X8001Y3787800D02* 38 | G02* 39 | X208001Y3987800I200000J0D01* 40 | G75* 41 | G01* 42 | X208001Y-12200D02* 43 | G02* 44 | X8001Y187800I0J200000D01* 45 | 46 | %LPD*% 47 | M02* 48 | -------------------------------------------------------------------------------- /manufacture/miniFOC/PickAndPlace_miniFOC.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/manufacture/miniFOC/PickAndPlace_miniFOC.csv -------------------------------------------------------------------------------- /program/.gitignore: -------------------------------------------------------------------------------- 1 | cmake-build-debug 2 | html 3 | build 4 | -------------------------------------------------------------------------------- /program/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Datasource local storage ignored files 5 | /dataSources/ 6 | /dataSources.local.xml 7 | # Editor-based HTTP Client requests 8 | /httpRequests/ 9 | workspace.xml -------------------------------------------------------------------------------- /program/.idea/.name: -------------------------------------------------------------------------------- 1 | workspace.xml -------------------------------------------------------------------------------- /program/.idea/inspectionProfiles/Project_Default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /program/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /program/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /program/.idea/program.iml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /program/.idea/saveactions_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 14 | 15 | -------------------------------------------------------------------------------- /program/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /program/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(CMAKE_SYSTEM_NAME Generic) 2 | set(CMAKE_SYSTEM_VERSION 1) 3 | cmake_minimum_required(VERSION 3.16) 4 | 5 | # specify cross compilers and tools 6 | set(CMAKE_C_COMPILER arm-none-eabi-gcc) 7 | set(CMAKE_ASM_COMPILER arm-none-eabi-gcc) 8 | set(CMAKE_AR arm-none-eabi-ar) 9 | set(CMAKE_OBJCOPY arm-none-eabi-objcopy) 10 | set(CMAKE_OBJDUMP arm-none-eabi-objdump) 11 | set(SIZE arm-none-eabi-size) 12 | set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) 13 | 14 | # project settings 15 | project(miniFOC C ASM) 16 | set(CMAKE_C_STANDARD 11) 17 | 18 | add_compile_options(-mfloat-abi=soft) 19 | add_compile_options(-mcpu=cortex-m3 -mthumb -mthumb-interwork -specs=nosys.specs) 20 | add_compile_options(-ffunction-sections -fdata-sections -fno-common -fmessage-length=0) 21 | add_compile_options(-O2) 22 | 23 | include_directories(system library/inc hardware ./ algorithm) 24 | 25 | add_definitions(-DUSE_STDPERIPH_DRIVER -DGD32F130_150) 26 | 27 | file(GLOB_RECURSE SOURCES "library/src/*.c" "system/*.c" "main.c" 28 | "system/startup_gd32f130.s" "hardware/*.c" "algorithm/*.c") 29 | 30 | set(LINKER_SCRIPT ${CMAKE_SOURCE_DIR}/system/gd32f130g6u6.ld) 31 | 32 | add_link_options(-Wl,-gc-sections,--print-memory-usage,-Map=${PROJECT_BINARY_DIR}/${PROJECT_NAME}.map) 33 | add_link_options(-mcpu=cortex-m3 -mthumb -mthumb-interwork --specs=nano.specs) 34 | add_link_options(-T ${LINKER_SCRIPT}) 35 | add_executable(${PROJECT_NAME}.elf ${SOURCES} ${LINKER_SCRIPT}) 36 | set(HEX_FILE ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.hex) 37 | add_custom_command(TARGET ${PROJECT_NAME}.elf POST_BUILD 38 | COMMAND ${CMAKE_OBJCOPY} -Oihex $ ${HEX_FILE} 39 | COMMENT "Building ${HEX_FILE}") 40 | -------------------------------------------------------------------------------- /program/algorithm/encoder.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************//** 2 | \file encoder.h 3 | \brief this is the header file of encoder.c. 4 | \author Lao·Zhu 5 | \version V1.0.1 6 | \date 10. October 2021 7 | ******************************************************************************/ 8 | 9 | #ifndef MINIFOC_ALGORITHM_ENCODER_H_ 10 | #define MINIFOC_ALGORITHM_ENCODER_H_ 11 | 12 | extern volatile unsigned short machine_angle_offset; 13 | void encoder_zeroing(void); 14 | unsigned short encoder_get_mechanical_angle(void); 15 | float encoder_get_electronic_angle(void); 16 | void encoder_update_speed(void); 17 | 18 | #endif //MINIFOC_ALGORITHM_ENCODER_H_ 19 | -------------------------------------------------------------------------------- /program/algorithm/fast_math.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************//** 2 | \file fast_math.h 3 | \brief this is the header file of fast_math.c, the macros of fast amplitude 4 | limiting algorithm and cosine function evaluation algorithm are defined. 5 | \author Lao·Zhu 6 | \version V1.0.1 7 | \date 10. October 2021 8 | ******************************************************************************/ 9 | 10 | #ifndef MINIFOC_ALGORITHM_FAST_MATH_H_ 11 | #define MINIFOC_ALGORITHM_FAST_MATH_H_ 12 | 13 | /*! 14 | \brief fast clipping algorithm 15 | \param[in] x: number of to be clipped 16 | \param[in] low: minimum number 17 | \param[in] high: maximum number 18 | \retval input value after clipping 19 | */ 20 | #define fast_constrain(x, low, high) ((x)<(low)?(low):((x) >(high)?(high):(x))) 21 | 22 | /*! 23 | \brief fast calculation of cosine 24 | \param[in] x: angle to be calculated 25 | \retval cosine value of angle theta 26 | */ 27 | #define fast_cos(x) fast_sin(1.5707963f - x); 28 | 29 | float fast_sin(float theta); 30 | 31 | #endif //MINIFOC_ALGORITHM_FAST_MATH_H_ 32 | -------------------------------------------------------------------------------- /program/algorithm/filter.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************//** 2 | \file filter.h 3 | \brief this is the header file of filter.c, which defines the structure of filter algorithm. 4 | \author Lao·Zhu 5 | \version V1.0.1 6 | \date 9. October 2021 7 | ******************************************************************************/ 8 | 9 | #ifndef MINIFOC_ALGORITHM_FILTER_H_ 10 | #define MINIFOC_ALGORITHM_FILTER_H_ 11 | 12 | /*! 13 | \struct Filter_Structure_t 14 | \brief structure of low-pass filter algorithm 15 | */ 16 | typedef struct { 17 | float coefficient1; ///< low-pass filter coefficient 1 18 | float coefficient2; ///< low-pass filter coefficient 2 19 | float last_result; ///< previous calculation results of low-pass filter 20 | float current_result; ///< current calculation results of low-pass filter 21 | } Filter_Structure_t; 22 | 23 | extern volatile Filter_Structure_t velocity_filter; 24 | float filter_update_value(Filter_Structure_t *param, short value); 25 | void filter_config(void); 26 | 27 | #endif //MINIFOC_ALGORITHM_FILTER_H_ 28 | -------------------------------------------------------------------------------- /program/algorithm/foc.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************//** 2 | \file foc.h 3 | \brief this is the header file of foc.c, which defines the structure 4 | of FOC algorithm and angle conversion factor. 5 | \author Lao·Zhu 6 | \version V1.0.1 7 | \date 9. October 2021 8 | ******************************************************************************/ 9 | 10 | #ifndef MINIFOC_ALGORITHM_FOC_H_ 11 | #define MINIFOC_ALGORITHM_FOC_H_ 12 | 13 | /*! 14 | \struct FOC_Structure_t 15 | \brief structure of FOC algorithm 16 | */ 17 | typedef struct { 18 | float mechanical_angle; ///< mechanical angle read form encoder 19 | float rotate_speed; ///< motor rotate speed calculate from timer 20 | float user_expect; ///< user expect value of miniFOC 21 | } FOC_Structure_t; 22 | 23 | /*! \brief mechanical angle conversion factor */ 24 | #define MECHANGLE_COEFFICIENT (6.2831854f / ENCODER_RESO) 25 | /*! \brief electric angle conversion factor */ 26 | #define ELECANGLE_COEFFICIENT ((6.2831854f * POLAR_PAIRS) / ENCODER_RESO) 27 | /*! \brief mechanical rotate speed conversion factor */ 28 | #define SPEED_COEFFICIENT ((6.2831852f * TIM13_FREQUENCY) / ENCODER_RESO) 29 | 30 | extern unsigned char foc_parameter_available_flag; 31 | extern volatile unsigned char phase_sequence; 32 | extern volatile FOC_Structure_t FOC_Struct; 33 | void foc_calculate_dutycycle(float elect_angle, float d, float q, float *u, float *v, float *w); 34 | void foc_calibrate_phase(void); 35 | 36 | #endif //MINIFOC_ALGORITHM_FOC_H_ 37 | -------------------------------------------------------------------------------- /program/algorithm/pid.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************//** 2 | \file pid.h 3 | \brief this is the header file of pid.c, which defines the structure 4 | of PID algorithm and closed-loop state macro. 5 | \author Lao·Zhu 6 | \version V1.0.1 7 | \date 9. October 2021 8 | ******************************************************************************/ 9 | 10 | #ifndef MINIFOC_ALGORITHM_PID_H_ 11 | #define MINIFOC_ALGORITHM_PID_H_ 12 | 13 | /*! \brief torque loop control mode */ 14 | #define TORQUE_LOOP_CONTROL 1 15 | /*! \brief speed loop control mode */ 16 | #define SPEED_LOOP_CONTROL 2 17 | /*! \brief angle loop control mode */ 18 | #define ANGLE_LOOP_CONTROL 3 19 | 20 | /*! 21 | \struct PID_Structure_t 22 | \brief structure of PID algorithm 23 | */ 24 | typedef struct { 25 | float kp; ///< proportional term coefficient in PID 26 | float ki; ///< integral term coefficient in PID 27 | float kd; ///< differential term coefficient in PID 28 | float summary; ///< value of integral term in PID 29 | float expect; ///< user expectations in PID 30 | float maximum; ///< maximum output in PID 31 | float minimum; ///< minimum output in PID 32 | float sum_maximum; ///< maximum of anti saturation integral in PID 33 | float last_error; ///< error value of previous calculation in PID 34 | } PID_Structure_t; 35 | 36 | extern unsigned char pid_parameter_available_flag; 37 | extern volatile unsigned char pid_control_mode_flag; 38 | extern volatile PID_Structure_t speed_pid_handler; 39 | extern volatile PID_Structure_t angle_pid_handler; 40 | void pid_config(unsigned char mode); 41 | float pid_calculate_result(PID_Structure_t *pid_handler, float collect); 42 | 43 | #endif //MINIFOC_ALGORITHM_PID_H_ 44 | -------------------------------------------------------------------------------- /program/algorithm/report.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************//** 2 | \file report.h 3 | \brief this is the header file of report.c. 4 | \author Lao·Zhu 5 | \version V1.0.1 6 | \date 9. October 2021 7 | ******************************************************************************/ 8 | 9 | #ifndef MINIFOC_ALGORITHM_REPORT_H_ 10 | #define MINIFOC_ALGORITHM_REPORT_H_ 11 | 12 | void report_local_variable(void); 13 | void report_angle_speed(void); 14 | 15 | #endif //MINIFOC_ALGORITHM_REPORT_H_ 16 | -------------------------------------------------------------------------------- /program/board.cfg: -------------------------------------------------------------------------------- 1 | 2 | adapter driver hla 3 | hla_layout stlink 4 | hla_device_desc "ST-LINK" 5 | hla_vid_pid 0x0483 0x3744 0x0483 0x3748 0x0483 0x374b 0x0483 0x374d 0x0483 0x374e 0x0483 0x374f 0x0483 0x3752 0x0483 0x3753 6 | 7 | source [find target/swj-dp.tcl] 8 | source [find mem_helper.tcl] 9 | 10 | if { [info exists CHIPNAME] } { 11 | set _CHIPNAME $CHIPNAME 12 | } else { 13 | set _CHIPNAME stm32f1x 14 | } 15 | 16 | set _ENDIAN little 17 | 18 | if { [info exists WORKAREASIZE] } { 19 | set _WORKAREASIZE $WORKAREASIZE 20 | } else { 21 | set _WORKAREASIZE 0x1000 22 | } 23 | 24 | # Allow overriding the Flash bank size 25 | if { [info exists FLASH_SIZE] } { 26 | set _FLASH_SIZE $FLASH_SIZE 27 | } else { 28 | set _FLASH_SIZE 0x8000 29 | } 30 | 31 | if { [info exists CPUTAPID] } { 32 | set _CPUTAPID $CPUTAPID 33 | } else { 34 | if { [using_jtag] } { 35 | set _CPUTAPID 0x3ba00477 36 | } { 37 | set _CPUTAPID 0x1ba01477 38 | } 39 | } 40 | 41 | swj_newdap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID 42 | dap create $_CHIPNAME.dap -chain-position $_CHIPNAME.cpu 43 | 44 | if {[using_jtag]} { 45 | jtag newtap $_CHIPNAME bs -irlen 5 46 | } 47 | 48 | set _TARGETNAME $_CHIPNAME.cpu 49 | target create $_TARGETNAME cortex_m -endian $_ENDIAN -dap $_CHIPNAME.dap 50 | 51 | $_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size $_WORKAREASIZE -work-area-backup 0 52 | 53 | set _FLASHNAME $_CHIPNAME.flash 54 | flash bank $_FLASHNAME stm32f1x 0x08000000 $_FLASH_SIZE 0 0 $_TARGETNAME 55 | adapter speed 1000 56 | 57 | adapter srst delay 100 58 | if {[using_jtag]} { 59 | jtag_ntrst_delay 100 60 | } 61 | 62 | reset_config none 63 | 64 | if {![using_hla]} { 65 | cortex_m reset_config sysresetreq 66 | } 67 | 68 | $_TARGETNAME configure -event examine-end { 69 | mmw 0xE0042004 0x00000307 0 70 | } 71 | 72 | $_TARGETNAME configure -event trace-config { 73 | mmw 0xE0042004 0x00000020 0 74 | } 75 | -------------------------------------------------------------------------------- /program/build_fw.bat: -------------------------------------------------------------------------------- 1 | :: 2 | :: Created by Lao·Zhu on 2021/8/23. 3 | :: 4 | 5 | @echo off 6 | md cmake-build-debug 7 | cd cmake-build-debug 8 | cmake.exe -DCMAKE_BUILD_TYPE=Debug -DCMAKE_DEPENDS_USE_COMPILER=FALSE -G "CodeBlocks - MinGW Makefiles" ..\ 9 | cmake.exe --build .\ --target miniFOC.elf -- -j 12 10 | echo Build Firmware Success!!! 11 | pause 0 12 | -------------------------------------------------------------------------------- /program/config.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************//** 2 | \file config.h 3 | \brief used to place important parameter configurations for users 4 | \author Lao·Zhu 5 | \version V1.0.3 6 | \date 1. August 2023 7 | ******************************************************************************/ 8 | 9 | #ifndef MINIFOC__CONFIG_H_ 10 | #define MINIFOC__CONFIG_H_ 11 | 12 | /*! \brief bus voltage is 8.0V */ 13 | #define VBUS 8.0f 14 | /*! \brief set BLDC polar pairs to 7 */ 15 | #define POLAR_PAIRS 7 16 | /*! \brief SC60228 resolution is 2^8 = 4096 */ 17 | #define ENCODER_RESO 4096 18 | /*! \brief set calibrate torque to 0.5 */ 19 | #define CALI_TORQUE 0.5f 20 | /*! \brief Not using space vector pulse width modulator */ 21 | #define USE_SVPWM 1 22 | 23 | /*! \brief set UART baud rate to 512000 */ 24 | #define UART_BAUDRATE 512000 25 | /*! \brief set PWM frequency to 20kHz */ 26 | #define PWM_FREQUENCY 20 27 | /*! \brief set FOC loop frequency to 8kHz */ 28 | #define TIM2_FREQUENCY 8 29 | /*! \brief set speed/angle PID loop frequency to 100Hz */ 30 | #define TIM13_FREQUENCY 100 31 | /*! \brief set speed update frequency to 200Hz */ 32 | #define SPEED_UP_FREQ 200 33 | /*! \brief set SPI frequency to 72 / 16 = 4.5MHz */ 34 | #define SPI_PRESCALE SPI_PSC_16 35 | 36 | /*! \brief UART preemption priority set to 1 */ 37 | #define UART_PRIORITY 1 38 | /*! \brief TIMER2 preemption priority set to 2 */ 39 | #define TIM2_PRIORITY 2 40 | /*! \brief TIMER13 preemption priority set to 3 */ 41 | #define TIM13_PRIORITY 3 42 | 43 | /*! \brief User flash space start address, 1KB user flash */ 44 | #define FMC_WRITE_START_ADDR 0x08007C00UL 45 | 46 | #endif //MINIFOC__CONFIG_H_ 47 | -------------------------------------------------------------------------------- /program/error.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************//** 2 | \file error.h 3 | \brief used to check whether the user configured parameters conflict 4 | \author Lao·Zhu 5 | \version V1.0.1 6 | \date 9. October 2021 7 | ******************************************************************************/ 8 | 9 | #ifndef MINIFOC__ERROR_H_ 10 | #define MINIFOC__ERROR_H_ 11 | 12 | #include "config.h" 13 | 14 | #if TIM13_FREQUENCY > (SPEED_UP_FREQ / 2) 15 | #error "you can't set pid frequency higher than update frequency" 16 | #endif 17 | 18 | #if TIM2_FREQUENCY > PWM_FREQUENCY 19 | #error "you can't set foc loop frequency higher than pwm frequency" 20 | #endif 21 | 22 | #if TIM13_FREQUENCY > (TIM2_FREQUENCY * 1000) 23 | #error "you can't set pid frequency higher than foc loop frequency" 24 | #endif 25 | 26 | #if FMC_WRITE_START_ADDR < 0x08004000UL 27 | #error "user flash lash takes up too much space, which makes the program space insufficient" 28 | #endif 29 | 30 | #endif //MINIFOC__ERROR_H_ 31 | -------------------------------------------------------------------------------- /program/hardware/flash.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************//** 2 | \file flash.h 3 | \brief this is the header file of flash.c. 4 | \author Lao·Zhu 5 | \version V1.0.1 6 | \date 10. October 2021 7 | ******************************************************************************/ 8 | 9 | #ifndef MINIFOC_HARDWARE_FLASH_H_ 10 | #define MINIFOC_HARDWARE_FLASH_H_ 11 | 12 | void flash_write_parameters(void); 13 | void flash_read_parameters(void); 14 | void flash_erase_page(void); 15 | void flash_program_word(unsigned int addr, unsigned int *data, unsigned char counter); 16 | unsigned int flash_read_word(unsigned int addr); 17 | 18 | #endif //MINIFOC_HARDWARE_FLASH_H_ 19 | -------------------------------------------------------------------------------- /program/hardware/led.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************//** 2 | \file led.h 3 | \brief this file contains macros for LED initialization and related IO port operations. 4 | \author Lao·Zhu 5 | \version V1.0.1 6 | \date 10. October 2021 7 | ******************************************************************************/ 8 | 9 | #ifndef MINIFOC_HARDWARE_LED_H_ 10 | #define MINIFOC_HARDWARE_LED_H_ 11 | 12 | /*! 13 | \brief turn on LED 14 | */ 15 | #define led_on() gpio_bit_reset(GPIOB, GPIO_PIN_5) 16 | 17 | /*! 18 | \brief turn off LED 19 | */ 20 | #define led_off() gpio_bit_set(GPIOB, GPIO_PIN_5) 21 | 22 | /*! 23 | \brief flip the LED pin level 24 | */ 25 | #define led_toggle() gpio_bit_write(GPIOB, GPIO_PIN_5, !gpio_output_bit_get(GPIOB, GPIO_PIN_5)) 26 | 27 | /*! 28 | \brief configure led periph and its gpios 29 | */ 30 | #define led_config() rcu_periph_clock_enable(RCU_GPIOB);\ 31 | gpio_mode_set(GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_5);\ 32 | gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_5);\ 33 | led_off() 34 | 35 | #endif // MINIFOC_HARDWARE_LED_H_ 36 | -------------------------------------------------------------------------------- /program/hardware/spi.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************//** 2 | \file spi.h 3 | \brief this is the header file of spi.c. 4 | \author Lao·Zhu 5 | \version V1.0.1 6 | \date 10. October 2021 7 | ******************************************************************************/ 8 | 9 | #ifndef MINIFOC_HARDWARE_SPI_H_ 10 | #define MINIFOC_HARDWARE_SPI_H_ 11 | 12 | unsigned short spi_readwrite_halfworld(unsigned short data); 13 | void spi_config(void); 14 | 15 | #endif //MINIFOC_HARDWARE_SPI_H_ 16 | -------------------------------------------------------------------------------- /program/hardware/timer.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************//** 2 | \file timer.h 3 | \brief this is the header file of timer.c. 4 | \author Lao·Zhu 5 | \version V1.0.1 6 | \date 10. October 2021 7 | ******************************************************************************/ 8 | 9 | #ifndef MINIFOC_HARDWARE_TIMER_H_ 10 | #define MINIFOC_HARDWARE_TIMER_H_ 11 | 12 | /*! 13 | \brief PWM period calculate from PWM_FREQUENCY 14 | */ 15 | #define PWM_PERIOD 18000 / PWM_FREQUENCY 16 | 17 | void update_pwm_dutycycle(float ch0, float ch1, float ch2); 18 | void timer2_disable(void); 19 | void timer13_disable(void); 20 | void timer2_config(void); 21 | void timer13_config(void); 22 | void pwm_config(void); 23 | 24 | #endif //MINIFOC_HARDWARE_TIMER_H_ 25 | -------------------------------------------------------------------------------- /program/hardware/uart.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************//** 2 | \file uart.h 3 | \brief this is the header file of uart.c. 4 | \author Lao·Zhu 5 | \version V1.0.1 6 | \date 10. October 2021 7 | ******************************************************************************/ 8 | 9 | #ifndef MINIFOC_HARDWARE_UART_H_ 10 | #define MINIFOC_HARDWARE_UART_H_ 11 | 12 | /*! 13 | \brief UART send single byte macro 14 | \param[in] x: byte to be send from UART 15 | */ 16 | #define uart_sendbyte(x); usart_data_transmit(USART0, (uint8_t) x);\ 17 | while (RESET ==usart_flag_get(USART0, USART_FLAG_TBE)) 18 | 19 | void uart_config(void); 20 | void mdtp_data_transmit(unsigned char pid, const unsigned char *buffer); 21 | void mdtp_receive_handler(unsigned char data); 22 | void mdtp_callback_handler(unsigned char pid, const unsigned char *data); 23 | 24 | #endif // MINIFOC_HARDWARE_UART_H_ 25 | -------------------------------------------------------------------------------- /program/system/cmsis_version.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************//** 2 | \file cmsis_version.h 3 | \brief CMSIS Core(M) Version definitions 4 | \version V5.0.2 5 | \date 19. April 2017 6 | ******************************************************************************/ 7 | /* 8 | * Copyright (c) 2009-2017 ARM Limited. All rights reserved. 9 | * 10 | * SPDX-License-Identifier: Apache-2.0 11 | * 12 | * Licensed under the Apache License, Version 2.0 (the License); you may 13 | * not use this file except in compliance with the License. 14 | * You may obtain a copy of the License at 15 | * 16 | * www.apache.org/licenses/LICENSE-2.0 17 | * 18 | * Unless required by applicable law or agreed to in writing, software 19 | * distributed under the License is distributed on an AS IS BASIS, WITHOUT 20 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 21 | * See the License for the specific language governing permissions and 22 | * limitations under the License. 23 | */ 24 | 25 | #if defined ( __ICCARM__ ) 26 | #pragma system_include /* treat file as system include file for MISRA check */ 27 | #elif defined (__clang__) 28 | #pragma clang system_header /* treat file as system include file */ 29 | #endif 30 | 31 | #ifndef __CMSIS_VERSION_H 32 | #define __CMSIS_VERSION_H 33 | 34 | /* CMSIS Version definitions */ 35 | #define __CM_CMSIS_VERSION_MAIN ( 5U) /*!< [31:16] CMSIS Core(M) main version */ 36 | #define __CM_CMSIS_VERSION_SUB ( 1U) /*!< [15:0] CMSIS Core(M) sub version */ 37 | #define __CM_CMSIS_VERSION ((__CM_CMSIS_VERSION_MAIN << 16U) | \ 38 | __CM_CMSIS_VERSION_SUB ) /*!< CMSIS Core(M) version number */ 39 | #endif 40 | -------------------------------------------------------------------------------- /program/system/gd32f1x0_it.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************//** 2 | \file gd32f1x0_it.h 3 | \brief gd32f1x0 interrupt handler function header file 4 | \author Lao·Zhu 5 | \version V1.0.1 6 | \date 9. October 2021 7 | ******************************************************************************/ 8 | 9 | #ifndef MINIFOC_SYSTEM_GD32F1X0_IT_H 10 | #define MINIFOC_SYSTEM_GD32F1X0_IT_H 11 | 12 | #include "gd32f1x0.h" 13 | 14 | void NMI_Handler(void); 15 | void HardFault_Handler(void); 16 | void MemManage_Handler(void); 17 | void BusFault_Handler(void); 18 | void UsageFault_Handler(void); 19 | void SVC_Handler(void); 20 | void DebugMon_Handler(void); 21 | void PendSV_Handler(void); 22 | void SysTick_Handler(void); 23 | void USART0_IRQHandler(void); 24 | void TIMER2_IRQHandler(void); 25 | void TIMER13_IRQHandler(void); 26 | 27 | #endif // MINIFOC_SYSTEM_GD32F1X0_IT_H 28 | -------------------------------------------------------------------------------- /program/system/gd32f1x0_libopt.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Lao·Zhu on 2021/8/20. 3 | // 4 | 5 | #ifndef MINIFOC_SYSTEM_GD32F1X0_LIBOPT_H_ 6 | #define MINIFOC_SYSTEM_GD32F1X0_LIBOPT_H_ 7 | 8 | #include "gd32f1x0_misc.h" 9 | #include "gd32f1x0_dma.h" 10 | #include "gd32f1x0_gpio.h" 11 | #include "gd32f1x0_rcu.h" 12 | #include "gd32f1x0_spi.h" 13 | #include "gd32f1x0_timer.h" 14 | #include "gd32f1x0_usart.h" 15 | #include "gd32f1x0_fmc.h" 16 | 17 | #endif // MINIFOC_SYSTEM_GD32F1X0_LIBOPT_H_ 18 | -------------------------------------------------------------------------------- /program/system/main.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************//** 2 | \file main.h 3 | \brief main function Header File 4 | \author Lao·Zhu 5 | \version V1.0.1 6 | \date 9. October 2021 7 | ******************************************************************************/ 8 | 9 | #ifndef MINIFOC_MAIN_H_ 10 | #define MINIFOC_MAIN_H_ 11 | 12 | //////////////// System //////////////// 13 | #include "gd32f1x0.h" 14 | #include "system.h" 15 | #include "config.h" 16 | #include "error.h" 17 | 18 | /////////////// Hardware /////////////// 19 | #include "led.h" 20 | #include "uart.h" 21 | #include "timer.h" 22 | #include "spi.h" 23 | #include "flash.h" 24 | 25 | /////////////// Algorithm /////////////// 26 | #include "foc.h" 27 | #include "encoder.h" 28 | #include "fast_math.h" 29 | #include "filter.h" 30 | #include "pid.h" 31 | #include "report.h" 32 | 33 | #endif // MINIFOC_MAIN_H_ 34 | -------------------------------------------------------------------------------- /program/system/system.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************//** 2 | \file system.h 3 | \brief system basic function header file 4 | \author Lao·Zhu 5 | \version V1.0.1 6 | \date 9. October 2021 7 | ******************************************************************************/ 8 | 9 | #ifndef MINIFOC_SYSTEM_SYSTEM_H_ 10 | #define MINIFOC_SYSTEM_SYSTEM_H_ 11 | 12 | void systick_config(void); 13 | void delayms(unsigned long count); 14 | void delay_decrement(void); 15 | void user_memset(void *buf, unsigned char data, unsigned char num); 16 | unsigned int float_to_int32(float data0); 17 | float int32_to_float(unsigned int data0); 18 | 19 | #endif // MINIFOC_SYSTEM_SYSTEM_H_ 20 | -------------------------------------------------------------------------------- /tools/.gitignore: -------------------------------------------------------------------------------- 1 | # This file is used to ignore files which are generated 2 | # ---------------------------------------------------------------------------- 3 | build 4 | CMakeLists.txt.user.* -------------------------------------------------------------------------------- /tools/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.5) 2 | 3 | project(monitor LANGUAGES CXX) 4 | 5 | set(CMAKE_INCLUDE_CURRENT_DIR ON) 6 | 7 | set(CMAKE_AUTOUIC ON) 8 | set(CMAKE_AUTOMOC ON) 9 | set(CMAKE_AUTORCC ON) 10 | 11 | set(CMAKE_CXX_STANDARD 11) 12 | set(CMAKE_CXX_STANDARD_REQUIRED ON) 13 | set(app_WINRC app_win32.rc) 14 | 15 | set_property(SOURCE app_win32.rc APPEND PROPERTY 16 | OBJECT_DEPENDS ${PROJECT_SOURCE_DIR}/icon.ico 17 | ) 18 | 19 | find_package(Qt5 COMPONENTS Widgets SerialPort PrintSupport REQUIRED) 20 | 21 | add_executable(monitor WIN32 ${app_WINRC} main.cpp mainwindow.cpp mainwindow.h mainwindow.ui 22 | mdtp/decrypt.cpp mdtp/encrypt.cpp qcustomplot.h qcustomplot.cpp) 23 | 24 | target_link_libraries(monitor PRIVATE Qt5::Widgets Qt5::SerialPort Qt5::PrintSupport) 25 | -------------------------------------------------------------------------------- /tools/app_win32.rc: -------------------------------------------------------------------------------- 1 | IDI_ICON1 ICON DISCARDABLE "./icon.ico" -------------------------------------------------------------------------------- /tools/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhuYanzhen1/miniFOC/e15a21c0f2e58a9a8679c1ee42eef79cd3fd10e7/tools/icon.ico -------------------------------------------------------------------------------- /tools/main.cpp: -------------------------------------------------------------------------------- 1 | #include "mainwindow.h" 2 | 3 | #include 4 | 5 | int main(int argc, char *argv[]) 6 | { 7 | QApplication a(argc, argv); 8 | MainWindow w; 9 | w.show(); 10 | return a.exec(); 11 | } 12 | -------------------------------------------------------------------------------- /tools/mdtp/encrypt.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Lao·Zhu on 2021/9/4. 3 | // 4 | 5 | #include "mainwindow.h" 6 | 7 | /*! 8 | \brief medium capacity data transmission protocol packing function 9 | \param[in] pid: medium capacity transport protocol package id 10 | \param[in] data: received data array of size 8 bytes 11 | \param[out] none 12 | \retval none 13 | */ 14 | void MainWindow::mdtp_data_transmit(unsigned char pid, const unsigned char *data) { 15 | unsigned char temp_buf[12] = {0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 16 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xff}; 17 | unsigned char mdtp_pack_counter; 18 | /* traverse the array to determine whether there are bytes to be adjusted */ 19 | for (mdtp_pack_counter = 0; mdtp_pack_counter < 8; mdtp_pack_counter++) { 20 | /* judge whether this byte need to be adjusted */ 21 | if (data[mdtp_pack_counter] == 0xff) { 22 | temp_buf[2 + mdtp_pack_counter] = 0x00; 23 | /* modify the corresponding bit of the adjustment byte */ 24 | temp_buf[10] = (temp_buf[10] | (1 << mdtp_pack_counter)); 25 | } else 26 | /* copy data directly to transmit buffer array */ 27 | temp_buf[2 + mdtp_pack_counter] = data[mdtp_pack_counter]; 28 | } 29 | /* judge whether the package is all 0xff */ 30 | if (temp_buf[10] == 0xff) 31 | temp_buf[10] = temp_buf[2] = 0xa5; 32 | /* load self checking packet id byte */ 33 | temp_buf[1] = pid << 4 | ((~pid) & 0x0f); 34 | /* transmit 12 bytes through general sendbyte function */ 35 | serial->write((const char *)temp_buf, 12); 36 | } 37 | --------------------------------------------------------------------------------