こんばんは、まつぞの です。 丁度 GCC の C++ コンパイラを使って、7セグLED クラスを作って 遊んでいたところです(^^) こんな感じです。 // DIP 型 7セグの LED 5 桁をダイナミック点灯させるクラス class Dip7seg{ public: Dip7seg(); ~Dip7seg(); void disp(long ldata); // long のデータを与えると LED に表示する private: // long のデータを表示用のセグメントデータに変換する void convert(long ldata, seg_type* cdata); // long のデータを各桁のデータに分解する // ( convert() から呼ばれる ) char calc_digit(long* pNum, long base); }; # 実際にはもっとメンバがあるのですが、多少省略してあります。 LED を実際に点灯させるには、接続する I/O ポートのアドレス、 ダイナミック表示のスキャンスピードなどといったデータが 必要ですし、初期化処理としてポートの DDR を出力にする、 といった処理も必要です。 # 実は、上の例でも実際には ITU のタイマを利用していますし、 # I/O ポートを節約するためにシフトレジスタを使っているので # ShiftRegister などという class も作っています C++ 的なところは、 - このクラスを使って LED を点灯させるには、disp() に long のデータを与えるだけでよい。 初期化処理や I/O ポートのアドレス、スキャン周期、などは 気にしなくてよい - convert(), calc_digit() といった処理を private にしてあり このクラスの利用者には実装の詳細、ということで見えないように している といったところでしょうか。 長くなってしまったのでこのへんでやめておきます。