pp.614ff.
あと残っているのはベースラインフィルターのパラメーターだけである。アプリケーションノートAN3891を読んで意味はわかったが、具体的にいくつに設定すればよいのかわからない。わかったのは、FDLについてはfalling時を相対的に遅く(値を大きく)、rising時を相対的に速く(値を小さく)設定することくらいである。ここでは適当に設定してみる。
// ベースラインフィルターの各種パラメーターを設定して端末に表示する。 pad.set_mhd_r(10); // rising時のMHDを設定する。値の範囲は1~63。 pad.set_nhd_r(5); // rising時のNHDを設定する。値の範囲は1~63。 pad.set_ncl_r(10); // rising時のNCLを設定する。値の範囲は0~255。 pad.set_fdl_r(0); // rising時のFDLを設定する。値の範囲は0~255。 pad.set_mhd_f(15); // falling時のMHDを設定する。値の範囲は1~63。 pad.set_nhd_f(5); // falling時のNHDを設定する。値の範囲は1~63。 pad.set_ncl_f(10); // falling時のNCLを設定する。値の範囲は0~255。 pad.set_fdl_f(200); // falling時のFDLを設定する。値の範囲は0~255。 pad.set_nhd_t(1); // touched時のNHDを設定する。値の範囲は1~63。 pad.set_ncl_t(1); // touched時のNCLを設定する。値の範囲は0~255。 pad.set_fdl_t(2); // touched時のFDLを設定する。値の範囲は0~255。 uint8_t buff[11]; print_touch_filter_parameters(buff);
void MPR121Class::get_touch_filter_parameters(uint8_t*buff){i2c.read(_SLA, MHD_RISING , 11, buff);} void MPR121Class::get_prox_filter_parameters (uint8_t*buff){i2c.read(_SLA, PROX_MHD_RISING, 11, buff);} void MPR121Class::set_mhd_r(uint8_t val){i2c.write(_SLA, MHD_RISING, val);} void MPR121Class::set_nhd_r(uint8_t val){i2c.write(_SLA, MHD_RISING + 1, val);} void MPR121Class::set_ncl_r(uint8_t val){i2c.write(_SLA, MHD_RISING + 2, val);} void MPR121Class::set_fdl_r(uint8_t val){i2c.write(_SLA, MHD_RISING + 3, val);} void MPR121Class::set_mhd_f(uint8_t val){i2c.write(_SLA, MHD_RISING + 4, val);} void MPR121Class::set_nhd_f(uint8_t val){i2c.write(_SLA, MHD_RISING + 5, val);} void MPR121Class::set_ncl_f(uint8_t val){i2c.write(_SLA, MHD_RISING + 6, val);} void MPR121Class::set_fdl_f(uint8_t val){i2c.write(_SLA, MHD_RISING + 7, val);} void MPR121Class::set_nhd_t(uint8_t val){i2c.write(_SLA, MHD_RISING + 8, val);} void MPR121Class::set_ncl_t(uint8_t val){i2c.write(_SLA, MHD_RISING + 9, val);} void MPR121Class::set_fdl_t(uint8_t val){i2c.write(_SLA, MHD_RISING + 10, val);} void MPR121Class::set_mhd_prox_r(uint8_t val){i2c.write(_SLA, PROX_MHD_RISING, val);} void MPR121Class::set_nhd_prox_r(uint8_t val){i2c.write(_SLA, PROX_MHD_RISING + 1, val);} void MPR121Class::set_ncl_prox_r(uint8_t val){i2c.write(_SLA, PROX_MHD_RISING + 2, val);} void MPR121Class::set_fdl_prox_r(uint8_t val){i2c.write(_SLA, PROX_MHD_RISING + 3, val);} void MPR121Class::set_mhd_prox_f(uint8_t val){i2c.write(_SLA, PROX_MHD_RISING + 4, val);} void MPR121Class::set_nhd_prox_f(uint8_t val){i2c.write(_SLA, PROX_MHD_RISING + 5, val);} void MPR121Class::set_ncl_prox_f(uint8_t val){i2c.write(_SLA, PROX_MHD_RISING + 6, val);} void MPR121Class::set_fdl_prox_f(uint8_t val){i2c.write(_SLA, PROX_MHD_RISING + 7, val);} void MPR121Class::set_nhd_proxr_t(uint8_t val){i2c.write(_SLA, PROX_MHD_RISING + 8, val);} void MPR121Class::set_ncl_proxr_t(uint8_t val){i2c.write(_SLA, PROX_MHD_RISING + 9, val);} void MPR121Class::set_fdl_proxr_t(uint8_t val){i2c.write(_SLA, PROX_MHD_RISING + 10, val);}