« 作りながら学ぶPICマイコン入門のフォロー(24) | メイン | 78K マイコンでLED温度計  »

STM8Sマイコンを使った最初のアプリケーション (7)


STM8S-Discovery ソース・コードを書き直そう

 ライブラリが整いましたので,いよいよ,プログラムを作成します.といっても, main 関数をカスタマイズするだけですみます.

main関数を変更する

 STVD のワークスペース・ペインにある main.c をダブルクリックすると,テキスト・エディタが開きます.

main.cファイルを開く

 ファイルの内容を以下のように書き換えます.

//**************************************
//
// main.c : 
//  
// Copyright (c) 2010 noritan.org
//
//**************************************

#include "stm8s.h"

//======================================
// Constant declaration
//======================================
#define PERIOD  (62500)         // timer counter period
#define DUTY    (PERIOD/2)      // PWM duty value

//======================================
// Main procedure
//======================================
main()
{
  TIM3_TimeBaseInit(            // Configure Timebase
    TIM3_PRESCALER_32,          // divide by 32
    PERIOD-1                    // divide by PERIOD
  );
  TIM3_OC2Init(                 // Configure OC2 output
    TIM3_OCMODE_PWM1,           // PWM mode-1 output
    TIM3_OUTPUTSTATE_ENABLE,    // Enable OC2 output
    DUTY,                       // Activated on count DUTY
    TIM3_OCPOLARITY_LOW         // LOW active output
  );
  TIM3_Cmd(ENABLE);             // Start the Timer
  while (1);                    // Loop forever
}

 ファームウェア・ライブラリを使用するために,ヘッダ・ファイル stm8s.h を呼び出しています.プログラム本体は,三つのライブラリ関数を呼び出してから,無限ループに入るだけの簡単なものです.

 最初の TIM3_TimeBaseInit 関数は,タイマ TIM3 の分周比を指定します.分周比の設定値は前述したとおりです.タイマの分周比を設定するときには,1少ない値 PERIOD-1 を与えます.

 二つ目の TIM3_OC2Init 関数は, PWM 出力を設定する関数です.ここで使用する PWM 機能は,アウトプット・コンペア(Output Compare: OC)機能の一部として実装されています.そのため, PWM の設定を行う関数も OC の設定と共通の TIM3_OC2Init になっているというわけです. PWM 機能では,タイマ・カウンタのオーバフローでポート出力が初期化され, OC イベントが発生するとポート出力が反転されます.点滅のデューティ比を50%にするため, OC イベントが発生するカウンタ値をタイマ周期の半分の値 DUTY に設定しています.また,出力の極性を LOW アクティブとして, TIM3_CCR2 レジスタの値に比例した長さだけ LED が点灯するようにしています.

 三つ目の TIM3_Cmd 関数は,タイマを始動するための関数です.これ以降,タイマは, CPU とは無関係に動作します.このため, CPU が無限ループに入ったあとも LED は自動的に点滅を続けます.

 これら関数の詳細については,ファームウェア・ライブラリに付属しているオンライン・マニュアル(stm8s_fwlib_um.chm)に書いてあります.

変更されたmain関数

 ファイルの編集が終わったら, ctrl+S でファイルを保存します.

プログラムをビルドする

 ライブラリとソース・コードがそろったら,コンパイルとリンクをして,マイコンに書き込むバイナリ・コードを作成します.メニューから「Build → Build All」を選んでバイナリ・コードを作成します.

バイナリ・コードの作成

 出力ペインに 0 error(s), 0 warning(s) と表示されていたら,バイナリ・コードの作成は,無事終了です.

バイナリ・コードの作成完了

  次回は,マイコンにプログラムを書き込んで,実行します.

田中範明(noritan.org)

STM8-Discoveryは 現在、秋月電子通商で取り扱っています

カテゴリ:

トラックバック

このエントリーのトラックバックURL:
http://www.eleki-jack.com/mt/mt-tb.cgi/3819





カテゴリ

会社案内
情報セキュリティおよび個人情報の取り扱いについて

コメントとトラックバックは、spamを予防するために、編集担当が公開の作業をするまで非公開になっています。
コメントはそれぞれ投稿した人のものです。

Powered by
Movable Type 4.1
/*yahoo remove*/