内容へ移動
MA-X/MA-S/MA-E/IP-K Developers' WiKi
ユーザ用ツール
管理
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
PDF の出力
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
現在位置:
メインページ
»
ソフトウェア開発 (XG シリーズ)
»
LED の制御
トレース:
•
MA-X3xx シリーズ TIPS
xg_series_devel:lighting_up_led:start
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== LED の制御 ====== XG-50 には、以下のとおり LED が実装されています。 {{:xg_series_devel:lighting_up_led:xg-50_panel_leds.jpeg?600|XG-50 panel}} \\ |<24em 3em 2em 12em >| ^ シルク ^ 色 ^ Note ^ | PWR | @#ff0000:<color black>赤</color> |**autoled** として OS が制御| |:::| @#00ff00:<color black>緑</color> |boardctl() 経由で制御| | STS1 | @#ff0000:<color black>赤</color> |LED driver((TCA6507)) 経由で制御| |:::| @#00ff00:<color black>緑</color> |:::| | STS2 | @#ff0000:<color black>赤</color> |:::| |:::| @#00ff00:<color black>緑</color> |:::| | STS3 | @#ff0000:<color black>赤</color> |:::| |:::| @#00ff00:<color black>緑</color> |:::| \\ ===== POWER LED(緑) の制御 ===== **boardctl(BIOC_SET_LED)** で 点灯/消灯 を制御します。 <code> bool onoff = true; boardctl(BIOC_SET_LED, (uintptr_t) onoff); </code> \\ ===== STATUS LED の制御 ===== デフォルトの **CONFIG** では、LED driver として **/dev/leddrv0** が登録されます。 <code> nsh> ls -l /dev/ /dev: cr--r--r-- 0 adc0 crw-rw-rw- 0 console crw-rw-rw- 0 i2c1 cr--r--r-- 0 leddrv0 <---- brw-rw-rw- 0 mtdblock0 crw-rw-rw- 0 null crw-rw-rw- 0 ptmx crw-rw-rw- 0 ramlog cr--r--r-- 0 random crw-rw-rw- 0 rtc0 crw-rw-rw- 0 timer0 crw-rw-rw- 0 ttyS0 crw-rw-rw- 0 ttyS1 crw-rw-rw- 0 ttyS2 crw-rw-rw- 0 ttyS3 crw-rw-rw- 0 zero nsh> </code> \\ ioctl() により各 LED の ON/OFF を制御することができます。 <sxh c toolbar:false; title:led_main.c> #include <nuttx/config.h> #include <stdio.h> #include <fcntl.h> #include <sys/ioctl.h> #include <nuttx/leds/tca6507.h> int led_main(int argc, char **argv) { int fd, ret = -1; struct tca6507_onoff_s leds; /* この構造体でリクエストを発行 */ fd = open("/dev/leddrv0", O_RDONLY); if (fd > 0) { leds.led = LED_STATUS3_GREEN; /* STATUS LED 3 の Green を */ leds.on = 1; /* 点灯させる */ ioctl(fd, LEDIOC_ONOFF, (intptr_t) &leds); close(fd); ret = 0; } return ret; } </sxh> \\ ===== LED OFF Switch ===== 電池で駆動させる場合など、LED の消費電力が問題になるケースがあります。\\ そのような用途で、LED を強制的に**消灯**させるスイッチを用意してあります。 {{:xg_series_devel:lighting_up_led:xg-50_panel_led_sw.jpeg?600|LED OFF Switch}} スイッチを右側にスライドさせると、LED が全消灯となります。 \\ ==== Switch 状態の取得 ==== boardctl() で LED OFF Switch の状態を取得することができます。 <code> int sw_state; boardctl(BIOC_GET_LEDSW, (uintptr_t) &sw_state); # sw_state == 0 --> LED OFF </code>
xg_series_devel/lighting_up_led/start.txt
· 最終更新: 2018/12/25 09:44 by
admin
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
PDF の出力
文書の先頭へ