Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
DRV8301.cpp@0:2825ac4882fd, 2015-11-21 (annotated)
- Committer:
- pantunovi
- Date:
- Sat Nov 21 17:36:16 2015 +0000
- Revision:
- 0:2825ac4882fd
- Child:
- 2:bdca7d22b783
Incomplete version, lacking a valid constructor and input data for write functions in main.cpp
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
pantunovi | 0:2825ac4882fd | 1 | #include "DRV8301.h" |
pantunovi | 0:2825ac4882fd | 2 | |
pantunovi | 0:2825ac4882fd | 3 | DRV8301::DRV8301(PinName mosi, PinName miso, PinName sck) : MOSI(mosi), MISO(miso), SCK(sck){ |
pantunovi | 0:2825ac4882fd | 4 | startup(); |
pantunovi | 0:2825ac4882fd | 5 | input = 0; |
pantunovi | 0:2825ac4882fd | 6 | } |
pantunovi | 0:2825ac4882fd | 7 | |
pantunovi | 0:2825ac4882fd | 8 | //funkcija za ograničernje struje |
pantunovi | 0:2825ac4882fd | 9 | |
pantunovi | 0:2825ac4882fd | 10 | |
pantunovi | 0:2825ac4882fd | 11 | void DRV8301::setCurrentLimit(uint8_t input){ |
pantunovi | 0:2825ac4882fd | 12 | uint16_t register1; |
pantunovi | 0:2825ac4882fd | 13 | maskCurrentLimit = 0xF83F; |
pantunovi | 0:2825ac4882fd | 14 | register1 &= maskCurrentLimit; |
pantunovi | 0:2825ac4882fd | 15 | register1 |= input << 6; |
pantunovi | 0:2825ac4882fd | 16 | } |
pantunovi | 0:2825ac4882fd | 17 | |
pantunovi | 0:2825ac4882fd | 18 | //funkcija za input PWM ulaza |
pantunovi | 0:2825ac4882fd | 19 | |
pantunovi | 0:2825ac4882fd | 20 | void DRV8301::setPWMNumber(uint8_t input){ |
pantunovi | 0:2825ac4882fd | 21 | uint16_t register1; |
pantunovi | 0:2825ac4882fd | 22 | maskPWM = 0xFFF7; |
pantunovi | 0:2825ac4882fd | 23 | register1 &= maskPWM; |
pantunovi | 0:2825ac4882fd | 24 | register1 |= input << 3; |
pantunovi | 0:2825ac4882fd | 25 | } |
pantunovi | 0:2825ac4882fd | 26 | |
pantunovi | 0:2825ac4882fd | 27 | //funkcija za input mod OCP-a |
pantunovi | 0:2825ac4882fd | 28 | |
pantunovi | 0:2825ac4882fd | 29 | void DRV8301::setOCPMode(uint8_t input){ |
pantunovi | 0:2825ac4882fd | 30 | uint16_t register1; |
pantunovi | 0:2825ac4882fd | 31 | maskOCP = 0xFFCF; |
pantunovi | 0:2825ac4882fd | 32 | register1 &= maskOCP; |
pantunovi | 0:2825ac4882fd | 33 | register1 |= input << 4; |
pantunovi | 0:2825ac4882fd | 34 | } |
pantunovi | 0:2825ac4882fd | 35 | |
pantunovi | 0:2825ac4882fd | 36 | //funkcija za input mod OCTW-a |
pantunovi | 0:2825ac4882fd | 37 | |
pantunovi | 0:2825ac4882fd | 38 | |
pantunovi | 0:2825ac4882fd | 39 | void DRV8301::setOCTW(uint8_t input){ |
pantunovi | 0:2825ac4882fd | 40 | uint16_t register2; |
pantunovi | 0:2825ac4882fd | 41 | maskOCTW = 0xFFFC; |
pantunovi | 0:2825ac4882fd | 42 | register2 &= maskOCTW; |
pantunovi | 0:2825ac4882fd | 43 | register2 |= input; |
pantunovi | 0:2825ac4882fd | 44 | } |
pantunovi | 0:2825ac4882fd | 45 | |
pantunovi | 0:2825ac4882fd | 46 | //funkcija za pojačanje |
pantunovi | 0:2825ac4882fd | 47 | |
pantunovi | 0:2825ac4882fd | 48 | void DRV8301::setGain(uint8_t input){ |
pantunovi | 0:2825ac4882fd | 49 | uint16_t register2; |
pantunovi | 0:2825ac4882fd | 50 | maskGain = 0xFFF3; |
pantunovi | 0:2825ac4882fd | 51 | register2 &= maskGain; |
pantunovi | 0:2825ac4882fd | 52 | register2 |= input << 2; |
pantunovi | 0:2825ac4882fd | 53 | } |
pantunovi | 0:2825ac4882fd | 54 | |
pantunovi | 0:2825ac4882fd | 55 | //funkcija za dobivanje stanja u registru 1 |
pantunovi | 0:2825ac4882fd | 56 | |
pantunovi | 0:2825ac4882fd | 57 | uint16_t getRegister1(){ |
pantunovi | 0:2825ac4882fd | 58 | uint16_t register1; |
pantunovi | 0:2825ac4882fd | 59 | return register1; |
pantunovi | 0:2825ac4882fd | 60 | } |
pantunovi | 0:2825ac4882fd | 61 | |
pantunovi | 0:2825ac4882fd | 62 | // funkcija za dobivanje stanja u registru 2 |
pantunovi | 0:2825ac4882fd | 63 | |
pantunovi | 0:2825ac4882fd | 64 | uint16_t getRegister2(){ |
pantunovi | 0:2825ac4882fd | 65 | uint16_t register2; |
pantunovi | 0:2825ac4882fd | 66 | return register2; |
pantunovi | 0:2825ac4882fd | 67 | } |
pantunovi | 0:2825ac4882fd | 68 | |
pantunovi | 0:2825ac4882fd | 69 | //funkcija za pokretanje (reboot) DRV-a |
pantunovi | 0:2825ac4882fd | 70 | |
pantunovi | 0:2825ac4882fd | 71 | void DRV8301::startup(){ |
pantunovi | 0:2825ac4882fd | 72 | EN_GATE = 0; |
pantunovi | 0:2825ac4882fd | 73 | wait_us (25); |
pantunovi | 0:2825ac4882fd | 74 | EN_GATE = 1; |
pantunovi | 0:2825ac4882fd | 75 | } |
pantunovi | 0:2825ac4882fd | 76 |