電子工作LEDちかちかrev2

[過去記事](https://qiita.com/Banayad/items/cccca7163ec98e7a0f88)を書いたときに頂いたご指摘を元にコードの修正を試みました。
ソフトの設計レベルもっとあげたいな。。


```c:r_cg_timer_user.c

/***********************************************************************************************************************
Global variables and functions
***********************************************************************************************************************/
/* Start user code for global. Do not edit comment generated here */
int32_t loopcnt = 0;
static uint8_t sts = 0;
static void Sadamerareshi_Hikari(const uint8_t pattern[],uint8_t size);
static void Gyakutensuru_Hikari(const uint8_t pattern[],uint8_t size);
//固定パターンであれば、constでFLASH-ROMへ。メモリ(RAM)の1バイトは血の一滴!!!
const uint8_t led_pattern [] = {
    0x00,/* □□□□□□□ */ 
    0x08,/* □□□■□□□ */
    0x1C,/* □□■■■□□ */
    0x3E,/* □■■■■■□ */
    0x7F,/* ■■■■■■■ */
    0x3E,/* □■■■■■□ */
    0x1C,/* □□■■■□□ */
    0x08,/* □□□■□□□ */
};
const uint8_t led_pattern2 [] = {
    0x00,/* □□□□□□□ */
    0x40,/* ■□□□□□□ */
    0x60,/* ■■□□□□□ */
    0x70,/* ■■■□□□□ */
    0x78,/* ■■■■□□□ */
    0x7C,/* ■■■■■□□ */
    0x7E,/* ■■■■■■□ */
    0x7F,/* ■■■■■■■ */
};
const uint8_t led_pattern3 [] = {
    0x00,/* □□□□□□□ */
    0x01,/* □□□□□□■ */
    0x03,/* □□□□□■■ */
    0x07,/* □□□□■■■ */
    0x0F,/* □□□■■■■ */
    0x1F,/* □□■■■■■ */
    0x3F,/* □■■■■■■ */
    0x7F,/* ■■■■■■■ */
};

/* End user code. Do not edit comment generated here */

/***********************************************************************************************************************
* Function Name: r_tau0_channel0_interrupt
* Description  : This function is INTTM00 interrupt service routine.
* Arguments    : None
* Return Value : None
***********************************************************************************************************************/
static void __near r_tau0_channel0_interrupt(void)
{
    /* Start user code. Do not edit comment generated here */
	switch(sts){
	case(0):
		if(loopcnt < 6){
		  P0 = (P0 >> 1);
		}
		else{
		  P0 = (P0 << 1);
		}
		loopcnt++;
		if(loopcnt > 11){
	  	  loopcnt=0;
		  sts=1;
		}
	break;
	case(1):
		Sadamerareshi_Hikari(led_pattern,  sizeof(led_pattern));
	break;
	case(2):
		Sadamerareshi_Hikari(led_pattern2, sizeof(led_pattern2));
	break;
	case(3):
		Gyakutensuru_Hikari(led_pattern2, sizeof(led_pattern2));
	break;
	case(4):
		Sadamerareshi_Hikari(led_pattern3, sizeof(led_pattern3));
	break;
	case(5):
		Gyakutensuru_Hikari(led_pattern3, sizeof(led_pattern3));
	break;
	default:
		P0=0x40;
		sts=0;
	break;	
	}
}
static void Sadamerareshi_Hikari(const uint8_t pattern[],uint8_t size){
		P0 = pattern[loopcnt];
		loopcnt = (loopcnt+1) % size;
		if (loopcnt == 0) {
		   sts++;
		}
}
static void Gyakutensuru_Hikari(const uint8_t pattern[],uint8_t size){
		uint8_t tmp;
		tmp = pattern[loopcnt];
		P0 = ~tmp;
		loopcnt = (loopcnt+1) % size;
		if (loopcnt == 0) {
		   sts++;
		}
}

    /* End user code. Do not edit comment generated here */
/* Start user code for adding. Do not edit comment generated here */
/* End user code. Do not edit comment generated here */
```

![XXX.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/450697/5e6e5cd7-3c32-4ea6-432f-84ce19d2c1ab.gif)


次はどうしようっかな～