PICSYS16では、ドットマトリックスLEDを簡単に制御することができます。
ドットマトリックスLEDの表示に必要な継続的なリフレッシュ処理は、PICSYS16が自動的に行います。
exdml1.c: ドットマトリックスLEDの利用
#include "picsys16.h"
void setup()
{
DML_init(SR_DAT, SR_CLK, SEG1, SEG2, SEG3, SEG4) ;
pinMode(SW1, INPUT) ;
pinMode(SW2, INPUT) ;
pinMode(SW3, INPUT) ;
pinMode(SW4, INPUT) ;
}
int xpos = 0 ;
int ypos = 0 ;
byte color = DML_DOT_ORANGE ;
void loop()
{
delayMilliseconds(100) ;
/* 表示ドットの上下移動 */
if (digitalRead(SW1) == LOW) {
ypos += 1 ;
color = DML_DOT_RED ; // 色も変更
}
if (digitalRead(SW2) == LOW) {
ypos -= 1 ;
color = DML_DOT_GREEN ; // 色も変更
}
/* 表示ドットの左右移動 */
if (digitalRead(SW3) == LOW)
xpos -= 1 ;
if (digitalRead(SW4) == LOW)
xpos += 1 ;
/* 値は0から7 */
if (xpos > 7)
xpos = 7 ;
if (xpos < 0)
xpos = 0 ;
if (ypos > 7)
ypos = 7 ;
if (ypos < 0)
ypos = 0 ;
DML_clear() ; // 一度消して
DML_plot(xpos, ypos, color) ; // 書き直し
}
SW1-SW4でドットを上下左右に移動させるとともに、SW1,SW2でドットの色を変更するプログラムです。