For 1st Year ROCO104

Dependencies:   mbed motor

Committer:
martinsimpson
Date:
Fri Feb 01 16:29:52 2019 +0000
Revision:
4:8249fab4d8d3
Parent:
0:51c12cc34baf
Base template for ROCO104 first edition

Who changed what in which revision?

UserRevisionLine numberNew contents of line
martinsimpson 0:51c12cc34baf 1 /* Includes ------------------------------------------------------------------*/
martinsimpson 0:51c12cc34baf 2 #include "pwm_tone.h"
martinsimpson 0:51c12cc34baf 3
martinsimpson 0:51c12cc34baf 4 /* Private typedef -----------------------------------------------------------*/
martinsimpson 0:51c12cc34baf 5 /* Private define ------------------------------------------------------------*/
martinsimpson 0:51c12cc34baf 6 /* Private variables ---------------------------------------------------------*/
martinsimpson 0:51c12cc34baf 7 /* Private function prototypes -----------------------------------------------*/
martinsimpson 0:51c12cc34baf 8 /* Private functions ---------------------------------------------------------*/
martinsimpson 0:51c12cc34baf 9
martinsimpson 0:51c12cc34baf 10 /**
martinsimpson 0:51c12cc34baf 11 * @brief Tune Function
martinsimpson 0:51c12cc34baf 12 * @param name : Choose the PwmOut
martinsimpson 0:51c12cc34baf 13 period : this param is tune value. (C_3...B_5)
martinsimpson 0:51c12cc34baf 14 beat : this param is beat value. (1..16) 1 means 1/16 beat
martinsimpson 0:51c12cc34baf 15 * @retval None
martinsimpson 0:51c12cc34baf 16 */
martinsimpson 0:51c12cc34baf 17 void Tune(PwmOut name, int period, int beat)
martinsimpson 0:51c12cc34baf 18 {
martinsimpson 0:51c12cc34baf 19 int delay;
martinsimpson 0:51c12cc34baf 20
martinsimpson 0:51c12cc34baf 21 delay = beat*63;
martinsimpson 0:51c12cc34baf 22 name.period_us(period);
martinsimpson 0:51c12cc34baf 23 name.write(0.50f); // 50% duty cycle
martinsimpson 0:51c12cc34baf 24 wait_ms(delay); // 1 beat
martinsimpson 0:51c12cc34baf 25 //name.period_us(0); // Sound off
martinsimpson 0:51c12cc34baf 26 name=0;
martinsimpson 0:51c12cc34baf 27 }
martinsimpson 0:51c12cc34baf 28
martinsimpson 0:51c12cc34baf 29 /**
martinsimpson 0:51c12cc34baf 30 * @brief Auto tunes Function
martinsimpson 0:51c12cc34baf 31 * @param name : Choose the PwmOut
martinsimpson 0:51c12cc34baf 32 period : this param is tune value. (C_3...B_5)
martinsimpson 0:51c12cc34baf 33 beat : this param is beat value. (1..16) 1 means 1/16 beat
martinsimpson 0:51c12cc34baf 34 * @retval None
martinsimpson 0:51c12cc34baf 35 */
martinsimpson 0:51c12cc34baf 36 void Auto_tunes(PwmOut name, int period, int beat)
martinsimpson 0:51c12cc34baf 37 {
martinsimpson 0:51c12cc34baf 38 int delay;
martinsimpson 0:51c12cc34baf 39
martinsimpson 0:51c12cc34baf 40 delay = beat*63;
martinsimpson 0:51c12cc34baf 41 name.period_us(period);
martinsimpson 0:51c12cc34baf 42 name.write(0.50f); // 50% duty cycle
martinsimpson 0:51c12cc34baf 43 wait_ms(delay);
martinsimpson 0:51c12cc34baf 44 }
martinsimpson 0:51c12cc34baf 45
martinsimpson 0:51c12cc34baf 46 /**
martinsimpson 0:51c12cc34baf 47 * @brief Stop tunes Function
martinsimpson 0:51c12cc34baf 48 * @param name : Choose the PwmOut
martinsimpson 0:51c12cc34baf 49 * @retval None
martinsimpson 0:51c12cc34baf 50 */
martinsimpson 0:51c12cc34baf 51 void Stop_tunes(PwmOut name)
martinsimpson 0:51c12cc34baf 52 {
martinsimpson 0:51c12cc34baf 53 name.period_us(0);
martinsimpson 0:51c12cc34baf 54 }