Basic DC motor control test, rpm feedback by simple impulse signal, PID speed control.

Dependencies:   FastPWM mbed FastIO MODSERIAL

Committer:
dzoni
Date:
Wed Apr 04 05:58:25 2018 +0000
Revision:
11:4747badb2448
Parent:
8:5ce5fe1ce503
After functionality test on actual HW. Fine tunning of PID controller parameters required. Functionality OK. Controller slow on start from zero speed.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dzoni 8:5ce5fe1ce503 1 Dokumentace souborů
dzoni 8:5ce5fe1ce503 2
dzoni 8:5ce5fe1ce503 3 V hlavičkových souborech a main.c pište plnou dokumentaci funkcí, struktur atd., ve všech souborech navíc pište tagy @author a @file. V textu dokumentace používejte angličtinu.
dzoni 8:5ce5fe1ce503 4
dzoni 8:5ce5fe1ce503 5 Ukázka hlavičkového souboru
dzoni 8:5ce5fe1ce503 6 #ifndef MY_AWESOME_LIBRARY_H
dzoni 8:5ce5fe1ce503 7 #define MY_AWESOME_LIBRARY_H
dzoni 8:5ce5fe1ce503 8
dzoni 8:5ce5fe1ce503 9 /**
dzoni 8:5ce5fe1ce503 10 * @brief [OPTIONAL] Brief file description.
dzoni 8:5ce5fe1ce503 11 * @file my_awesome_library.h
dzoni 8:5ce5fe1ce503 12 * @author John Doe <john.doe@example.com>
dzoni 8:5ce5fe1ce503 13 *
dzoni 8:5ce5fe1ce503 14 * [OPTIONAL] Detailed file description.
dzoni 8:5ce5fe1ce503 15 */
dzoni 8:5ce5fe1ce503 16
dzoni 8:5ce5fe1ce503 17 #include <stdlib.h>
dzoni 8:5ce5fe1ce503 18 // ...
dzoni 8:5ce5fe1ce503 19
dzoni 8:5ce5fe1ce503 20 #endif // MY_AWESOME_LIBRARY_H
dzoni 8:5ce5fe1ce503 21 Ukázka jiného (nehlavičkového) souboru
dzoni 8:5ce5fe1ce503 22 /**
dzoni 8:5ce5fe1ce503 23 * @author John Doe <john.doe@example.com>
dzoni 8:5ce5fe1ce503 24 * @file list.c
dzoni 8:5ce5fe1ce503 25 */
dzoni 8:5ce5fe1ce503 26
dzoni 8:5ce5fe1ce503 27 ...
dzoni 8:5ce5fe1ce503 28
dzoni 8:5ce5fe1ce503 29 Dokumentace struktur a výčtových typů
dzoni 8:5ce5fe1ce503 30 /**
dzoni 8:5ce5fe1ce503 31 * @brief Doubly linked list node.
dzoni 8:5ce5fe1ce503 32 *
dzoni 8:5ce5fe1ce503 33 * [OPTIONAL] Detailed description.
dzoni 8:5ce5fe1ce503 34 */
dzoni 8:5ce5fe1ce503 35 typedef struct node
dzoni 8:5ce5fe1ce503 36 {
dzoni 8:5ce5fe1ce503 37 struct node *prev; /**< previous node */
dzoni 8:5ce5fe1ce503 38 struct node *next; /**< next node */
dzoni 8:5ce5fe1ce503 39 void *data; /**< pointer to node data */
dzoni 8:5ce5fe1ce503 40 } node_t;
dzoni 8:5ce5fe1ce503 41
dzoni 8:5ce5fe1ce503 42 /**
dzoni 8:5ce5fe1ce503 43 * @brief UNIX file system permissions.
dzoni 8:5ce5fe1ce503 44 *
dzoni 8:5ce5fe1ce503 45 * [OPTIONAL] Detailed description.
dzoni 8:5ce5fe1ce503 46 */
dzoni 8:5ce5fe1ce503 47 typedef enum mode
dzoni 8:5ce5fe1ce503 48 {
dzoni 8:5ce5fe1ce503 49 Read = 1, /**< read a file or list contents of a directory */
dzoni 8:5ce5fe1ce503 50 Write = 2, /**< modify a file or directory entries */
dzoni 8:5ce5fe1ce503 51 Execute = 4 /**< execute a file or enter a directory */
dzoni 8:5ce5fe1ce503 52 } mode_t;
dzoni 8:5ce5fe1ce503 53
dzoni 8:5ce5fe1ce503 54
dzoni 8:5ce5fe1ce503 55 Dokumentace funkcí
dzoni 8:5ce5fe1ce503 56 Pokud chcete v textu odkazovat parametr funkce, použijte značku @a parametr, hodnoty můžete značit např. značkou @c true. Funkce, které nic nevrací (mají návratový typ void) pochopitelně nemusí mít značku @return.
dzoni 8:5ce5fe1ce503 57
dzoni 8:5ce5fe1ce503 58 /**
dzoni 8:5ce5fe1ce503 59 * @brief Halting problem solver.
dzoni 8:5ce5fe1ce503 60 * @param tm Turing machine to simulate
dzoni 8:5ce5fe1ce503 61 * @param input input to simulate the @a tm with
dzoni 8:5ce5fe1ce503 62 * @return @c true if the machine @a tm will halt with the tape @a input, @c false otherwise
dzoni 8:5ce5fe1ce503 63 * @note [OPTIONAL] The content of the @a input tape will remain unchanged.
dzoni 8:5ce5fe1ce503 64 * @warning [OPTIONAL] Still under development.
dzoni 8:5ce5fe1ce503 65 * @bug [OPTIONAL] This function can run indefinitely for some inputs.
dzoni 8:5ce5fe1ce503 66 *
dzoni 8:5ce5fe1ce503 67 * [OPTIONAL] Detailed information on how awesome this function is.
dzoni 8:5ce5fe1ce503 68 */
dzoni 8:5ce5fe1ce503 69 bool halts(machine_t *tm, tape_t *input);
dzoni 8:5ce5fe1ce503 70 Navíc, pokud je argument funkce ukazatel, přidejte za param položku [in], [out] nebo [in,out] pokud je to vstupní, výstupní resp. vstupno-výstupní argument:
dzoni 8:5ce5fe1ce503 71
dzoni 8:5ce5fe1ce503 72 /**
dzoni 8:5ce5fe1ce503 73 * @param[in] ro memory to be read
dzoni 8:5ce5fe1ce503 74 * @param[out] wo memory to be filled
dzoni 8:5ce5fe1ce503 75 * @param[in,out] rw memory to be read and written
dzoni 8:5ce5fe1ce503 76 */
dzoni 8:5ce5fe1ce503 77 void foo(const void *ro, size_t *wo, char *rw);