PIC18F-MOD-2553には小さなモジュール基板上に、タクトスイッチ、LED、外部装置の接続端子などが実装されているため、ブレッドボードなどを使用しなくても、いろいろな実験を行うことができます。
PICSYS18では、4個までのPWM出力を任意のI/Oピンに接続し、制御することができます。
PWM出力の制御は、基本的に2つの操作で行います。例えばRB0ポートにLEDなどを接続した場合、以下の2つの操作を行います。
PWMパルスの継続的な出力処理は、PICSYS18が自動的に行います。
expwmled1.c: 1個のLEDのPWM制御
#include "picsys18.h"
void setup()
{
pinMode(LED1, OUT_PWM1) ; // PWM出力の割り付け
pinMode(SW2, INPUT) ;
pinMode(SW3, INPUT) ;
}
int duty = 0 ;
void loop()
{
delayMilliseconds(50) ;
if (digitalRead(SW2) == LOW)
duty += 2 ;
if (digitalRead(SW3) == LOW)
duty -= 2 ;
/* 値は0(%)から100(%) */
if (duty > 100)
duty = 100 ;
if (duty < 0)
duty = 0 ;
digitalWrite(LED1, duty) ; // PWMのデューティー比の設定
}
LED1はPIC18F-MOD-2553に実装されたLEDで、具体的にはpic18f-mod-2553.hで、#defineによりRA(5)と定義されています。