From ff0928d86391f4f3e57623f52d953d91768f5a92 Mon Sep 17 00:00:00 2001 From: fujita_ryohei Date: Thu, 10 Dec 2009 08:22:50 +0000 Subject: [PATCH] =?UTF-8?q?=E3=82=AB=E3=83=AC=E3=83=B3=E3=83=80=E3=83=AC?= =?UTF-8?q?=E3=82=B8=E3=82=B9=E3=82=BF=E3=81=8CBCD=E3=81=A0=E3=81=A3?= =?UTF-8?q?=E3=81=9F=E3=81=AE=E3=82=92=E5=BF=98=E3=82=8C=E3=81=A6=E3=81=84?= =?UTF-8?q?=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@49 013db118-44a6-b54f-8bf7-843cb86687b1 --- trunk/accero.c | 31 ++++++++++++++++++++++++++----- trunk/accero.h | 6 +----- trunk/main.c | 3 +-- 3 files changed, 28 insertions(+), 12 deletions(-) diff --git a/trunk/accero.c b/trunk/accero.c index ac2910a..a26fae7 100644 --- a/trunk/accero.c +++ b/trunk/accero.c @@ -12,6 +12,8 @@ #pragma ROT // rorb, rolb, rorw, rolw #pragma MUL +#pragma BCD + #include "incs.h" #include @@ -245,6 +247,21 @@ u8 hosu_read( ) } +void hosu_init() +{ + u8 i; + + hyst_pedometer = (u16*)pool; + do + { + *( hyst_pedometer + i ) = MAGIC_PEDO_NODATA; + i += 1; + }while( i != 0 ); +} + + + + /*=========================================================  加速度センサ透過アクセス リード @@ -388,6 +405,10 @@ static const u16 DAYS_FROM_HNY[] = { u16 get_long_hour() { u16 long_hour; + u8 year_hex = bcdtob( YEAR ); + u8 month_hex = bcdtob( MONTH ); + u8 day_hex = bcdtob( DAY ); + u8 hour_hex = bcdtob( HOUR ); DI(); @@ -395,15 +416,15 @@ u16 get_long_hour() while( !RWST ){;} // まず日数の部分 - long_hour = YEAR * 365; - long_hour += ( YEAR / 4 ) +1; // 閏日の分。修正ユリウスでは2000年も閏年 - long_hour += DAYS_FROM_HNY[ MONTH ]; - if(( 2 <= MONTH ) && ( DAY < 29 )) + long_hour = year_hex * 365; + long_hour += ( year_hex / 4 ) +1; // 閏日の分。修正ユリウスでは2000年も閏年 + long_hour += DAYS_FROM_HNY[ month_hex ]; + if(( 2 <= month_hex ) && ( day_hex < 29 )) { // 2/29より前 long_hour -= 1; } - long_hour += DAY; + long_hour += day_hex; long_hour *= 24; long_hour += HOUR; diff --git a/trunk/accero.h b/trunk/accero.h index 7c53b9b..936a54b 100644 --- a/trunk/accero.h +++ b/trunk/accero.h @@ -6,15 +6,11 @@ -/////////////////////////////////////////////////////////// -extern u16* hyst_pedometer; - - - /////////////////////////////////////////////////////////// task_status_immed tsk_cbk_accero( ); task_status_immed acc_hosu_set( ); +void hosu_init(); void hosu_read_end( ); u8 hosu_read( ); diff --git a/trunk/main.c b/trunk/main.c index 755224f..37d1e5d 100644 --- a/trunk/main.c +++ b/trunk/main.c @@ -61,8 +61,7 @@ void main_loop( void ) read_dipsw( ); // 特定スイッチで何かするか? - hyst_pedometer = (u16*)pool; - + hosu_init(); renge_init( ); renge_task_interval_run_force = 1;