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.
Dependencies: mbed-STM32F103C8T6 mbed
main.cpp@5:e86eda00ef3f, 2018-04-18 (annotated)
- Committer:
- RuslanUrya
- Date:
- Wed Apr 18 12:24:46 2018 +0000
- Revision:
- 5:e86eda00ef3f
- Parent:
- 4:2196462a17f5
- Child:
- 6:c8265ecd2d1f
is worked. Need to adjust the range of duty cycle
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| RuslanUrya | 0:fb723d2f5d7e | 1 | #include "mbed.h" |
| RuslanUrya | 0:fb723d2f5d7e | 2 | #include "stm32f103c8t6.h" |
| RuslanUrya | 0:fb723d2f5d7e | 3 | #define val 0.05 // percents in step / 100 |
| RuslanUrya | 5:e86eda00ef3f | 4 | #define pi 3.1415 |
| RuslanUrya | 0:fb723d2f5d7e | 5 | |
| RuslanUrya | 5:e86eda00ef3f | 6 | PwmOut Servo (PA_8); |
| RuslanUrya | 5:e86eda00ef3f | 7 | DigitalOut myled(PC_13); |
| RuslanUrya | 4:2196462a17f5 | 8 | Ticker timer; |
| RuslanUrya | 0:fb723d2f5d7e | 9 | |
| RuslanUrya | 0:fb723d2f5d7e | 10 | |
| RuslanUrya | 5:e86eda00ef3f | 11 | double f = 0; //first period |
| RuslanUrya | 5:e86eda00ef3f | 12 | double i = 0; |
| RuslanUrya | 0:fb723d2f5d7e | 13 | |
| RuslanUrya | 0:fb723d2f5d7e | 14 | void sinus (){ |
| RuslanUrya | 5:e86eda00ef3f | 15 | Servo = (float)f * val; // duty-cycle, perсents 0..1; посчитанное значение вставится в следующее прерывание |
| RuslanUrya | 5:e86eda00ef3f | 16 | i += 0.1; |
| RuslanUrya | 5:e86eda00ef3f | 17 | if (i > 2) i = 0; |
| RuslanUrya | 5:e86eda00ef3f | 18 | f = (sin(i * pi) + 1.0) / 2 + 1; //1..2 |
| RuslanUrya | 0:fb723d2f5d7e | 19 | } |
| RuslanUrya | 0:fb723d2f5d7e | 20 | |
| RuslanUrya | 0:fb723d2f5d7e | 21 | int main() { |
| RuslanUrya | 0:fb723d2f5d7e | 22 | confSysClock(); |
| RuslanUrya | 0:fb723d2f5d7e | 23 | Servo.period_ms(20); |
| RuslanUrya | 5:e86eda00ef3f | 24 | timer.attach(&sinus, val); //sine period, sec |
| RuslanUrya | 0:fb723d2f5d7e | 25 | while(1) { |
| RuslanUrya | 5:e86eda00ef3f | 26 | myled = !myled; |
| RuslanUrya | 5:e86eda00ef3f | 27 | wait(0.5); |
| RuslanUrya | 0:fb723d2f5d7e | 28 | } |
| RuslanUrya | 0:fb723d2f5d7e | 29 | } |