Skip to content

Commit c7a1cb3

Browse files
Shota AokiTiryoh
andauthored
Reset uncontrollable motor frequency to zero. (#72)
* Reset uncontrollable motor frequency to zero. * Update readme * Bump up to 3.2.0 Co-authored-by: Daisuke Sato <daisuke.sato@rt-net.jp>
1 parent bea4d2d commit c7a1cb3

File tree

2 files changed

+22
-5
lines changed

2 files changed

+22
-5
lines changed

README.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -160,12 +160,16 @@ $ echo 1 > /dev/rtmotoren0
160160

161161
### PWM frequency for left/right motor driver (Output)
162162

163-
Write 0 ~ 10000 to `/dev/rtmotor_raw_l0` or `/dev/rtmotor_raw_r0` to set PWM frequency for motor drivers.
163+
Write 0 ~ ±10000 to `/dev/rtmotor_raw_l0` or `/dev/rtmotor_raw_r0` to set PWM frequency for motor drivers.
164164

165-
`/dev/rtmotor_raw_l0` または `/dev/rtmotor_raw_r0` に 0 ~ 10000 を書き込み、モータドライバへのPWM周波数を設定します。
165+
※ 0 ~ ±4 Hz will be reset to 0 Hz.
166+
167+
`/dev/rtmotor_raw_l0` または `/dev/rtmotor_raw_r0` に 0 ~ ±10000 を書き込み、モータドライバへのPWM周波数を設定します。
168+
169+
※ 0 ~ ±4 Hzは0Hzへリセットされます
166170

167171
```sh
168-
# echo 0 ~ 10000(Hz) > /dev/rtmotor_raw_[l0, r0]
172+
# echo 0 ~ ±10000(Hz) > /dev/rtmotor_raw_[l0, r0]
169173
$ echo 1 > /dev/rtmotoren0
170174
$ echo 400 > /dev/rtmotor_raw_l0
171175
```

src/drivers/rtmouse.c

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* rtmouse.c
44
* Raspberry Pi Mouse device driver
55
*
6-
* Version: 3.1.1
6+
* Version: 3.2.0
77
*
88
* Copyright (C) 2015-2021 RT Corporation <shop@rt-net.jp>
99
*
@@ -55,7 +55,7 @@
5555

5656
MODULE_AUTHOR("RT Corporation");
5757
MODULE_LICENSE("GPL");
58-
MODULE_VERSION("3.1.1");
58+
MODULE_VERSION("3.2.0");
5959
MODULE_DESCRIPTION("Raspberry Pi Mouse device driver");
6060

6161
/* --- Device Numbers --- */
@@ -272,6 +272,9 @@ static struct mutex lock;
272272
#define CNT_ADDR_MSB 0x10
273273
#define CNT_ADDR_LSB 0x11
274274

275+
/* Motor Parameter */
276+
#define MOTOR_UNCONTROLLABLE_FREQ 5
277+
275278
/* --- Function Declarations --- */
276279
static void set_motor_r_freq(int freq);
277280
static void set_motor_l_freq(int freq);
@@ -467,6 +470,11 @@ static void set_motor_l_freq(int freq)
467470

468471
rpi_gpio_function_set(BUZZER_BASE, RPI_GPF_OUTPUT);
469472

473+
// Reset uncontrollable frequency to zero.
474+
if (abs(freq) < MOTOR_UNCONTROLLABLE_FREQ) {
475+
freq = 0;
476+
}
477+
470478
if (freq == 0) {
471479
rpi_gpio_function_set(MOTCLK_L_BASE, RPI_GPF_OUTPUT);
472480
return;
@@ -498,6 +506,11 @@ static void set_motor_r_freq(int freq)
498506

499507
rpi_gpio_function_set(BUZZER_BASE, RPI_GPF_OUTPUT);
500508

509+
// Reset uncontrollable frequency to zero.
510+
if (abs(freq) < MOTOR_UNCONTROLLABLE_FREQ) {
511+
freq = 0;
512+
}
513+
501514
if (freq == 0) {
502515
rpi_gpio_function_set(MOTCLK_R_BASE, RPI_GPF_OUTPUT);
503516
return;

0 commit comments

Comments
 (0)