Created
February 9, 2013 12:57
-
-
Save misodengaku/4745221 to your computer and use it in GitHub Desktop.
柿連打テスト
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/***********************************************************************/ | |
/* */ | |
/* FILE :Kakiren2.c */ | |
/* DATE :Fri, Feb 08, 2013 */ | |
/* DESCRIPTION :Main Program */ | |
/* CPU TYPE :H8/3694F */ | |
/* */ | |
/* This file is generated by Renesas Project Generator (Ver.4.16). */ | |
/* */ | |
/***********************************************************************/ | |
/* | |
intprg.cをこんな感じに書き換え | |
__interrupt(vect=19) void INT_TimerA(void) { | |
timer_a(); | |
} | |
*/ | |
#include "typedefine.h" | |
#include "iodefine.h" | |
#include "lcd.h" | |
#define SECOND 4000000 | |
void main(void); | |
#ifdef __cplusplus | |
extern "C" { | |
void abort(void); | |
} | |
#endif | |
//void wait2(void); | |
void dispnum3(int _n); | |
void dispnum2(int _n); | |
int sw1_push(void); | |
void timer_a(void); | |
void beep(void); | |
int nokori, flag; | |
void main(void) | |
{ | |
int count; | |
IO.PCR1 = 0; | |
IO.PCR7 = 0xff; | |
TA.TMA.BYTE = 0x18; | |
lcd_init(); | |
while(1){ | |
nokori = 14; | |
count = 0; | |
flag = 0; | |
IENR1.BYTE = IENR1.BYTE != 0x40; /* 割り込み禁止 */ | |
lcd_command(0x80); | |
lcd_puts((unsigned char *)"カキレンダ"); | |
lcd_command(0xC0); | |
lcd_puts((unsigned char *)"Please push sw1"); | |
wait(100000); | |
while (sw1_push() == 0) ; | |
lcd_command(0x80); | |
lcd_puts((unsigned char *)" "); | |
lcd_command(0xC0); | |
lcd_puts((unsigned char *)" "); | |
IENR1.BYTE = IENR1.BYTE | 0x40; /* 割り込み許可 */ | |
while(flag == 0); | |
while(flag == 1) | |
{ | |
while(sw1_push() == 0 && nokori > 0); | |
while(sw1_push() == 1 && nokori > 0); | |
if (nokori > 0) | |
count++; | |
} | |
beep(); | |
lcd_command(0x80); | |
lcd_puts((unsigned char *)"End!!!"); | |
wait(SECOND); | |
lcd_command(0x80); | |
lcd_puts((unsigned char *)"Score:"); | |
dispnum3(count); | |
lcd_command(0xC0); | |
lcd_puts((unsigned char *)"Please push sw1"); | |
while(sw1_push() == 0); | |
while(sw1_push() == 1); | |
lcd_command(0x80); | |
lcd_puts((unsigned char *)" "); | |
lcd_command(0xC0); | |
lcd_puts((unsigned char *)" "); | |
} | |
return; | |
} | |
/*------------------------------------------------ | |
数字出力 4桁以上はあかん | |
------------------------------------------------*/ | |
void dispnum3(int _n) | |
{ | |
unsigned char n1 = _n, n2 = 0, n3 = 0; | |
if(_n > 999) | |
return; | |
while(n1 >=100){ | |
n2 -= 100; | |
n3++; | |
} | |
while(n1 >=10){ | |
n1 -= 10; | |
n2++; | |
} | |
lcd_putc(n3 + '0'); | |
lcd_putc(n2 + '0'); | |
lcd_putc(n1 + '0'); | |
} | |
/*------------------------------------------------ | |
数字出力 3桁以上はあかん | |
------------------------------------------------*/ | |
void dispnum2(int _n) | |
{ | |
unsigned char n1 = _n, n2 = 0; | |
if(_n > 99) | |
return; | |
while(n1 >=10){ | |
n1 -= 10; | |
n2++; | |
} | |
lcd_putc(n2 + '0'); | |
lcd_putc(n1 + '0'); | |
} | |
void beep(void) | |
{ | |
int i; | |
for (i = 0; i < 5000; i++){ | |
IO.PDR7.BYTE = 0xff; | |
IO.PDR7.BYTE = 0x00; | |
} | |
} | |
int sw1_push(void) | |
{ | |
int pdr1, count; | |
pdr1 = IO.PDR1.BYTE; | |
count = ~pdr1 & 0x1; | |
return count; | |
} | |
void timer_a(void) | |
{ | |
IRR1.BYTE = IRR1.BYTE & 0xBF; | |
nokori--; | |
lcd_command(0x80); | |
lcd_puts((unsigned char *)" "); | |
lcd_command(0x80); | |
if (nokori >= 13) | |
{ | |
lcd_puts((unsigned char *)"3"); | |
nokori = 13; | |
beep(); | |
}else if (nokori == 12) | |
{ | |
lcd_puts((unsigned char *)"2"); | |
beep(); | |
}else if (nokori == 11) | |
{ | |
lcd_puts((unsigned char *)"1"); | |
beep(); | |
}else if (nokori == 10) | |
{ | |
beep(); | |
lcd_puts((unsigned char *)"Start!!!"); | |
flag = 1; | |
}else if (nokori > 0){ | |
dispnum2(nokori); | |
}else{ | |
flag = 0; | |
IENR1.BYTE = IENR1.BYTE != 0x40; /* 割り込み禁止 */ | |
} | |
} | |
#ifdef __cplusplus | |
void abort(void) | |
{ | |
} | |
#endif |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment