プログラム解説

注釈
//で始まる行は注釈でプログラムではありません。

set_adc_channel()
clr=read_adc()
AD変換する信号(チャンネル)を選び、AD変換します。変換したディジタル値が変数(clr)に入ります。

色モデル
色のボリュームをAD変換した値は、0..360の色データに変換します。また、乱数 rand() を加えて、データに「ゆらぎ」を与えます。
h = (long)(clr)*35/maxby10+ rand()%10;
 cdsの値はまず 0..100 の値に変換します。これをさらに1/20として、同じ色の繰り返し回数とします。

#include
 必要な情報が入ったファイルを組み込み利用します。

点滅データ
int const Glow[nump] = { 0, 4, 8, 13,17, 22,
に点滅する明るさのデータが記録されています。このデータを順に取り出して、表示します。
この種のデータを配列を呼びます。

周期
for(m=0、..) の繰り返しは、Glow[]のデータを順に取り出し、hsvモデルからRGBモデルに変換後、PWM変換してフルカラーで表示します。
 hを60で割り6等分します。各整数値を100倍して計算し、最後に100で割ることで、二桁の小数計算を16ビットの整数計算で代用しています。小数計算を行ってコンパイルすると、プログラムメモリが不足します。

setup_adc_()
AD(アナログ>ディジタル変換)機能の設定をします。

sleep()
最後にcountで表示回数を計数し、1000回を超えたらsleep()します。

.変数
int max ; 等は「変数」の宣言です。変数の名前は予め宣言してから利用します。int は変数のタイプです。

PWM
for(j=0)の繰り返しは、同じ色を繰り返し表示することで、周期の時間を調整します。for(k=0.)の繰り返しが、PWM処理の中核です。 
ここで、実際の点滅処理を行っています。

繰り返し
while( ){....}
 全体の繰り返しです。sleep()で「眠る」まで、繰り返します。最初の { に対応する } (最後から二つ目)までが繰り返し範囲です。

void main(){ }
ここから実際に実行するプログラムが始まります。