PWMの制御
PWMはモータ制御でおなじみです。また、最近ではつかわれないですが音声を再生することもできます。TWELITEでは最大4つのPWMを使えます。どんなマイコンでもピンの機能を変更できるものは設定が面倒です。これも面倒でした。
TWELITE DIPのピン配置は、以下の通りです。

PWMはピン番号4,6.7,11に配置されています。
マニュアルを見ると、

PWMの表記がたくさんありなんじゃこりゃ!です。超簡単!標準アプリの機能名とTWELITE DIPのピン配置図における機能が同じです。赤のように設定するには、pwm.h pwm.cを参照してください。

    vAHI_TimerFineGrainDIOControl(0x7);
    vAHI_TimerSetLocation(E_AHI_TIMER_1, TRUE, TRUE);
// PWM制御のインターフェース関数
void InitPwm();
void StartPwm(uint8  pwmNo, uint16 freq, uint16 duty);
void StopPwm(int pwmNo);
bool isStarted(int pwmNo);
使用例 master.c1秒のタイマイベントで、

static void vMyEventHandler(tsEvent *pEv, teEvent eEvent, uint32 u32evarg)
{
	 // 4 msec tick timer 
	if (eEvent == E_EVENT_TICK_SECOND) 
	{
		if(isStarted(PWM1) == FALSE)
		{
			StartPwm(PWM1, 64, 50);
			StartPwm(PWM2, 64, 25);
			StartPwm(PWM3, 64, 75);
			StartPwm(PWM4, 64, 10);
		}
		else
		{
			StopPwm(PWM1);
			StopPwm(PWM2);
			StopPwm(PWM3);
			StopPwm(PWM4);
		}
		
	}
}

My_Pwm.zip ダウンロード