 STEP20_PWMMode
STEP20_PWMMode
(1)STEP20_PWMModeソースプログラム
STEP20_PWMModeソースプログラムを以下に示します。
/*****************************
 STEP20_PWMMode.c
*****************************/
#define _LEGACY_HEADERS
// インクルードファイルの読み込み
#include <pic.h>
// コンフィギュレーションワードの設定
__CONFIG ( UNPROTECT & LVPDIS & BOREN & MCLREN & PWRTEN & WDTDIS & INTIO );
// プロトタイプ宣言
void InitPWM (void);
void InitTimer2 (void);
// メイン関数
void main (void)
{
	// 1,2,17,18端子を入出力端子に設定
	CMCON = 0x07;
	
	// 電圧レベルの初期設定
	PORTA = 0xFF;
	PORTB = 0xFF;
	
	// 入出力設定
	TRISA = 0x20;
	TRISB = 0x00;
	
	// PWMモード設定関数の呼び出し
	InitPWM();
	
	// タイマ2設定関数の呼び出し
	InitTimer2();
	
	// 永久ループ
	while(1)
	{
		// LED1点灯
		RB0 = 0;
	}
}
// PWMモード設定関数
void InitPWM (void)
{
	// RB3端子を出力端子に設定
	TRISB3 = 0;
	
	// CCPのモードをPWMモードに設定
	CCP1M3 = 1;
	CCP1M2 = 1;
	CCP1M1 = 0;
	CCP1M0 = 0;
	
	// 周期を100μ秒に設定(99 + 1μ秒)
	PR2 = 0b01100011;
	
	// Hの時間を99μ秒に設定(396 × 0.25μ秒)
	CCPR1L = 0b01100011;
	CCP1X = 0;
	CCP1Y = 0;
}
// タイマ2設定関数
void InitTimer2 (void)
{
	// プリスケーラ値を1に設定
	T2CKPS1 = 0;
	T2CKPS0 = 0;
	
	// TMR2レジスタをクリア
	TMR2 = 0;
	
	// タイマ2起動
	TMR2ON = 1;
}