├── .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 |
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 |
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 |
4 |
5 |
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 |
--------------------------------------------------------------------------------