rengeの即時実行の方のタスク登録やらがおかしかったので修正。
  タスクの管理?に不整合が出てしまう。タスク登録処理中に、割り込みからも登録しようとすると不整合が出る。 タスクを登録するが、呼ばなくなってしまう。
  登録中に割り込み禁止にすると、I2Cのステートがおかしくなってしまう。
  ↑解消のため、I2C_CTRをすべて割り込みドリブンにした。
 RTCアラーム実装
 IRQマスク実装

未:TWL側とのやりとり
  歩数計 今回のタスク管理の修正で評価に入れる状態になったと思われ


git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@9 013db118-44a6-b54f-8bf7-843cb86687b1
This commit is contained in:
fujita_ryohei 2009-09-15 01:16:25 +00:00
parent 4ef33818d9
commit 218026b2e2
27 changed files with 7495 additions and 286 deletions

View File

@ -68,7 +68,7 @@ task_status_immed tsk_cbk_accero(){ //
iic_mcu_read( IIC_SLA_ACCEL, ( ACC_REG_X | 0x80 ), 6, &vreg_ctr[VREG_C_ACC_XL] );
if(( vreg_ctr[ VREG_C_ACC_CONFIG ] & VREG_BITMASK_ACC_CONF1_ACQ ) == 1 ){
vreg_ctr[ VREG_C_IRQ1 ] |= REG_BIT_ACC_DAT_RDY;
if( ( vreg_ctr[ VREG_C_IRQ_MASK1 ] & REG_BIT_ACC_DAT_RDY ) != 0 ){
if( ( vreg_ctr[ VREG_C_IRQ_MASK1 ] & REG_BIT_ACC_DAT_RDY ) == 0 ){
IRQ0_ast;
}
}
@ -96,7 +96,7 @@ task_status_immed acc_read(){
vreg_ctr[ VREG_C_ACC_W_BUF ] = iic_mcu_read_a_byte( IIC_SLA_ACCEL, vreg_ctr[VREG_C_ACC_R_ADRS] );
// vreg_ctr[ VREG_C_ACC_R_BUF ] = iic_mcu_read_a_byte( IIC_SLA_ACCEL, vreg_ctr[VREG_C_ACC_R_ADRS] );
vreg_ctr[ VREG_C_IRQ1 ] |= REG_BIT_ACC_ACK;
if( ( vreg_ctr[ VREG_C_IRQ_MASK1 ] & REG_BIT_ACC_ACK ) != 0 ){
if( ( vreg_ctr[ VREG_C_IRQ_MASK1 ] & REG_BIT_ACC_ACK ) == 0 ){
IRQ0_ast;
}
return( ERR_SUCCESS );
@ -110,7 +110,7 @@ task_status_immed acc_read(){
task_status_immed acc_write(){
iic_mcu_write_a_byte( IIC_SLA_ACCEL, vreg_ctr[VREG_C_ACC_W_ADRS], vreg_ctr[VREG_C_ACC_W_BUF] );
vreg_ctr[ VREG_C_IRQ1 ] |= REG_BIT_ACC_ACK;
if( ( vreg_ctr[ VREG_C_IRQ_MASK1 ] & REG_BIT_ACC_ACK ) != 0 ){
if( ( vreg_ctr[ VREG_C_IRQ_MASK1 ] & REG_BIT_ACC_ACK ) == 0 ){
IRQ0_ast;
}
return( ERR_SUCCESS );

View File

@ -42,7 +42,7 @@ task_interval tsk_adc(){
if( abs( old_tune - vreg_ctr[ VREG_TUNE ] ) >= 4 ){
old_tune = vreg_ctr[ VREG_TUNE ];
vreg_ctr[ VREG_C_IRQ0 ] |= REG_BIT_VR_TUNE_CHANGE;
if( ( vreg_ctr[ VREG_C_IRQ_MASK0 ] & REG_BIT_VR_TUNE_CHANGE ) != 0 ){
if( ( vreg_ctr[ VREG_C_IRQ_MASK0 ] & REG_BIT_VR_TUNE_CHANGE ) == 0 ){
IRQ0_ast;
}
}
@ -51,7 +51,7 @@ task_interval tsk_adc(){
if( abs( old_sndvol - vreg_ctr[ VREG_C_SND_VOL ] ) >= 4 ){
old_sndvol = vreg_ctr[ VREG_C_SND_VOL ];
vreg_ctr[ VREG_C_IRQ0 ] |= REG_BIT_VR_SNDVOL_CHANGE;
if( ( vreg_ctr[ VREG_C_IRQ_MASK0 ] & REG_BIT_VR_SNDVOL_CHANGE ) != 0 ){
if( ( vreg_ctr[ VREG_C_IRQ_MASK0 ] & REG_BIT_VR_SNDVOL_CHANGE ) == 0 ){
IRQ0_ast;
}
}
@ -81,7 +81,7 @@ task_interval tsk_adc(){
ADIF = 0;
ADMK = 0;
LED_duty_TUNE = 0x03FC - ((u16)( vreg_ctr[ VREG_C_TUNE ] ) << 2);
LED_duty_TUNE = ((u16)( vreg_ctr[ VREG_C_TUNE ] ) << 2);
return( 8 );
}
}

View File

@ -14,10 +14,16 @@ enum pwr_state_{
// WAKE,
};
enum poweron_reason_{
PWSW = 0,
RTC_ALARM,
};
// タスクシステムの状態情報など
typedef struct{
enum pwr_state_ pwr_state;
enum poweron_reason_ poweron_reason;
u8 dipsw0 :1;
u8 dipsw1 :1;
u8 dipsw2 :1;

View File

@ -14,7 +14,6 @@
#ifdef _MODEL_TEG2_
#define _PMIC_TWL_
#define _MCU_KE3_

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,568 @@
:02000000000EF0
:02000200FFFFFE
:02000800E334DF
:04001000D932DB32D4
:02001C00EB33C4
:02002400FB33AC
:02002A000F3392
:08003400E534AC34A734CF32EF
:04004A00DD32A234CD
:0400C0006EFBFF854F
:0A00C400FFFFFFFFFFFFFFFFFFFF3C
:0A00CE00FFFFFFFFFFFFFFFFFFFF32
:1000D800C7F616A7F647DFFBFDF307FD5921EFF832
:1000E800C6D73142210261EDD7717BFACEA016CE78
:1000F800A180CEA409F5AAFFF5A9FFF400F401F444
:1001080002CD0306F404F405F406CD0740F40CF41C
:100118000EF408F40FF53000F53100F53300F5342E
:1001280000CF350003CF370019F53C00F53E00F548
:1001380020FFF521FFCE22E9E523FFCE240BCE25B3
:1001480003F526FFCE271FCE2C1FE52EFFCE2F0747
:10015800CE28FFF54300F54700CF530006F55700BA
:10016800F5E0FFF5E1FFF5E2FFF5E3FFF5D0FFCE9F
:10017800E4FFCEE5FFCEE6FFCEE7FFCED4FFCEE824
:10018800FFCEECFFCEE9FFCEEDFFCEEAFFCEEEFECE
:10019800CEEBFFCEEFFFCED8FFCEDCFFF538FFF574
:1001A80039FFF537FF7108F200F690BFB4017138D6
:1001B800F100F54002F54102F54302F5A5FFF5A669
:1001C800FF7158F000F530FF7128F0005087BF1814
:1001D80001BF1A01BF1C01BF1E017148F000F530B4
:1001E80002F5BCFFF5BDFFD7F7D7C7C1FBF8FF3154
:1001F800642002EFFA715220340020C5304000C15B
:10020800C1506CFDF622100617C1E6A1C1500EC1FF
:10021800506CFD3A22100617C1E6A1C1500EC1501C
:100228006CFD3A22100617C1E6A1C1A1A1C1506C0C
:10023800FD3A22100617C1E6A1C1500EC1506CFD4F
:10024800F6221006CC0100CC000017C1E6A1C1506F
:100258003EC1506CFDF6221006CF03F99EAFC0F9DF
:10026800BF04F9AFC2F9BF06F9C0C6D7FD2224F60C
:10027800C15003C15084FDB6221004F3D7C720062D
:10028800FBF8FFC71704030016F74940209BA3A7F4
:100298005102614ADFF4C6C717A116F74942209BED
:1002A800A3A75102614ADFF4C68C01318EC1E6A1D1
:1002B800C15006C1506CFDF622100617040300C198
:1002C800E6A1C1503EC1506CFDF6221006716201D4
:1002D800300900FD9C2D62316A9C05716301FDF2B5
:1002E80001717201300800FD9C2D629F02F9300BEC
:1002F80003FD232EF6C15084FDC521C0629C051064
:1003080006C6D7C751E0D902F9D651A36128319E54
:100318009F46F92FC4F9318EFD84201344040071DF
:10032800FEDE05D5C5F9DF508F46F97C804C95DC9B
:1003380015D946F9F1241400BDD8AF04F9FD6D0EA6
:1003480012F62316EF13D946F9F1241400BDD8AFDD
:1003580006F9FD6D0E12F62316D903F9F107C1E669
:10036800A1C1500CC1506CFDF6221006D2DF068FD9
:1003780046F99FC4F9A0C5F9F7C6D77163073005D8
:1003880000FD242F300500FD242F304A00C15022E3
:10039800C15084FDB6221004717031F9E7D7300AD4
:1003A80000FD242F716031F9E7D7716831F9F7D76B
:1003B800716207303300FD242FF6C1E6A1C15084D5
:1003C800FDB62210043431F9895C3F99F7D7F7D785
:1003D800FDD603F7D7FD8303F7D7FDA603F7D7FDAF
:1003E800B203F7D7FDB803F7D7C75A00FC8E205CD5
:1003F800FC9E2071030E71520730A000FD242F715E
:100408005307300400C1506CFDC521C056C8663181
:100418008EF7BDD813BDDAFD3A0FC9DCCCCC30F469
:1004280040FDA60EDE03E7EF2B669F38F9710A2020
:100438007100300071120071020E306400FD242F2B
:100448003102000F5A00FC8E205CFC9E2071030EC6
:10045800E7EF01F7C6D7303200FD242F310400182A
:1004680071520730FA00FD242F30FA00FD242F3096
:10047800FA00FD242F7153075A00FC8E205CFC9E65
:100488002071030EF7D7FDB803F7D73104070671BB
:100498003031F9EF04713831F93102050671503104
:1004A800F9EF04715831F931120506714031F9EF4D
:1004B80004714831F94046F957DC094046F9B861FA
:1004C800D8E5C6F94046F947DC094046F9BD61D888
:1004D800F5C6F940C6F901DF0C4046F947DC06408D
:1004E80046F9BDDC11D5C6F9DF114046F957DC0BDA
:1004F8004046F9B8DE05712204EF03712304311276
:1005080005058F3BF9EF01F1318EBE6A323200D713
:10051800F7D7CEABACD7C720FE200CFBF8FFF6BF51
:10052800BA015020BFBA01FD2708717BFA170408E9
:1005380000FDE208629C06FD6D08620E069C06300E
:100548000020BC02CC040F5112879C0897878C08A6
:10055800974C1C61C8ED0406FD1A05878C08973175
:100568008EFD2F08D2DD0E878C0897318EFD33085B
:10057800629C06EFE6CC07008C074C04DE66F18728
:100588009C0997AC02148C049EFD118972878C0912
:1005980097318E07040800146299AC02A1BC028747
:1005A8008C099781879C0997878C0997D1DFD4306C
:1005B8004000C1878C0897318E31AD128C07318E7F
:1005C800318D03BDD831FFBDDADADAADD8FD340B91
:1005D800C0629C06D1DD08FD2B0800E7ED1107611C
:1005E8005907EF94878C0897318EFD3708D2DFF4CE
:1005F800878C089781879C0897ED55055104879C3F
:100608000897878C08974C12DE17878C0897318ECD
:10061800FD3308629C06878C089781879C0897EFB2
:10062800E15104879C0897878C08974C1261C8EDA4
:10063800CE06CC07008C074C04DE6D31825169FD73
:100648001A0531B2E20631825102EFF6713BE287B8
:100658008C0997318E07040800148E509971503018
:1006680002878C099781879C0997878C0997D161A4
:10067800E8318451CD304000C1878C0897318E31E4
:10068800AD128C07318E318D03BDD831FFBDDADA5A
:10069800DAADD8FD340BC0629C06D1DD06FD2B080F
:1006A800E7EF66615907EF8D878C0897318EFD3724
:1006B80008D2DFF431845102EF0C878C08978187C8
:1006C8009C0897ED2F0671503002CC0000CC010039
:1006D8008C014C09DE218C01318E1249F61F728C77
:1006E80001318E04F64714896142DF03F1EF01E11D
:1006F8000D9B615901EFD98BD1DF08FDF209FD048B
:100708000BEF06FD2B08FD170710FE100CC6D7C708
:1007180020FE200AFBF8FFF6BFBA015080BFBA01DD
:10072800717BFAFD270817040600FDE208629C04A5
:10073800FD6D08620E049C04300048BBCC020F51CA
:1007480008879C0697878C06974C1261C8EDE907C5
:10075800FD1A05878C0697318EFD3308629C04CC00
:1007680005008C054C04DE61F1879C0797AB148C5F
:10077800029EFD118972878C0797318E0704060047
:10078800146299ABA1BB878C079781879C079787D1
:100798008C0797D1DFD7304000C1878C0697318E00
:1007A80031AD128C05318E318D03BDD831FFBDDAE4
:1007B800DADAADD8FD340BC0629C04D1DD06FD2B1E
:1007C80008E7EF21615905EF99878C0697318EFD6F
:1007D8003708D2DFF4878C069781879C0697ED4D02
:1007E80007FDF109F710FE100AC6D7717BFAC7207A
:1007F800FE2004FBF8FFFD270817040200FDE208AD
:10080800629C01FD6D08626E019C0130BEF9FDBC61
:1008180009626E019C01FD2B0810FE1004C6D771F9
:070828007ABED7717BBED739
:10082F005208EF065203EF025206FEE600FE1B00CF
:10083F00DC16089F03088F0408089F040862FE2433
:10084F0000089F0408EEBF00EEBA00C1C514410EA8
:10085F0011D9D0FF118FD1FF312E45C4C0D7F2313E
:10086F00A2C401E2D79DE261DD4C09DF12717BFA70
:10087F00C18F06089F0DFAC0CF060800EE27003182
:10088F00F2FA04CF0608004C00DF05D50008DD168C
:10089F0061DD717BFAD50608DD0ACDE31F61CD61FD
:1008AF00CDEE160061CDFED40061FFFE9A00FCF87C
:1008BF00FF0EFEB20061CDFED5004C09DF0EC18FD9
:1008CF0006086F0DFA9F0608C0EE0400CF06080059
:1008DF00F8E3D75200EF025202FE3700CF0CFA00B6
:1008EF00CF060800BF0408C716629F000841001119
:1008FF008F44209B4100118F45209F0108C6510056
:10090F00FE62FFEF025205CF060800C1510CFE0A2E
:10091F0000C0D7C1511DFE0200C0D761DD717BFA47
:10092F0070CEC0A59EC47CFF9EC4609EC461CDD70F
:10093F0061DD717BFAC18EC45C1BFED6FFCF06084A
:10094F0001FED7FFC061CDD731F2FA1AC1AEE4BFB5
:10095F00FEF9AEE6BF00FAAED4BF02FA30FFFFBE1B
:10096F00E4BEE6BED4C0D731F2FA11C1AFFEF9BE74
:10097F00E4AF00FABEE6AF02FABED4C0D7C1BF04DF
:10098F00FA13BF06FA15BF08FA17BF0AFAC0D7AF96
:10099F0004FADB06FAEB08FAFB0AFAD7534B30528C
:1009AF005430324E323030475631323000C5C1519B
:1009BF00045001EE0000FE5AFF9F03085109FEA4E8
:1009CF00FEC4D2DF0908C3618AF3FE0500C2C4EE7C
:1009DF0035FFC1C7FB040861C999A58392DFF8C62B
:1009EF00C0D7FFC150FEFEAB0061DD717BFACF06B1
:1009FF000800FE0A00FE6FFF61CDF8E3EECF00C7DF
:100A0F00FB0408BFFEF98FC0009C05C5C337040661
:100A1F0000BF00FA3536560A300000522BFE660032
:100A2F00C2C4C630040AB800300000B8022004AFB8
:100A3F0000FAB800300F00B802AFFEF961FF520A9A
:100A4F00FE05FFECF8FF0E717BFAC1C7FB04088CA3
:100A5F0005C65C80FE0200C0D761DD717BFA70CFE6
:100A6F00C0FFA59FC0007CFF9FC000609FC00061BA
:100A7F00CDD7618BFEE2FF717BBE410011FB000001
:100A8F0017CEFC0061CB089EFDF31161C999A583B8
:100A9F0092DFF7D7FE7CFED50CFADF23C1CF030818
:100AAF00035109FEBFFDC0D2DF37FE3800A2040894
:100ABF00CF0308075109FEACFDD2B20408DF22C7ED
:100ACF00FB0408318302C6D7C6510AFE97FD624C5C
:100ADF001FDF06CF0CFA01EF04CF0CFA00C0EE2691
:100AEF00FEC0EE20FEC7C1FB04088B31196C0161FB
:100AFF00589BC0C6D7717BFAFE18FEAF04080406D8
:100B0F0000C11436680A300000522DF3FE77FF8FB4
:100B1F00C000FEF6FD61CF5C807C8073C0041900BD
:100B2F00CEFC0F61CBC55404EF03C55417FEE3FD94
:100B3F00C7360008BB629C0288089C03D1DD334C8A
:100B4F0041DE2F70F1312DB161090033081C00080F
:100B5F0051FF612A410E118FD0FF613B118FD1FFE1
:100B6F006138DC0E8B5C03DF0964C6C4FEF6FCEE55
:070B7F0095FDC6C4EE8EFDDA
:100E000061CF5100718C7109FECBF800FEFCF1003E
:100E100000F6BF00F953C0F693935820FEDFF94166
:100E20000036462034C0F9EF05118B99A7A5174469
:100E30008420DFF53602F930C0F9EF04CC0000A7BA
:100E400047DFF9410036842034FEF9EF05118B9914
:100E5000A7A517448420DFF536FEF930FEF9EF042C
:100E6000CC0000A747DFF9FCD80000EFFE61DD7180
:100E70007BFABEF0ADD8BEF200AEF661CDD7DF1D75
:100E800006DC44807FDF167152DEEF32DF0F06D8BA
:100E900044807FDF083154DE3C3172DE3CC9DE0520
:100EA00004FDF10EEF46C514ADDEC1657BDB5C8051
:100EB0009DDEADDA71FB3571FB44807FDEC03544C9
:100EC000807FDEC86BD96BD86BDD6BDC0561C8DD5C
:100ED0001BADDA71FB3174DE077174DBF181EF0C4D
:100EE00045ADD861F846DC61E87177DBC0BDDEC492
:100EF000D78EFC708EFDC1C5C3ADDE315E04943566
:100F0000320000C3C1D8DEF1C1AEF8FC1B0F00C037
:100F1000C0C0C2C4C09EFD609EFCD71489728A0402
:100F20009EFDAA021411894C40DD0E624C04300271
:100F30000061C8300100BF00F9D7C5C3C1ADDADA1E
:100F4000D831750914F62312F661D8B125ED590F81
:100F5000C5C3C1ADDADAD8F4DB0361C8DD3B235584
:100F60009E31730A9501311C61D8A13175F6618AF1
:100F70004C80618ADC11DF0633718C33DE0983DF3C
:100F80000604010061D8857174DB3561FB9DDB656A
:0D0F900071F99DDA637064BDD8C0C2C4D78A
:0A0FF60030383A34353A3339000040
:10200000EA0102030405060708090A0B0C0D0E0F6E
:10201000101112131415161718191A1B1C1D1E1F48
:10202000202122232425262728292A2B2C2D2E2F38
:10203000303132333435363738393A3B3C3D3E3F28
:062040004A5740000801B0
:102046000B001F000000000000000000C830000068
:10205600892B0000F82C000093040000B724000030
:102066007F2600008D2B0000042C00000C2C0000A5
:0E207600472C0000482F000000000000000072
:08208400317503F7332312D775
:0A21000030383A34353A3339000024
:10210A007140F00071783002713AE6713BE2713B3E
:10211A00EA713BEE5A06FCCF34024AE552FF711AC5
:10212A0052710A5271483002713030027120300205
:10213A00CF320206CF330205713BE6717030028E50
:10214A00265CFC9E26D7717830027148F000D7FDD4
:10215A00AE2751205FA8FFD1DD0971502FF9FD226A
:10216A0024EF03FD7402FD0027FD622AFDA221FD72
:10217A00CC2D8F2FF95C20D1DD06CF0EF902EF03AB
:10218A00F50EF9714221717AFAFD1A05FDCF2DFD7E
:10219A00F62EFDEA00EFF2D731020403F1EF01E176
:1021AA003410F9718C8971899931120403F1EF01A4
:1021BA00E13410F9718C89719999D7C7C1C1FBF8BB
:1021CA00FFFD22243164200300EFF9716220F51B20
:1021DA00F98C02318EFD7323D2DD0ACF1BF902710D
:1021EA006320F7EF478C0A318EFD8923FDD3238CB8
:1021FA00026C01318EFD8923300400BF240130179F
:10220A0040BF1C01300400BF2201F6BF2A01710B36
:10221A00E2CE44FF3182E202EFFA8E449C01FDFED7
:10222A0023710BE27163208C01318E121004C6D720
:10223A00C7C1FBF8FF31722003FD22243164200359
:10224A0000EFF97162208B318EFD7323D2DD0671A6
:10225A006320E7EF548C08318EFD8923FDD3238B4D
:10226A006C01318EFD8923300400BF2401301740F0
:10227A00BF1C01300400BF22018C0A91DF04F6BFA3
:10228A002A01710BE2CE44FF3182E202EFFAAC0C72
:10229A00148E449961790C61690A8C0AD1DFDAFDDE
:1022AA00FE23710BE2716320F7C0C6D7C7C1FBF8E2
:1022BA00FF31722003FD22243164200300EFF971FB
:1022CA006220710AE68B318EFD7323D2DD067163BB
:1022DA0020E7EF158C08318EFD89238C0A318EFD9B
:1022EA008923FDFE23716320F7C0C6D7C7C1FBF857
:1022FA00FF31722003FD22243164200300EFF971BB
:10230A006220710AE68B318EFD7323D2DD0671637A
:10231A0020E7EF5231522039C73414F9AC0C165267
:10232A00048B99A5A792DFF9C63184BD02EFFA7131
:10233A007ABDCEB144CBB414F98C0A318EBEB8CE74
:10234A00BB48714BE1714BE5710ABD8C089E44EFA5
:10235A0014710BE28C089E44710BE68C0A9F1AF9E1
:10236A00AC0CBF18F9F7C0C6D7C716FDAA2317F1D8
:10237A00FD8923D2DD06FDFE23E7EF01F7C6D7C7A5
:10238A0016710BE2669E443182E20300EFF9F642CF
:10239A000401DD09AF0401BF0C01E7EF01F7C6D75D
:1023AA00AF2801085CFB08BF280100000000AF2825
:1023BA00015CFBBF2801300400BF2A01301780BF2F
:1023CA001C01300400BF2201D7AF2401086C0408A5
:1023DA00BF2401AF28016C0F086C0B08BF2801004D
:1023EA00000000AF2A01085CFB08BF2A01000000B8
:1023FA0000EDAA23300400BF2401F6BF2A01300BE6
:10240A000BBF280100000000510FBF280100000087
:10241A0000500FBF2801D7D77132057120F0000094
:10242A00000000F6BF26015014BF1401CB44000A75
:10243A00300F0FBF2801716320715320717220D7AA
:10244A0031642002EFFAFDD3237133057128F000BD
:10245A00717320D7D7D77100F200301100BFB601CF
:10246A00300188BF9001300984BF9E01BF9C01BF23
:10247A009A01BF9801BF9601BF9401BF9201F53C32
:10248A00FF30FE00BFBE015006BFBC01F6BFB80157
:10249A0050EEBFBA01A1BFB201C918FE03D730EF8F
:1024AA0000BFB401F6BFBA017108F200D78F3CF938
:1024BA00D1DD0B91DD4B91DD4391DD20EF438F0E92
:1024CA00F92C03DC13D1DD0B91DD0D91DF05FDCA7B
:1024DA0025F3D7FD1025F3D732FA00D7F6426CFF61
:1024EA0061E8E1318F12AE6C23BE6CF6426EFF6179
:1024FA00E8E1318F12AE6E23BE6EF7D7FDCA25F31F
:10250A00D7FD1025F3D7C756008F38F9318EF7BD9E
:10251A00D813BDDAFD3A0FC9DC0000304C41FDA6E4
:10252A000EDE1DD51DF9DF0AF6BE6CBE6EE51DF97D
:10253A00EF09D93BF9F1BE6EF51DF932FA00EF7ECB
:10254A008F38F9318EF7BDD813BDDAFD3A0FC9DCE1
:10255A000000304C42FDA60EDE2EF6426CFFDD0571
:10256A00B26CFF5601D93BF9F1426EFFDD465601C6
:10257A00D93BF912AE6E43DE03E1EF0251FF318F10
:10258A0012AE6E03BE6EEF2CD93BF9F1426CFFDD41
:10259A00185601D93BF912AE6C43DE03E1EF025142
:1025AA00FF318F12AE6C03BE6CF6426EFFDD05B2D0
:1025BA006EFF560166D1DF0532FA00EF01F7C6D782
:1025CA00C75600AE6C4220F9DD1486AF20F9426C82
:1025DA00FFDE05B26CFFEF06AE6CA1A1BE6CAE6E5B
:1025EA004222F9DD155601AF22F9426EFFDE05B22D
:1025FA006EFFEF06AE6EA1A1BE6E66D1DF498F1ED9
:10260A00F9D1DD082C02DD042C02DF318F38F931D3
:10261A008EF7BDD813BDDAFD3A0FC9DC0000304C85
:10262A0042FDA60EDE0C307F00BF22F9F6BF20F96C
:10263A00EF12F6BF22F9507FBF20F9EF07F6BF224B
:10264A00F9BF20F9A01EF9320500C6D78F3EF95C02
:10265A0001D1DD08D93BF9F1BE64EF03F6BE648F00
:10266A003EF95C02D1DD078E386C809E38D78E38F1
:10267A005C7F9E38D78F3DF95C01D1DF0432FA00C6
:10268A00D7D51CF9DD18F51CF98F3DF95C02D1DDAF
:10269A0006CF24F902EF03F524F932FA00D7D5243C
:1026AA00F9DD2A8F25F991DD082C02DD042C02DFE1
:1026BA0005F6BE66EF06D93BF9F1BE66A025F940DC
:1026CA0025F920DF2DF525F9B024F9EF258F3DF9FD
:1026DA005C01D1DF0BF6BE668ED46C109ED4EF126D
:1026EA00D93BF9F1BE668E386C809E388ED45CEF89
:1026FA009ED4321C00D77170F000CE9D08CE9EC0C9
:10270A00CE9F80F592FFF593FFF594FFCE960EE5E6
:10271A0095FFCE9709CE9809CE9C7F711AE7712B47
:10272A00E7717A9DE541F9710321711321D7C73108
:10273A0002211E710221710A9E31929E02EFFA3421
:10274A0048F93692FF52078B99A5A792DFF9710BC8
:10275A009EC6D7C788061631122115711221C734B1
:10276A0026F93092FF1652078B99A5A792DFF9C670
:10277A006673671826F9C6D7C73104210371032186
:10278A003114211E711321710A9E31929E02EFFAB1
:10279A003492FF3626F952078B99A5A792DFF97171
:1027AA000B9EC6D7CF3BF9FFF53FF9CF40F903D7C8
:1027BA00C788061666320003F02C052361D8ED5F40
:1027CA00282361F8ED68289161F8ED7A289161F87B
:1027DA00ED0F299161F8ED1B299161F8ED242991FA
:1027EA0061F8ED52292361F8ED5E29912C0261D836
:1027FA00ED00292C042C0761D8ED76299161F8EDBA
:10280A00C8299161F8EDD229912361D8EDDC29D14B
:10281A0061F8ED6B29912C0261D8ED8629D161F816
:10282A00ED94292C0261F8EDA2299161F8EDAA290B
:10283A002C072361D8EDB8299161F8EDC029912CB4
:10284A000461D8EDDC292361D8EDE429D161F8EDE2
:10285A00EC29ED052A667367182EF9ED052A6673C9
:10286A0067182EF9D1DD06306D2CFD232EED052AD1
:10287A00667367182EF9D1DD7A8F3AF95C01D1DDDA
:10288A0005308000EF01F6609F80F98F3AF95C020B
:10289A00D1DD03E1EF01F1723480F989616A998F20
:1028AA003AF95C04D1DD045102EF01F1723480F986
:1028BA0089616A998F3AF95C08D1DD045120EF01E8
:1028CA00F1723480F989616A998F3AF95C10D1DD25
:1028DA00045110EF01F1723480F989616A998F3AD3
:1028EA00F95C20D1DD045140EF01F1723480F9899D
:1028FA00616A99ED052A30D803FD232E667367189D
:10290A002EF9ED052A667367182EF9FD5626ED0590
:10291A002A667367182EF9ED052A667367182EF969
:10292A008F3DF95C01D1DF0BF6BE668ED46C109E2A
:10293A00D4EF12D93BF9F1BE668E386C809E388E80
:10294A00D45CEF9ED4ED052A667367182EF9FD56FE
:10295A0026ED052A675CBF72667362182EF9ED05CB
:10296A002A667367182EF99E99ED052A67318EC17A
:10297A00662C1A318EFD5D27C0ED052A667367182D
:10298A002EF9307332FD232EEF71667367182EF914
:10299A00302C32FD232EEF63667367182EF9EF5B36
:1029AA00667367182EF9304F32FD232EEF4D66738A
:1029BA0067182EF9EF45667367182EF9EF3D6673AF
:1029CA0067182EF99E9AEF33667367182EF99E9B45
:1029DA00EF29667367182EF9EF21667367182EF9C7
:1029EA00EF19667367182EF9406CF96ADF0D406DAE
:1029FA00F968DF074C6C61F8FD1E05C6D7C7166675
:102A0A004C1ADC074C2161D8FD38276673092EF968
:102A1A00318E12C6D7C71666D1DD0891DD0A91DD5F
:102A2A000CEF0EF52EF9EF09F52FF9EF04CF30F977
:102A3A000266D1DD0891DD05664C02DF19710A23B1
:102A4A00D52EF9DF0BD52FF9DF064030F902DD0666
:102A5A00710303710B23C6D7CF70F935CF76F90FFF
:102A6A00CF77F907CF7BF903E57CF9E57FF9CF80CA
:102A7A00F960D7C7880616662C042C02DC0B912C49
:102A8A0005DC062C062C08DE066673671870F966E4
:102A9A002C04DF0A67D1DD0630752BFD232EC6D73D
:102AAA00C71666730970F9318E12C6D7C7C1C1FB42
:102ABA00F8FF8C025CF09C018C025C0F9B8C014C31
:102ACA0081DC05F792ED712B8C014C50DF05F792F2
:102ADA00ED712B8C014C31DE468C014C11DE1E8CC3
:102AEA00014C10DF0D8B4C03DE3351030D318E1276
:102AFA00EF758B4C03DE268B318E12EF6A8C014CFC
:102B0A0020DF0D8B4C02DE1551060D318E12EF5768
:102B1A008B4C02DE5051080D318E12EF4AEF468C73
:102B2A00014C61DE208C014C60DF0D8B4C04DE35DC
:102B3A00510E0D318E12EF2F8B4C02DE28510A0DE9
:102B4A00318E12EF228C014C70DF0D8B4C08DE1592
:102B5A0051120D318E12EF0F8B4C02DE08511A0DF5
:102B6A00318E12EF02F7921004C6D7716030F98FD6
:102B7A0035F95C40D1DF06710303710B23F7D732B5
:102B8A000A00D771320331240C06712031F9EF049F
:102B9A00712831F931140706711031F9EF047118EF
:102BAA0031F97133038F31F97F8CF9D1DD4271002C
:102BBA002FF98F0EF92C02DC37D1DD3491DD079124
:102BCA002C02DC12EF2A8F34F95C01D1DF22710367
:102BDA0003710B23EF1A8F8CF95C02D1DD123112CB
:102BEA00070E8F34F95C01D1DF06710303710B23E1
:102BFA008F31F99F8CF9326400D7C7D5CAF9F79299
:102C0A00C6D7C72004FBF8FF400EF903DD06400EC5
:102C1A00F905DF228F2EF99C038F2FF99C028F3141
:102C2A00F99C018F5FF99B17C1300400C1F6C150AE
:102C3A0044FDF62210063203001004C6D78F56F957
:102C4A005C01D1DF088F57F95C0391DF12400EF95E
:102C5A0003DF0A31240F0630E831FD232EF7D7327D
:102C6A00F800D78F39F95C01D1DD05F50EF9EF3996
:102C7A008F39F95C02D1DD0C5A00FC8E205CFC9E77
:102C8A002071030E8F39F95C04D161E87113008F4A
:102C9A0039F95C08D161E871030E300500FD242F73
:102CAA00710A2071120071020E8F39F95C20D1DD90
:102CBA000830E203FD232EEF0E8F39F95C10D1DDC7
:102CCA000630E703FD232E8F39F95C80D1DD083009
:102CDA00DD03FD232EEF0E8F39F95C40D1DD06307E
:102CEA00EC03FD232EF539F9F7D700EFFDD7400E97
:102CFA00F903DD06400EF905DF453124211F8F3720
:102D0A00F94F90F9DD148F37F99F90F9D990F9F1BD
:102D1A00C1F6C15050FDB62210047123217150F042
:102D2A0000CE301BCF170006CE3106717A30710BF8
:102D3A00E3710BE7D936F9F1312DBD1A320800D704
:102D4A00C7C1C1FBF8FFAC021489728A016142DE75
:102D5A0011899C01AC02148A017299AC02148C018B
:102D6A009A01AC021489728A01614ADC0689318EA1
:102D7A0012EF1BAC02148A01728A02614ADE078AC8
:102D8A0001318E12EF08AC02148A02318E1210043D
:102D9A00C6D7C716710AE7710BE37150F000717B51
:102DAA0030CE3023CF170006669E31717A30710B10
:102DBA00E73182E302EFFA8D1F7158F000318E126B
:102DCA00C6D7ED222EC73134212B71332130CCF9ED
:102DDA00161744F8F9DD1E148A02D1DF0BA9CEFCBE
:102DEA000061CA629C02EF0717148A02919A02A72D
:102DFA00A7A7A7EFDC3144211C71432130CCF91677
:102E0A001744F8F9DD0FABCEFC0061CA629C02A739
:102E1A00A7A7A7EFEBF7C6D7D7717BFAC7C1C1FB44
:102E2A00F8FFD5F9F9DD0300EFFDE5F9F940F8F906
:102E3A000FDC0300EFFDCC01008C014FF8F9DE1D19
:102E4A008C01F0317E12799CF9614902DF0A00F5A2
:102E5A00F9F9717AFAE7EF60615901EFDCCC010008
:102E6A008C014C0FDE188C01F0317E049CF914A9F8
:102E7A006168DF05AC02B9EF05615901EFE2A0F81C
:102E8A00F9CC0000CC01008C014C0EDE168C01F04E
:102E9A00317E049CF914A9616861E861590061599D
:102EAA0001EFE48B4FF8F9DD0300EFFDF5F9F97155
:102EBA007AFAF7EF0300EFFD1004C6D7C716667754
:102ECA0067F0317E049CF914A96168DD1A674C0F1A
:102EDA00DE1581F0317E049CF914A91267F0317E67
:102EEA0033789CF987EFD9B0F8F9C6D7C756006688
:102EFA004C0FDE23F0317E049CF914A96168DD14BD
:102F0A00A9CEFC0061CAD2DF0B717BFA17F1FDC6AC
:102F1A002E717AFA86EFD8F7C6D7C7C1C1FBF8FF78
:102F2A00FD1A058C02D1DD1261690230AE01BBF6D1
:102F3A00614900DDEE618900EFF51004C6D78F0EF6
:102F4A00F9D161F8ED693091DD1B9161F8ED1B3023
:102F5A009161F8ED4E309161F8ED55309161F8EDDF
:102F6A005E30EDC330712BE7713AE78F0FF991DDCF
:102F7A002ED5BAF9DF05D5BDF9DD05F5FAF9EF0366
:102F8A00A0FAF98FFAF901DE08F50EF9714221F774
:102F9A00D740BAF903DE0840BDF903DE02F7D7715C
:102FAA005221717221710222F5BAF9F5BCF9F5BD07
:102FBA00F9FD2224FD8502FDF001D2DD09714221CD
:102FCA00F50EF900EFFDFDF103D2DD0B714221FD93
:102FDA004A24E50EF9F7D7FDD603D50FF9DF25F513
:102FEA003CF9FD8303D2DF0B714221FD4A24E50E31
:102FFA00F9F7D7FDA603D2DF0F714221FD4A24E576
:10300A000EF9F7D7CF3CF903CF0EF902714221F737
:10301A00D7FD6024CF37001DFD0A21FD5F24714AC8
:10302A009DCE3831CE3971CBE43BEFCBE6F6F0CE0C
:10303A00D4FFCF0EF903F556F9307332FD232EF57E
:10304A000FF9EF783102000100EF71CF0EF905FD9B
:10305A00B203EF68CF0EF9023102006000EF5DFDA6
:10306A00A824FD5021FD5E24F52EF9F52FF9F5303F
:10307A00F9717301717BFAFD5E04FD4A24CF3500B4
:10308A0003CF370019CE3708F538FFCE3910CBE415
:10309A00BFFFCBE6FFF5CED4FFF6BEE0BEE2BED060
:1030AA00F5FAF9E50EF961FD717AFACED47F8E3818
:1030BA006C809E38714221EF0300EFFDE7D7400E86
:1030CA00F903DD06400EF901DF6331340708715355
:1030DA0021F5BAF9EF1531542105F5BAF9EF0CA02B
:1030EA00BAF9D5BAF961F8CFBAF9FF3144070871CC
:1030FA000322F5BDF9EF1531042205F5BDF9EF0CF0
:10310A00A0BDF9D5BDF961F8CFBDF9FF31040208B8
:10311A00717321F5BCF9EF1531742105F5BCF9EF8E
:10312A000CA0BCF9D5BCF961F8CFBCF9FF8F0EF938
:10313A00D1DD0B2C03DD162C02DD12EDE431F5BADC
:10314A00F9F5BDF9F5BCF9F5FBF9EDE43140BAF949
:10315A0006DF1471202EF98F33F95C04D1DF207158
:10316A000303710B23EF1840BAF942DF1271302EB4
:10317A00F98F33F95C08D1DF06710303710B238FD2
:10318A002EF95C08D1DD20A0FBF940FBF90DDC1A11
:10319A00CF3CF903F6426CFFDF10426EFFDF0BF5FE
:1031AA000EF9714221EF03F5FBF940BDF90ADF126E
:1031BA0071402EF98F33F95C10D1DF067103037168
:1031CA000B2340BCF90ADF1271502EF98F33F95CD8
:1031DA0020D1DF06710303710B23320800D7C740E1
:1031EA000EF903DF2C365CF9C7300600C150A8C1BE
:1031FA005030FD3A2210068F57F95C0391DF1271A5
:10320A00402FF98F34F95C10D1DF06710303710B7B
:10321A00238F56F95C01D1DD068F57F95C0391F7CC
:10322A00C6D7D958F9F1C15030FDC521C0629F5B9C
:10323A00F971302FF98F34F95C08D1DF0671030375
:10324A00710B23F7D7D95BF9F1C1D95AF9C15030BB
:10325A00FDB622100471302FF98F34F95C08D1DFE2
:10326A0006710303710B23F7D7C72004FBF8FF305D
:10327A000F00C15030FDC521C0401BF902DF03F722
:10328A00EF3FCC0100CC0202CC03808F56F95C01DF
:10329A00D1DF0D8F57F95C03D1DF05CC0007EF10A2
:1032AA008F57F95C0391DF05CC002FEF03CC00C7E1
:1032BA0017C1300400C150A0C15030FDF6221006DB
:0532CA00F71004C6D757
:1032CF00400EF90161FC61FC61FC61FC61FCC1C352
:1032DF00C5C7520C929269D4FEC1DFF88EFD708E75
:1032EF00FCC1301805FD232EC09EFC609EFD34D41A
:1032FF00FE5206C0B9A5A592DFF9C6C4C2C061FCD3
:10330F00C1C3C5C7520C929269D4FEC1DFF88EFDBE
:10331F00708EFCC13184510DF5C8F971483002FD32
:10332F008227EDD33331A2510A71603002F5C8F90B
:10333F00EDD3338FC8F9D1DD0891DD1291DD29EF7F
:10334F00467150300271403002E5C8F9EF768E5069
:10335F009F08F971503002D908F9F1FD072A629FD1
:10336F000AF9CFC8F902EF5C31B4511731C45106D5
:10337F00CFC8F903EF1171503002F5C8F971483019
:10338F0002EF41CFC8F90440C8F903DF0E8F0AF9E5
:10339F009E50D908F9F1FD1F2AEF158E509F0AF99B
:1033AF0071503002D90AF9F1C1D908F9FDBA27C015
:1033BF00A008F940C8F903DF0BD908F9F1FD072A76
:1033CF00629F0AF9C09EFC609EFD34D4FE5206C077
:1033DF00B9A5A592DFF9C6C4C2C061FCC1714AE5A7
:1033EF00717BBD710BE6AF0401C061FCC1C5717A81
:1033FF00FA31542013D51AF9DD0EEB18F9899E44D2
:10340F00A218F9B01AF9EF2B710AE6300400BF24A5
:10341F0001F6BF2A01300B0BBF280100000000513D
:10342F000FBF280100000000500FBF28017153206B
:10343F00716320C4C061FCEFFE61FCEFFE61FCEF25
:10344F00FE61FCEFFE61FCEFFE61FCEFFE61FCEF45
:10345F00FE61FCEFFE61FCEFFE61FCEFFE61FCEF35
:10346F00FE61FCEFFE61FCEFFE61FCEFFE61FCEF25
:10347F00FE61FCEFFE61FCEFFE61FCEFFE61FCEF15
:10348F00FE61FCEFFE61FCEFFE61FCEFFE61FCEF05
:10349F00FE61FCE51CF961FC71322161FCC18F52A8
:1034AF00F94F96FFDF2B8F53F94F97FFDF238F5481
:1034BF00F94F98FFDF1B71202FF98F34F95C04D17E
:1034CF00DF0F710303710B23400EF90161F8E50F54
:1034DF00F9C061FC61FCC1C3C5C7520C929269D49B
:1034EF00FEC1DFF88EFD708EFCC1717AFA8E312C21
:1034FF0006DD0991DD1D91DD3691EF4ED99AF9F177
:10350F000491F9148D1F993091F9FD4A2D629F3660
:10351F00F9EF378D1F764CC961C856C8E99AF9661D
:10352F001894F93094F9FD4A2D629F37F9EF1BD9A2
:10353F009AF9F10497F9148D1F993091F9FD4A2DDD
:10354F00629F02F9300B03FD232E4031FF08DD058A
:10355F00A031FFEF177158F000712221409AF90244
:10356F00DF03F1EF048F9AF9819F9AF9C09EFC60F7
:10357F009EFD34D4FE5206C0B9A5A592DFF9C6C48C
:04358F00C2C061FC59
:103594004040666D756C00004040666469760000CA
:1035A40040406661646400004040667375620000D8
:1035B400404066636D70000061636F73000000003B
:1035C4006173696E000000006174616E00000000A8
:1035D4006174616E32000000636F730000000000CC
:1035E40073696E000000000074616E00000000004A
:1035F400636F73680000000073696E680000000068
:1036040074616E68000000006578700000000000BE
:1036140066726578700000006C6465787000000064
:103624006C6F6700000000006C6F673130000000B1
:103634006D6F646600000000706F7700000000008A
:1036440073717274000000006365696C000000000F
:0E365400666C6F6F72000000666D6F640000A0
:0A47F60030383A34353A3339000008
:00000001FF


View File

@ -84,27 +84,28 @@ enum{
};
/*
// 1バイト送受の度に割り込みが発生するバージョン
__interrupt void int_iic_ctr(){
static u8 state = 0;
static u8 state = IIC_IDLE;
static u8 reg_adrs;
static u8 reg_adrs_internal;
static u8 temp;
static u8 trx_buf;
if( SPD ){
state = IIC_IDLE;
SPIE = 0;
// I2C終了時に何かする物 //
rtc_unlock();
return;
}
if( ACKD == 0 ){
if( !ACKD ){
LREL = 1;
state = IIC_IDLE;
return;
}
DBG_P_n = 1;
switch( state ){
case( IIC_IDLE ):
@ -117,62 +118,63 @@ __interrupt void int_iic_ctr(){
case( IIC_RCV_REG_ADRS ):
// レジスタアドレス受信
reg_adrs = IICA & 0x1F;
reg_adrs = IICA;
WREL = 1;
reg_adrs_internal = adrs_table_ctr_ext2int( reg_adrs );
temp = vreg_ctr_read( reg_adrs_internal );
// temp = vreg_ctr[ reg_adrs ];
// reg_adrs_internal = adrs_table_ctr_ext2int( reg_adrs );
trx_buf = vreg_ctr_read( reg_adrs ); // データの準備をしておく
state = IIC_TX_OR_RX;
break;
case( IIC_TX_OR_RX ):
if( STD ){
if( TRC ){
// if( STD ){
// リードされる
if( !COI ){
// リスタートで違うデバイスが呼ばれた!
WREL = 1; // ウェイト解除?
state = IIC_IDLE; // 終了処理
SPIE = 0;
}else{
if( COI ){
state = IIC_TX;
}else{
// リスタートで違うデバイスが呼ばれた!
WREL = 1; // ウェイト解除?
state = IIC_IDLE; // 終了処理
SPIE = 0;
return;
}
}else{
state = IIC_RX;
}
// no break;
// no break; //
default:
if( state == IIC_TX ){
IICA = temp;
IICA = trx_buf;
vreg_ctr_after_read( reg_adrs ); // 読んだらクリアなどの処理
}else{
temp = IICA;
trx_buf = IICA;
WREL = 1;
vreg_ctr_write( reg_adrs_internal, temp );
// vreg_ctr[ reg_adrs ] = temp;
vreg_ctr_write( reg_adrs, trx_buf );
}
reg_adrs = ( reg_adrs + 1 ) & 0x1F;
reg_adrs_internal = adrs_table_ctr_ext2int( reg_adrs );
reg_adrs += 1;
// reg_adrs_internal = adrs_table_ctr_ext2int( reg_adrs );
if( state == IIC_TX ){
temp = vreg_ctr_read( reg_adrs_internal );
trx_buf = vreg_ctr_read( reg_adrs );
// temp = vreg_ctr[ reg_adrs ];
}
break;
}
DBG_P_n = 0;
}
*/
//#if 0
//一度通信が始まったら終わるまで戻らないバージョン
#if 0
// 一度通信が始まったら終わるまで戻らないバージョン
__interrupt void int_iic_ctr(){
static u8 state = 0;
static u8 reg_adrs;
// static u8 reg_adrs_internal;
static u8 trx_buf;
// EI();
if( SPD ){
return;
}
// 自局呼び出しに応答。
// 初期化など
@ -191,14 +193,14 @@ __interrupt void int_iic_ctr(){
if( STD ){ // リスタートコンディション
// リードされる
if( !COI ){
if( COI ){
state = IIC_TX;
}else{
// リスタートで違うデバイスが呼ばれた!
WREL = 1; // ウェイト解除?
state = IIC_IDLE; // 終了処理
SPIE = 0;
return;
}else{
state = IIC_TX;
}
}else{ // ライト続行
state = IIC_RX;
@ -221,18 +223,17 @@ __interrupt void int_iic_ctr(){
SPIE = 1;
do{
trx_buf = IICA;
WREL = 1;
vreg_ctr_write( reg_adrs, trx_buf );
reg_adrs += 1;
WREL = 1;
while( !IICAIF ){;}
IICAIF = 0;
}while( !SPD );
SPIE = 0;
}
vreg_c_iic_release();
state = IIC_IDLE;
}
//#endif
#endif

View File

@ -25,6 +25,7 @@
#include "i2c_mcu.h"
#include "rtc.h"
//=========================================================

View File

@ -58,7 +58,7 @@
//#pragma interrupt INTTM03 fn_inttm03
#pragma interrupt INTAD int_adc
//#pragma interrupt INTRTC int_rtc
#pragma interrupt INTRTC int_rtc
#pragma interrupt INTRTCI int_rtc_int
#pragma interrupt INTKR int_kr
//#pragma interrupt INTMD fn_intmd

View File

@ -60,7 +60,12 @@ void LED_init(){
= 1 << BIT_CKS0 | 0 << BIT_CCS0 | 0 << BIT_MASTER0 | 4 << BIT_STS0 | 0 << BIT_CIS0 | 4 << BIT_MD123 | 1 << BIT_MD0;
ISC = 0;
TOM0 = 0b0000000011111110; // 出力モード。4はPWM出力しないが1にしないとTO5以降にクロックが届かない
TOL0 = 0;
#ifdef _MODEL_WM0_
TOL0 = 0b0000000000000010;
#else
TOL0 = 0b0000000000000110;
#endif
TO0 = 0; // タイマー動作中で、タイマー出力にしてないときのピンのラッチ。タイマー出力を使わないなら0
TOE0 = 0b0000000011101110; // TOxをタイマーモジュールが制御
TS0 = 0b0000000011101111; // 動作開始

View File

@ -309,18 +309,38 @@ End If
#ifdef _PMIC_TWL_
err PM_LCD_on(){
PM_TEG_LCD_OFF = 0;
wait_ms( DELAY_PM_TSS_50B );
wait_ms( DELAY_PM_TSS_50B );
iic_mcu_write_a_byte( IIC_SLA_PMIC, 0x22, 0x4A ); // バグ持ちPMIC対策
vreg_ctr[ VREG_C_STATUS0 ] |= REG_BIT_LCD_POW;
return( PM_chk_LDSW() );
}
err PM_BL_on(){ return( PM_chk_LDSW() ); }
err PM_BL_off(){ return( PM_chk_LDSW() ); }
err PM_BL_on(){
wait_ms( 10 );
vreg_ctr[ VREG_C_STATUS0 ] |= REG_BIT_BL;
return( PM_chk_LDSW() );
}
err PM_BL_off(){
vreg_ctr[ VREG_C_STATUS0 ] &= ~REG_BIT_BL;
return( ERR_SUCCESS );
}
err PM_LCD_off(){
PM_TEG_LCD_OFF = 1;
return( PM_chk_LDSW() );
}
err PM_LCD_vcom_set(){
return( ERR_SUCCESS );
wait_ms( 1 + 50 );
PM_VDDLCD_off(); // 残ってたの全部止めます。
vreg_ctr[ VREG_C_STATUS0 ] &= ~( REG_BIT_BL | REG_BIT_LCD_POW );
return( ERR_SUCCESS );
}
err PM_LCD_vcom_set(){
return( ERR_SUCCESS );
}
task_status_immed tski_vcom_set(){
PM_LCD_vcom_set();
return( ERR_FINISED );
@ -359,7 +379,11 @@ task_status_immed tski_vcom_set(){
/* ========================================================
 
 
======================================================== */
err PM_LCD_on(){
PM_VDDLCD_on();
@ -367,6 +391,9 @@ err PM_LCD_on(){
PM_TCOM_VCS_on();
wait_ms( DELAY_PM_TSS_50B );
iic_mcu_write_a_byte( IIC_SLA_PMIC, 0x22, 0x4A ); // バグ持ちPMIC対策
vreg_ctr[ VREG_C_STATUS0 ] |= REG_BIT_LCD_POW;
return( PM_chk_LDSW() );
}
@ -375,12 +402,14 @@ err PM_BL_on(){
PM_set_BL( 0x03 );
wait_ms( 10 );
vreg_ctr[ VREG_C_STATUS0 ] |= REG_BIT_BL;
return( PM_chk_LDSW() );
}
err PM_BL_off(){
PM_set_BL( 0x00 );
vreg_ctr[ VREG_C_STATUS0 ] &= ~REG_BIT_BL;
return( ERR_SUCCESS );
}
@ -390,6 +419,7 @@ err PM_LCD_off(){
wait_ms( 1 + 50 );
PM_VDDLCD_off(); // 残ってたの全部止めます。
vreg_ctr[ VREG_C_STATUS0 ] &= ~( REG_BIT_BL | REG_BIT_LCD_POW );
return( ERR_SUCCESS );
}
@ -456,8 +486,8 @@ err PM_sys_pow_on(){
PM_LDSW_on();
wait_ms( 1 );
iic_mcu_write_a_byte( IIC_SLA_PMIC, 0x22, 0xCA ); // バグ持ちPMIC対策 OVP解除
iic_mcu_write_a_byte( IIC_SLA_PMIC, 0x05, 0x07 ); // バグ持ちPMIC対策 強制PWM
wait_ms( DELAY_PM_TW_PWUP );
@ -467,9 +497,7 @@ err PM_sys_pow_on(){
PM_VDD50A_on();
wait_ms( DELAY_PM_TW_PWUP );
iic_mcu_write_a_byte( IIC_SLA_PMIC, 0x22, 0x4A ); // バグ持ちPMIC対策
iic_mcu_write_a_byte( IIC_SLA_PMIC, 0x05, 0x07 ); // バグ持ちPMIC対策 強制PWM
if( PM_chk_LDSW() == 0 ){
return( ERR_ERR );
@ -487,7 +515,7 @@ err PM_sys_pow_on(){
RESETs_ast;
FCRAM_RST_ast;
PM_TEG_PWSW = 1;
PM_TEG_PWSW = 1;
wait_ms( 160 );
PM_TEG_PWSW = 0;
@ -500,7 +528,7 @@ err PM_sys_pow_on(){
}
vreg_ctr[ VREG_C_BT_REMAIN ] = temp;
RESET1_neg;
PM_reset_neg();
RESET2_neg;
FCRAM_RST_neg;
wait_ms( 100 );
@ -662,7 +690,7 @@ task_status_immed ntr_pmic_comm(){
// offリクエスト
if(( reg_shadow & ( 1 << 6 )) != 0 ){
vreg_ctr[ VREG_C_IRQ2 ] |= REG_BIT_TWL_OFF_REQ;
if( ( vreg_ctr[ VREG_C_IRQ_MASK2 ] & REG_BIT_TWL_OFF_REQ ) != 0 ){
if( ( vreg_ctr[ VREG_C_IRQ_MASK2 ] & REG_BIT_TWL_OFF_REQ ) == 0 ){
IRQ0_ast;
}
}
@ -670,7 +698,7 @@ task_status_immed ntr_pmic_comm(){
// リセットリクエスト
if(( reg_shadow & ( 1 << 0 )) != 0 ){
vreg_ctr[ VREG_C_IRQ2 ] |= REG_BIT_TWL_RESET_REQ;
if( ( vreg_ctr[ VREG_C_IRQ_MASK2 ] & REG_BIT_TWL_RESET_REQ ) != 0 ){
if( ( vreg_ctr[ VREG_C_IRQ_MASK2 ] & REG_BIT_TWL_RESET_REQ ) == 0 ){
IRQ0_ast;
}
}
@ -681,14 +709,14 @@ task_status_immed ntr_pmic_comm(){
// 両方消された
vreg_ctr[ VREG_C_IRQ1 ] |= REG_BIT_STAT_CHANGE;
vreg_ctr[ VREG_C_STATUS0 ] &= ~0x01;
if( ( vreg_ctr[ VREG_C_IRQ_MASK1 ] & REG_BIT_STAT_CHANGE ) != 0 ){
if( ( vreg_ctr[ VREG_C_IRQ_MASK1 ] & REG_BIT_STAT_CHANGE ) == 0 ){
IRQ0_ast;
}
}else if(( reg_shadow & ( 0x03 << 2 )) == ( 0x03 << 2 )){
// 両方ついた
vreg_ctr[ VREG_C_IRQ1 ] |= REG_BIT_STAT_CHANGE;
vreg_ctr[ VREG_C_STATUS0 ] |= 0x01;
if( ( vreg_ctr[ VREG_C_IRQ_MASK1 ] & REG_BIT_STAT_CHANGE ) != 0 ){
if( ( vreg_ctr[ VREG_C_IRQ_MASK1 ] & REG_BIT_STAT_CHANGE ) == 0 ){
IRQ0_ast;
}
}

View File

@ -1,5 +1,8 @@
#pragma section @@CODE ROM_CODE
#pragma nop
#pragma ei
#pragma di
#pragma sfr
/******************************************************************************
@ -21,12 +24,9 @@ bit renge_task_interval_run_force;
extern task_info tasks[];
//******************************************************************************
static void renge_task_immed_init();
static void renge_task_immed_del( u8 );
/******************************************************************************
@ -118,8 +118,16 @@ u8 task_immed_index = 0;
/**************************************
**************************************/
void renge_task_immed_init(){
// tasks_immed[ 0 ] = (void *)0;
/*
u8 i;
for( i = 0; i < IMMED_RSV_TASKS_NUM; i++ ){
tasks_immed[ i ] = (void *)0;
}
task_immed_index = 0;
*/
}
@ -127,44 +135,131 @@ void renge_task_immed_init(){
/**************************************
**************************************/
err renge_task_immed_add( task_immed new_task ){
u8 temp;
static u8 lock = 0;
DI();
if( lock != 0 ){
while(1){
NOP();
}
}
lock = 1;
// 最終的にはチェック不要になる
/// 手動でタスクの数を数えなさい、という意味ですが。
if( task_immed_index >= IMMED_RSV_TASKS_NUM ){
// タスクの登録領域が足りなかった
while(1){
NOP(); // アサートで止めたいのですが。
}
while(1){
NOP(); // アサートで止めたいのですが。
}
lock = 0;
EI();
return( ERR_ERR );
}else{
#if 1
// 同じタスクの多重登録を避ける
// 同じタスクの多重登録を避ける
{
u8 temp;
for( temp = 0; temp < task_immed_index; temp += 1 ){
if( tasks_immed[ temp ] == new_task ){
return( ERR_ERR );
}
if( tasks_immed[ temp ] == new_task ){
// while(1){
NOP(); // アサートで止めたいのですが。
// }
lock = 0;
EI();
return( ERR_ERR );
}
}
#endif
}
#if 0
// 登録した領域はすでに使用済みだった(管理に不整合)
if( tasks_immed[ task_immed_index ] != 0 ){
while(1){
NOP();
}
}
// タスク追加
tasks_immed[ task_immed_index ] = new_task;
tasks_immed[ task_immed_index+1 ] = 0; // 大丈夫?
task_immed_index += 1;
// タスクリストの最後に追加するはずなのに、最後じゃなかった
if( tasks_immed[ task_immed_index+1 ] != 0 ){
while(1){
NOP();
}
}
// tasks_immed[ task_immed_index+1 ] = 0;
#endif
// タスク登録
{
u8 i;
for( i = 0; i < IMMED_RSV_TASKS_NUM; i += 1 ){
if( tasks_immed[ i ] == 0 ){
tasks_immed[ i ] = new_task;
break;
}
}
task_immed_index += 1;
}
// タスクリストの整合性チェック
{
u8 j;
u8 k = 0;
for( j = 0; j < ( IMMED_RSV_TASKS_NUM -1); j += 1 ){
if( tasks_immed[ j ] != 0 ){
k += 1;
}
}
if( k != task_immed_index ){
while(1){
NOP();
}
}
}
lock = 0;
EI();
return( ERR_SUCCESS );
}
while(1){
NOP();
}
}
/**************************************
**************************************/
err renge_task_immed_del( u8 task_id ){
static void renge_task_immed_del( u8 task_id ){
u8 i;
for( i = task_id; i < IMMED_RSV_TASKS_NUM; i += 1 ){
// 指定タスクの削除と、リスト前詰め
for( i = task_id;
(( tasks_immed[ i ] != (void*)0 ) && ( i < IMMED_RSV_TASKS_NUM ));
i += 1 ){
tasks_immed[ i ] = tasks_immed[ i+1 ];
}
task_immed_index -= 1;
return( ERR_SUCCESS );
#if 0
// 整合性チェック
{
u8 j;
u8 k = 0;
for( j = 0; j < ( IMMED_RSV_TASKS_NUM -1); j += 1 ){
if( tasks_immed[ j ] != 0 ){
k += 1;
}
}
while( k != task_immed_index ){
NOP();
}
}
#endif
}
@ -172,16 +267,47 @@ err renge_task_immed_del( u8 task_id ){
/**************************************
**************************************/
err renge_task_immed_run(){
u8 task_id = 0;
u8 task_id;
while( tasks_immed[ task_id ] != 0 ){
if( tasks_immed[ task_id ]() == ERR_FINISED ){
renge_task_immed_del( task_id ); // ←が tasks_immed[ id ] を前詰めしてしまうので、
}else{ // 同じid (=元は、次のid) を起動しなくてはならない
task_id += 1;
for( task_id = 0; task_id < IMMED_RSV_TASKS_NUM; task_id += 1 ){
if( tasks_immed[ task_id ] != 0 ){
if( tasks_immed[ task_id ]() == ERR_FINISED ){
DI();
renge_task_immed_del( task_id );
EI();
}
}
}
#if 0
for( task_id = 0; task_id < IMMED_RSV_TASKS_NUM; task_id += 1 ){
if( tasks_immed[ task_id ] == 0 ){
break;
}
if( tasks_immed[ task_id ]() == ERR_FINISED ){
DI();
renge_task_immed_del( task_id );
EI();
}
}
// 整合性チェック
{
u8 j;
u8 k = 0;
for( j = 0; j < ( IMMED_RSV_TASKS_NUM -1); j += 1 ){
if( tasks_immed[ j ] != 0 ){
k += 1;
}
}
if( k != task_immed_index ){
while(1){
NOP();
}
}
}
#endif
return( ERR_SUCCESS );
}
@ -208,3 +334,4 @@ void wait_ms( u8 ms ){
}
}
}

View File

@ -22,7 +22,7 @@ extern bit renge_flg_interval;
void renge_task_immed_init();
err renge_task_immed_run();
err renge_task_immed_add( task_immed );
err renge_task_immed_del( u8 );
// static err renge_task_immed_del( u8 );
void wait_ms( u8 );

View File

@ -24,15 +24,16 @@ void RTC_init(void){
// RTC設定
RTCC0 = 0b00001000; /* 動作停止、24時間制、32k出力「まだなし」、定周期割り込みなし */
RTCC1 = 0b00000000; /* アラーム割り込みなし */
RTCC1 = 0b11000000; /* アラーム割り込み有効&動作開始 */
RTCC2 = 0b10000000; /* インターバル:32k/2^6=2ms、RTCDIV出力なし */
SEC = 0;
MIN = 0;
HOUR = 0x00;
DAY = 29;
WEEK = 4;
MONTH = 1;
HOUR = 0;
DAY = 14;
WEEK = 1;
MONTH = 9;
YEAR = 9;
ALARMWW = 0x7F;
// 割り込み設定
RTCMK = 1; /* 割り込み(定周期)禁止 */
@ -41,19 +42,43 @@ void RTC_init(void){
RTCE = 1; /* 動作開始 */
vreg_ctr[ VREG_C_MCU_STATUS ] = REG_BIT_RTC_BLACKOUT;
rtc_lock = 0;
rtc_dirty = 0;
}
/* ========================================================
RTC
RTC
2^6/fXT1.953125 ms
======================================================== */
__interrupt void int_rtc_int(){
renge_flg_interval = 1;
}
/* ========================================================
RTC
2^6/fXT1.953125 ms
======================================================== */
__interrupt void int_rtc(){
if(( vreg_ctr[ VREG_C_RTC_ALARM_DAY ] == DAY )
&& ( vreg_ctr[ VREG_C_RTC_ALARM_MONTH ] == MONTH )
&& ( vreg_ctr[ VREG_C_RTC_ALARM_YEAR ] == YEAR ))
{
vreg_ctr[ VREG_C_IRQ1 ] |= REG_BIT_RTC_ALARM;
if( ( vreg_ctr[ VREG_C_IRQ_MASK1 ] & REG_BIT_RTC_ALARM ) == 0 ){
IRQ0_ast;
// マスクをしてあったら、電源を入れません
if( system_status.pwr_state == OFF ){
system_status.poweron_reason = RTC_ALARM;
}
}
}
}
/* ========================================================
RTC
@ -67,6 +92,7 @@ void get_rtc(){
memcpy( &vreg_ctr[ VREG_C_RTC_SEC ], &SEC, 7 );
RWAIT = 0;
// renge_task_immed_add( tski_rtc_close );
}
}
@ -82,6 +108,7 @@ void set_rtc( u8 adrs, u8 data ){
if( rtc_dirty == 0 ){
rtc_dirty = 1;
memcpy( rtc_work, &SEC, 7 );
// renge_task_immed_add( tski_rtc_close );
}
rtc_work[ adrs ] = data;
}
@ -91,15 +118,19 @@ void set_rtc( u8 adrs, u8 data ){
/* ========================================================
RTCレジスタの更新
======================================================== */
void rtc_close_iic(){
rtc_lock = 0;
if( rtc_dirty ){
// task_status_immed tski_rtc_close(){
void rtc_unlock(){
if( rtc_lock != 0 ){
rtc_lock = 0;
}
if( rtc_dirty != 0 ){
rtc_dirty = 0;
RWAIT = 1;
while( !RWST ){;}
memcpy( &SEC, rtc_work, 7 );
RWAIT = 0;
}
// return( ERR_SUCCESS );
}

View File

@ -7,7 +7,8 @@ __interrupt void int_rtc_int();
void get_rtc();
void set_rtc();
void rtc_close_iic();
//task_status_immed tski_rtc_close();
void rtc_unlock();
#define RTC_32k_on() { RCLOE0 = 1; }

View File

@ -42,7 +42,7 @@ task_interval tsk_misc_stat(){
case ON_TRIG:
break;
case ON:
if( ( vreg_ctr[ VREG_C_IRQ_MASK1 ] & REG_BIT_STAT_CHANGE ) != 0 ){
if( ( vreg_ctr[ VREG_C_IRQ_MASK1 ] & REG_BIT_STAT_CHANGE ) == 0 ){
IRQ0_ast;
}
break;
@ -51,7 +51,7 @@ task_interval tsk_misc_stat(){
if( (( state_old & REG_BIT_SHELL_CLOSE ) != 0 )
&& ( !SHELL_CLOSE ) ){
// 蓋開けた のみ通知
if( ( vreg_ctr[ VREG_C_IRQ_MASK1 ] & REG_BIT_STAT_CHANGE ) != 0 ){
if( ( vreg_ctr[ VREG_C_IRQ_MASK1 ] & REG_BIT_STAT_CHANGE ) == 0 ){
IRQ0_ast;
}
}
@ -92,20 +92,27 @@ task_interval tsk_debug(){
task_interval tsk_debug2(){
if(( system_status.pwr_state != OFF )
&& ( system_status.pwr_state != ON_TRIG )){
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 3, vreg_ctr[ VREG_C_IRQ0 ] );
u8 str[4];
if(( system_status.pwr_state == ON )
|| ( system_status.pwr_state == SLEEP )){
str[3] = vreg_ctr[ VREG_C_IRQ0 ];
str[2] = vreg_ctr[ VREG_C_IRQ1 ];
str[1] = vreg_ctr[ VREG_C_STATUS0 ];
str[0] = vreg_ctr[ VREG_C_ACC_YH ];
iic_mcu_write( IIC_SLA_DBG_MONITOR, 0, 4, str );
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 2, vreg_ctr[ VREG_C_IRQ1 ] );
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, boot_ura );
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, vreg_ctr[ VREG_C_SND_VOL ] );
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, vreg_ctr[ VREG_TUNE ] );
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 0, vreg_ctr[ VREG_C_ACC_ZH ] );
iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 3, vreg_ctr[ VREG_C_TUNE ] );
iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 2, vreg_ctr[ VREG_C_SND_VOL ] );
iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, vreg_ctr[ VREG_C_STATUS0 ] );
iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 0, vreg_ctr[ VREG_C_ACC_ZH ] );
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 3, vreg_ctr[ VREG_C_TUNE ] );
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 2, vreg_ctr[ VREG_C_SND_VOL ] );
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 1, vreg_ctr[ VREG_C_STATUS0 ] );
// iic_mcu_write_a_byte( IIC_SLA_DBG_MONITOR, 0, vreg_ctr[ VREG_C_ACC_ZH ] );
}
return( 20/2 );
return( 3 );
}
@ -147,23 +154,29 @@ task_status_immed tsk_imm_hina( u8* arg ){
/* ========================================================
<EFBFBD>|<EFBFBD>[<EFBFBD>Š<EFBFBD><EFBFBD>O·é
======================================================== */
task_interval tsk_soft_int(){
#ifdef _MCU_KE3_
static u8 pin;
if( (( vreg_ctr[ VREG_C_ACC_CONFIG_HOSU ] & 0x01 ) != 0 )
|| (( vreg_ctr[ VREG_C_ACC_CONFIG ] & 0x03 ) == 0x01 ) ){
if( system_status.pwr_state == ON ){
// Hエッジ検出
// pin = ( pin << 1 ) + ( ACC_VALID? 1: 0 );
// if( ( pin & 0x03 ) == 0x01 ){
if( ACC_VALID ){
renge_task_immed_add( tsk_cbk_accero );
}
}
return( 0 );
}
#else
// 本物のマイコンなら、割り込みでタスクを登録します
return( 248 );
#endif
return( 248 );
}
@ -182,6 +195,7 @@ task_interval tsk_soft_int(){
======================================================== */
task_status_immed do_command0(){
// 本体電源など
if( vreg_ctr[ VREG_C_COMMAND0 ] & REG_BIT_OFF_REQ ){
system_status.pwr_state = OFF_TRIG;
@ -211,6 +225,7 @@ task_status_immed do_command0(){
FCRAM_RST_neg;
}
// 液晶電源など
if( vreg_ctr[ VREG_C_COMMAND0 ] & REG_BIT_BL_ON ){
renge_task_immed_add( tski_PM_BL_on );
}else if( vreg_ctr[ VREG_C_COMMAND0 ] & REG_BIT_BL_OFF ){
@ -255,6 +270,7 @@ task_status_immed do_command1(){
CPUからのスリープ要求
======================================================== */
__interrupt void intp0_slp(){ // SLP
/*
if( SLP_REQ ){
system_status.pwr_state = SLEEP_TRIG;
}else{
@ -266,6 +282,7 @@ __interrupt void intp0_slp(){ // SLP
}
}
renge_task_interval_run_force = 1;
*/
}

View File

@ -31,54 +31,76 @@ task_interval tsk_sys(){
RTCIMK = 0; // インターバル割り込み許可
KRMK = 1;
// スイッチで電源on
if(( SW_pow_count != 0 ) ||
( SW_wifi_count != 0 )){
timeout = 0;
}else{
timeout += 1;
}
if( timeout > 127 ){
system_status.pwr_state = OFF_TRIG; // スイッチはノイズだった。寝る。
renge_task_interval_run_force = 1;
return( 0 );
}
if(( SW_pow_count > 3 ) ||
( SW_wifi_count > 3 )){ // 何か他に電源ON要因はあるか
SW_pow_mask = 1;
SW_tune_mask = 1;
SW_wifi_mask = 1;
switch( system_status.poweron_reason ){
default:
// スイッチで電源on
if(( SW_pow_count != 0 ) ||
( SW_wifi_count != 0 )){
timeout = 0;
}else{
timeout += 1;
}
if( timeout > 127 ){
system_status.pwr_state = OFF_TRIG; // スイッチはノイズだった。寝る。
renge_task_interval_run_force = 1;
return( 0 );
}
if(( SW_pow_count < 3 )&&
( SW_wifi_count < 3 )){
// もう少しスイッチの様子を見る
return( 0 );
}
break;
case( RTC_ALARM ):
break;
// 何か他に電源ON要因はあるか
// 蓋開け
// アダプタ(充電の温度を監視しなくてはならない)
// 時計
// 電源投入 //
iic_mcu_start();
}
PM_init(); // 電池残量ICの設定
// 電源投入
SW_pow_mask = 1;
SW_tune_mask = 1;
SW_wifi_mask = 1;
// todo bt_auth
if( PM_bt_auth() != ERR_SUCCESS ){
// どうするの?
renge_task_interval_run_force = 1;
system_status.pwr_state = OFF_TRIG;
while(1){
NOP();
}
SW_pow_count = 0;
SW_tune_count = 0;
SW_wifi_count = 0;
// 電源投入 //
iic_mcu_start();
PM_init(); // 電池残量ICの設定
// todo bt_auth
if( PM_bt_auth() != ERR_SUCCESS ){
// どうするの?
renge_task_interval_run_force = 1;
system_status.pwr_state = OFF_TRIG;
while(1){
NOP();
}
// return( 0 );
}
}
if( PM_sys_pow_on() != ERR_SUCCESS ){ // 電源起動不可エラー
renge_task_interval_run_force = 1;
iic_mcu_stop();
system_status.pwr_state = OFF;
return( 0 );
}
if( PM_sys_pow_on() != ERR_SUCCESS ){ // 電源起動不可エラー
renge_task_interval_run_force = 1;
iic_mcu_stop();
system_status.pwr_state = OFF;
return( 0 );
}
PM_LCD_vcom_set(); // LCDの対向電圧値など書き込み
PM_LCD_vcom_set(); // LCDの対向電圧値など書き込み
// 電源スイッチでの電源投入であれば、バックライトを点ける
if( system_status.poweron_reason == PWSW ){
// パワースイッチでのonの時は、LEDを点灯させる
vreg_ctr[ VREG_C_LED_POW_ILUMI ] = LED_POW_ILM_AUTO;
if( PM_LCD_on() == 0 ){
renge_task_interval_run_force = 1;
iic_mcu_stop();
@ -92,24 +114,22 @@ task_interval tsk_sys(){
system_status.pwr_state = OFF;
return( 0 );
}
// ここまで来ると、電源投入確定
system_status.pwr_state = ON_TRIG;
renge_task_interval_run_force = 1;
}
else
{
// 他には?
vreg_ctr[ VREG_C_LED_POW_ILUMI ] = LED_POW_ILM_OFF;
}
// ここまで来ると、電源投入確定
system_status.pwr_state = ON_TRIG;
renge_task_interval_run_force = 1;
return( 0 );
break;
case ON_TRIG: //-------------------------------------------------------
LED_init();
// パワースイッチでのonの時は、LEDを点灯させる
if( SW_pow_count > 3 ){
vreg_ctr[ VREG_C_LED_POW_ILUMI ] = LED_POW_ILM_AUTO;
}else{
vreg_ctr[ VREG_C_LED_POW_ILUMI ] = LED_POW_ILM_OFF;
}
// iic_mcu_write_a_byte( IIC_SLA_8LEDS, IIC_8LEDS_REG_DIR, 0x00 );
// iic_mcu_write_a_byte( IIC_SLA_8LEDS, IIC_8LEDS_REG_DO, 0x00 );
@ -143,9 +163,13 @@ task_interval tsk_sys(){
// }while( temp != ERR_SUCCESS );
}
#endif
vreg_ctr[ VREG_C_ACC_CONFIG_HOSU ] = 0x01;
vreg_ctr[ VREG_C_ACC_CONFIG_HOSU ] = 0x00; // デバッグ目的
// vreg_ctr[ VREG_C_ACC_CONFIG_HOSU ] = 0x01; // デバッグ目的
renge_task_immed_add( acc_hosu_set );
system_status.poweron_reason = PWSW;
break;
@ -154,8 +178,10 @@ task_interval tsk_sys(){
// 電源異常チェック
/// コマンドで、正規にリセットをかけたときには、
/// このチェックに引っかからないので大丈夫
system_status.pwr_state = OFF_TRIG;
renge_task_interval_run_force = 1;
NOP();
// ステータス類の設定、電源のフラグなどの整理
// system_status.pwr_state = OFF_TRIG;
// renge_task_interval_run_force = 1;
}
break;
@ -165,13 +191,17 @@ task_interval tsk_sys(){
break;
case SLEEP: //------------------------------------------
// system_status.pwr_state = ON_TRIG;
system_status.pwr_state = ON_TRIG;
if( !RESET1_n ){
NOP();
/*
// ステータス類の設定、電源のフラグなどの整理
system_status.pwr_state = OFF_TRIG;
renge_task_interval_run_force = 1;
*/
}
break;
case OFF_TRIG: //---------------------------------------
LED_stop();
IIC_ctr_Stop();
@ -188,6 +218,11 @@ task_interval tsk_sys(){
// ACアダプタ INTP4 アダプタありでL
// RTC
DI();
PM_sys_pow_off();
iic_mcu_stop();
// pullup_off();
{
PU5 = 0b00000011; // PM_CHG,PM_CHGERR
@ -203,13 +238,9 @@ task_interval tsk_sys(){
// intp20系は後ほど
MK0 = 0b1111111110111111; // INT(EXTDC)
// MK0 = 0b1111111100111111; // INT(SHELL), INT(EXTDC)
MK1 = 0b1111011111111111; // KR(SW_PW,SW_WiFi,...)
// MK1 = 0b1111010111111111; // KR, RTC(Alarm)
MK1 = 0b1111010111111111; // KR(SW_PW,SW_WiFi,...), RTC(Alarm)
MK2L= 0b11111111;
PM_sys_pow_off();
iic_mcu_stop();
IF0 = 0;
IF1 = 0;
IF2 = 0;
@ -217,7 +248,6 @@ task_interval tsk_sys(){
timeout = 0;
system_status.pwr_state = OFF;
DI();
STOP(); // 割り込み待ちで寝る
// while( SW_POW_n ){;}
EI();
@ -270,8 +300,8 @@ task_interval tsk_sw(){
if(( system_status.pwr_state == ON )
|| ( system_status.pwr_state == OFF )){
count_sw_n( SW_POW_n, SW_pow_count, SW_pow_mask );
count_sw_n( SW_WIFI_n, SW_wifi_count, SW_tune_mask );
count_sw_n( SW_TUNE_n, SW_tune_count, SW_wifi_mask );
count_sw_n( SW_WIFI_n, SW_wifi_count, SW_wifi_mask );
count_sw_n( SW_TUNE_n, SW_tune_count, SW_tune_mask );
// count_sw_n( SW_HOME_n, SW_home_count, SW_home_mask );
}
@ -288,8 +318,15 @@ task_interval tsk_sw(){
// 電源スイッチの監視 //
if( SW_pow_count == 6 ){
vreg_ctr[ VREG_C_IRQ0 ] |= REG_BIT_SW_POW_CLICK;
if( ( vreg_ctr[ VREG_C_IRQ_MASK0 ] & REG_BIT_SW_POW_CLICK ) == 0 ){
IRQ0_ast;
}
}else if( SW_pow_count == 66 ){
vreg_ctr[ VREG_C_IRQ0 ] |= REG_BIT_SW_POW_HOLD;
if( ( vreg_ctr[ VREG_C_IRQ_MASK0 ] & REG_BIT_SW_POW_HOLD ) == 0 ){
IRQ0_ast;
}
}
// 電源OFF割り込みを入れたが…
if(( vreg_ctr[ VREG_C_IRQ0 ] & REG_BIT_SW_POW_HOLD ) != 0 ){
@ -309,12 +346,12 @@ task_interval tsk_sw(){
// HOME スイッチ…だと? //
if( SW_home_count == 6 ){
vreg_ctr[ VREG_C_IRQ0 ] |= REG_BIT_SW_HOME_CLICK;
if( ( vreg_ctr[ VREG_C_IRQ_MASK0 ] & REG_BIT_SW_HOME_CLICK ) != 0 ){
if( ( vreg_ctr[ VREG_C_IRQ_MASK0 ] & REG_BIT_SW_HOME_CLICK ) == 0 ){
IRQ0_ast;
}
}else if( SW_pow_count == 66 ){
vreg_ctr[ VREG_C_IRQ0 ] |= REG_BIT_SW_HOME_HOLD;
if( ( vreg_ctr[ VREG_C_IRQ_MASK0 ] & REG_BIT_SW_HOME_HOLD ) != 0 ){
if( ( vreg_ctr[ VREG_C_IRQ_MASK0 ] & REG_BIT_SW_HOME_HOLD ) == 0 ){
IRQ0_ast;
}
}
@ -323,7 +360,7 @@ task_interval tsk_sw(){
// wifi sw
if( SW_wifi_count == 10 ){
vreg_ctr[ VREG_C_IRQ0 ] |= REG_BIT_SW_WIFI_CLICK;
if( ( vreg_ctr[ VREG_C_IRQ_MASK0 ] & REG_BIT_SW_WIFI_CLICK ) != 0 ){
if( ( vreg_ctr[ VREG_C_IRQ_MASK0 ] & REG_BIT_SW_WIFI_CLICK ) == 0 ){
IRQ0_ast;
}
}
@ -331,7 +368,7 @@ task_interval tsk_sw(){
// tune sw
if( SW_tune_count == 10 ){
vreg_ctr[ VREG_C_IRQ0 ] |= REG_BIT_SW_TUNE_CLICK;
if( ( vreg_ctr[ VREG_C_IRQ_MASK0 ] & REG_BIT_SW_TUNE_CLICK ) != 0 ){
if( ( vreg_ctr[ VREG_C_IRQ_MASK0 ] & REG_BIT_SW_TUNE_CLICK ) == 0 ){
IRQ0_ast;
}
}

View File

@ -119,7 +119,7 @@ extern unsigned char temp_teg;
//#define LED_CAM P1.0 // TO02
//#define LED_WIFI P1.1 // TO03
//#define LED_TUNE P5.2 // TO04(SLTO)
//#define LED_TUNE P5.2 // SLTO <20>© TO01
//#define LED_CHARGE P1.3 // TO05
//#define LED_POW2 P1.4 // TO06 ( <20>Â )
//#define LED_POW1 P1.5 // TO07 ( <20>Ô )

View File

@ -83,8 +83,8 @@ void vreg_ctr_write( u8 adrs, u8 data ){
break;
case( VREG_C_LED_BRIGHT ):
set_LED_cam();
vreg_ctr[ adrs ] = data;
set_LED_cam();
break;
case( VREG_C_LED_POW_ILUMI ):
@ -101,6 +101,10 @@ void vreg_ctr_write( u8 adrs, u8 data ){
set_LED_cam();
break;
case( VREG_C_MCU_STATUS ):
vreg_ctr[ adrs ] = ( data & ~0x40 );
break;
case( VREG_C_RTC_COMP ):
vreg_ctr[ adrs ] = data;
SUBCUD = data;
@ -148,10 +152,18 @@ void vreg_ctr_write( u8 adrs, u8 data ){
vreg_ctr[ adrs ] = data;
break;
// 書くだけでよい
case( VREG_C_RTC_ALARM_MIN ):
vreg_ctr[ adrs ] = data;
ALARMWM = data;
break;
case( VREG_C_RTC_ALARM_HOUR ):
vreg_ctr[ adrs ] = data;
ALARMWH = data;
break;
// 書くだけでよい
case( VREG_C_RTC_ALARM_DAY ):
case( VREG_C_RTC_ALARM_MONTH ):
case( VREG_C_RTC_ALARM_YEAR ):
@ -212,19 +224,11 @@ void vreg_ctr_after_read( u8 adrs ){
}
if(( adrs == VREG_C_IRQ0 ) || ( adrs == VREG_C_IRQ1 ) || ( adrs == VREG_C_IRQ2 )){
if(( vreg_ctr[ VREG_C_IRQ0 ] == 0 ) && ( vreg_ctr[ VREG_C_IRQ1 ] == 0 ) && ( vreg_ctr[ VREG_C_IRQ2 ] == 0x02 )){ // 暫定
IRQ0_neg;
if(! (( vreg_ctr[ VREG_C_IRQ0 ] == 0 ) && ( vreg_ctr[ VREG_C_IRQ1 ] == 0 ) && ( vreg_ctr[ VREG_C_IRQ2 ] == 0x02 )) ){ // 暫定
IRQ0_ast;
}
}
return;
}
// ********************************************************
// I2Cでロックされた物の解除
void vreg_c_iic_release(){
// クリティカルセクションとして扱わないといけないかもしれない
rtc_close_iic();
}

View File

@ -190,7 +190,5 @@ void vreg_ctr_write( u8 adrs, u8 data );
u8 vreg_ctr_read( u8 phy_adrs );
void vreg_ctr_after_read( u8 adrs );
void vreg_c_iic_release();
#endif

View File

@ -166,7 +166,7 @@ u8 adrs_table_twl_ext2int( u8 img ){
======================================================== */
task_status_immed command_from_twl(){
vreg_ctr[ VREG_C_IRQ2 ] |= REG_BIT_TWL_RESET_REQ;
if( ( vreg_ctr[ VREG_C_IRQ_MASK2 ] & REG_BIT_TWL_RESET_REQ ) != 0 ){
if( ( vreg_ctr[ VREG_C_IRQ_MASK2 ] & REG_BIT_TWL_RESET_REQ ) == 0 ){
IRQ0_ast;
}
return( ERR_FINISED );

View File

@ -1,6 +1,18 @@
C:\WINDOWS\system32\cmd.exe /c echo touch magic.c
touch magic.c
"C:\Program Files\NEC Electronics Tools\CC78K0R\W2.10\bin\cc78k0r.exe" -cF100964 -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r" -ms -qcvjl1wt -sainter_asm -zp -w2 -no rtc.c
user_define.h(13) : CC78K0R warning W0816: Redefined macro name '_debug_'
bsr_system.h(30) : CC78K0R warning W0851: Data aligned in 'struct tag'
renge\renge_defs.h(47) : CC78K0R warning W0851: Data aligned in 'struct tag'
rtc.c(134) : CC78K0R warning W0851: Data aligned in '@@DATA section'
Compilation complete, 0 error(s) and 4 warning(s) found.
"C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\ra78k0r.exe" -cF100964 -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff inter_asm\rtc.asm
Assembly complete, 0 error(s) and 0 warning(s) found.
"C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\lk78k0r.exe" -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff -obsr_k0r.lmf "..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\lib78k0r\s0rm.rel" -go85h,0FC00h,1024 -gi0FFFFFFFFFFFFFFFFFFFFh -pbsr_k0r.map -nkd -kp -gb6EFBFFh -b"C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib" -bcl0rdm.lib -bcl0rm.lib -bcl0rmf.lib -i"C:\Program Files\NEC Electronics Tools\CC78K0R\W2.10\lib78k0r" -dbsr_mcu.dr -s -w0 loader.rel pm.rel i2c_ctr.rel main.rel magic.rel WDT.rel i2c_mcu.rel i2c_twl.rel ini_VECT.rel led.rel rtc.rel vreg_ctr.rel vreg_twl.rel tasks.rel adc.rel renge.rel tasks_sys.rel accero.rel self_flash.rel
Link complete, 0 error(s) and 0 warning(s) found.
"C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\oc78k0r.exe" -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff -o.\bsr.hex -nu -ki bsr_k0r.lmf
Object Conversion Complete, 0 error(s) and 0 warning(s) found.
C:\WINDOWS\system32\cmd.exe /c ruby C:\Cygwin\home\fujita_ryohei\ctr\nec_s_2_bsrbin.rb bsr.hex
C:/Cygwin/home/fujita_ryohei/ctr/nec_s_2_bsrbin.rb:2: warning: variable $KCODE is no longer effective; ignored
Build Total error(s) : 0 Total warning(s) : 0
Build Total error(s) : 0 Total warning(s) : 4

View File

@ -22,7 +22,7 @@ SubClock=None
[Mapping]
Count=0
[Main]
Geometry=257, 176, 1200, 882
Geometry=286, 286, 1200, 882
Window=Max
MDI_MAX=OFF
Button=ON
@ -36,7 +36,7 @@ Tracer=OFF
Dir=.
SaveFilter=0
Start=0
End=1000
End=0
LoadFilter=5
Offset=0
Object=ON
@ -50,7 +50,7 @@ LoadFilter1=5
Offset1=0
Object1=ON
Symbol1=ON
Erase1=OFF
Erase1=ON
HighSpeed1=OFF
CPU Reset1=ON
Symbol Reset1=ON
@ -58,7 +58,7 @@ Symbol Reset1=ON
Dir=.
Filter=Source
[Debugger Option]
Source Path=""
Source Path=".;renge"
Symbol Size=Byte
Symbol Format=Hex
Register Name=Func
@ -78,10 +78,10 @@ Symbol Type=OFF
Language=C
Kanji=SJIS
[Source]
Geometry=5, 12, 781, 985
Geometry=441, 2, 691, 1110
Window=Normal
DispStart=281
CaretPos=282,0
DispStart=121
CaretPos=161,0
Mode=Normal
DispFile=
Address1=
@ -140,17 +140,25 @@ SaveStart=
SaveEnd=
Accumulative=ON
[Source1]
Geometry=0, 0, 781, 985
Geometry=75, 75, 691, 1035
Window=Normal
DispStart=171
CaretPos=172,0
DispStart=103
CaretPos=104,0
Mode=Normal
DispFile=self_flash.c
DispFile=vreg_ctr.c
Accumulative=ON
[Source2]
Geometry=100, 100, 691, 1010
Window=Normal
DispStart=58
CaretPos=59,0
Mode=Normal
DispFile=rtc.c
Accumulative=ON
[Assemble]
Geometry=0, 0, 0, 0
Window=Hide
DispStart=864338944
DispStart=864688128
CaretPos=0,0
Address1=
Address2=
@ -193,17 +201,17 @@ SaveRange=Screen
SaveStart=
SaveEnd=
[Memory]
Geometry=556, -6, 673, 845
Window=Normal
Boundary=163
Geometry=0, 0, 550, 400
Window=Hide
Boundary=0
Format=Hex
Mode=Byte
Endian=Little
Endian=
Ascii=OFF
Address=
DispStart=00000F80
CaretPosData=0, 248
CaretPosAscii=0, 248
DispStart=FFFFFFFF
CaretPosData=0, 0
CaretPosAscii=0, 0
Address1=
Address2=
Address3=
@ -258,13 +266,13 @@ Destination=0
[I/O Port]
Line=0
[Stack]
Geometry=0, 0, 0, 0
Window=Hide
Boundary=0
Geometry=50, 50, 400, 300
Window=Normal
Boundary=13762687
Mode=Proper
[Sfr]
Geometry=0, 0, 0, 0
Window=Hide
Geometry=50, 50, 400, 985
Window=Normal
Address1=
Address2=
Address3=
@ -281,13 +289,13 @@ Address13=
Address14=
Address15=
Address16=
Boundary=0, 0
Boundary=202, 89
Mode=Hex
Attribute=Show
Sort=Unsort
Pickup=OFF
SelectSort=Address
Last Name=
Last Name=IICBSY
Line=506
L1=P0
L2=P1
@ -796,7 +804,7 @@ L504=C1EN
L505=C1RVM
L506=C1VRE
[Local Variable]
Geometry=1186, 789, 400, 300
Geometry=1194, 857, 400, 248
Window=Normal
Boundary=13041851
Mode=Proper
@ -848,22 +856,22 @@ SaveRange=Screen
SaveStart=
SaveEnd=
[Register]
Geometry=0, 0, 0, 0
Geometry=25, 25, 250, 400
Window=Hide
Mode=Hex
Boundary=62
Pickup=OFF
Name=Functional
Register Bank=0
RP0=3
RP1=3
RP2=3
RP3=3
PC=3
SP=3
PSW=3
ES=3
CS=3
RP0=1
RP1=1
RP2=1
RP3=1
PC=1
SP=1
PSW=1
ES=1
CS=1
[Event Manager]
Geometry=0, 0, 0, 0
Window=Hide
@ -939,36 +947,121 @@ Detail=OFF
Last Name=
Count=0
[Variable]
Geometry=0, 0, 0, 0
Window=Hide
Boundary=0
Line=0
Geometry=1134, 10, 440, 846
Window=Normal
Boundary=13762700
0=.temp,P,N,A,+,1
1=.ALARMWM,P,S,A,+,1
2=.ALARMWH,P,S,A,+,1
3=.ALARMWW,P,S,A,+,1
4=.SEC,P,S,A,+,1
5=.MIN,P,S,A,+,1
6=.HOUR,P,S,A,+,1
7=.DAY,P,S,A,+,1
8=.MONTH,P,S,A,+,1
9=.YEAR,P,S,A,+,1
10=.rtc_lock,P,N,A,+,1
11=.rtc_dirty,P,N,A,+,1
12=.rtcc1,P,S,A,+,1
13=.WAFG,P,S,A,+,1
14=.RIFG,P,S,A,+,1
15=.system_status.poweron_reason,P,N,A,+,1
16=.system_status.pwr_state,P,N,A,+,1
17=.PM15,B,S,A,+,1
18=.PU14,B,S,A,+,1
19=.P15,B,S,A,+,1
20=.PM14,B,S,A,+,1
21=.P14,B,S,A,+,1
22=.PM12,B,S,A,+,1
23=.PU12,B,S,A,+,1
24=.P12,B,S,A,+,1
25=.PM8,B,S,A,+,1
26=.P8,B,S,A,+,1
27=.PM7,B,S,A,+,1
28=.PU7,B,S,A,+,1
29=.P7,B,S,A,+,1
30=.PM6,B,S,A,+,1
31=.P6,B,S,A,+,1
32=.PM5,B,S,A,+,1
33=.PU5,B,S,A,+,1
34=.P5,B,S,A,+,1
35=.PM4,B,S,A,+,1
36=.PU4,B,S,A,+,1
37=.P4,B,S,A,+,1
38=.PM3,B,S,A,+,1
39=.PU3,B,S,A,+,1
40=.P3,B,S,A,+,1
41=.PM2,B,S,A,+,1
42=.P2,B,S,A,+,1
43=.PM1,B,S,A,+,1
44=.PU1,B,S,A,+,1
45=.P1,B,S,A,+,1
46=.PU0,B,S,A,+,1
47=.PM0,B,S,A,+,1
48=.P0,B,S,A,+,1
49=.lock_del,P,N,A,+,1
50=.lock_add,P,N,A,+,1
51=.IICAIF,P,S,A,+,1
52=.vreg_ctr,P,N,A,+,1
53=.SPD,P,S,A,+,1
54=.state,P,N,A,+,1
55=.IICAIF,P,S,A,+,1
56=.tasks_immed,P,N,A,+,1
57=.task_immed_index,P,N,A,+,1
58=.k,P,N,A,+,1
59=.rtc_work,P,N,A,+,1
60=.rtc_dirty,P,N,A,+,1
Line=61
[Quick Watch]
0=
1=
2=
3=
4=
5=
6=
7=
8=
9=
10=
11=
12=
13=
14=
15=
0=SEC,P,A,1
1=MIN,P,A,1
2=HOUR,P,A,1
3=DAY,P,A,1
4=MONTH,P,A,1
5=YEAR,P,A,1
6=ALARMWM,P,A,1
7=ALARMWH,P,A,1
8=ALARMWW,P,A,1
9=vreg_ctr,P,A,1
10=temp,P,A,1
11=IICAIF,P,A,1
12=state,P,A,1
13=SPD,P,A,1
14=rtc_dirty,P,A,1
15=rtc_work,P,A,1
[Software Break]
Geometry=0, 0, 0, 0
Window=Hide
Width=150 30 200 100
Name0=Swb00001
Address0=self_flash.c#_firm_update+0x1e6
Address0=pm.c#_tski_PM_LCD_on+0x0
Window0=ASM
Status0=ON
Count=1
Name1=Swb00002
Address1=pm.c#_tski_PM_BL_on+0x0
Window1=ASM
Status1=ON
Name2=Swb00003
Address2=pm.c#_tski_PM_BL_off+0x0
Window2=ASM
Status2=ON
Name3=Swb00004
Address3=pm.c#_tski_PM_LCD_off+0x0
Window3=ASM
Status3=ON
Name4=Swb00005
Address4=accero.c#_tsk_cbk_accero+0x7
Window4=ASM
Status4=ON
Name5=Swb00006
Address5=tasks.c#_tsk_soft_int+0x10
Window5=ASM
Status5=ON
Name6=Swb00007
Address6=i2c_ctr.c#_int_iic_ctr+0xa6
Window6=ASM
Status6=ON
Count=7
[Reset]
Debugger=ON
Symbol=OFF

View File

@ -560,11 +560,6 @@ Include22=accero.h
Include23=i2c_twl_defs.h
Include24=renge\renge_task_intval.h
Include25=i2c_twl.h
[ToolSet]
ToolSetName=(•ĎŤX)78K0R Software Package V1.10
Tool1=CC78K0R|W2.10
Tool2=RA78K0R|W1.31
Tool3=ID78K0R-QB|V3.60
[Options.CC78K0R 0]
Version=210
Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r
@ -1031,3 +1026,8 @@ VfiFileBoot0=
VfiFileBoot1=boot.vfi
VF78K0Rchk=0
VF78K0Rvs=
[ToolSet]
ToolSetName=(•ĎŤX)78K0R Software Package V1.10
Tool1=CC78K0R|W2.10
Tool2=RA78K0R|W1.31
Tool3=ID78K0R-QB|V3.60

View File

@ -4,17 +4,15 @@ FrameX=35
FrameY=0
FrameCX=1375
FrameCY=1183
OpenFile1=adc.c,0,240,258,1484,1015,21,127,19,0
OpenFile2=ini_VECT.c,0,286,286,1530,1043,0,23,0,0
OpenFile3=loader.c,0,308,308,1552,1065,2,179,4,0
OpenFile4=config.h,0,508,49,1752,806,19,18,19,0
OpenFile5=renge\renge_task_immediate.h,0,268,108,1512,865,0,1,0,0
OpenFile6=renge\renge_defs.h,0,378,363,1622,1120,0,1,0,0
OpenFile7=ProjectWindow
OpenFile1=vreg_ctr.c,0,260,12,1504,769,120,228,0,0
OpenFile2=pm.c,0,66,66,1310,823,0,343,0,0
OpenFile3=tasks.c,0,132,132,1376,889,35,147,36,0
OpenFile4=ProjectWindow
PrjPos=0,6,758,2,252
OpenFile8=renge\renge.h,0,280,181,1524,938,0,1,0,0
OpenFile9=OutputWindow
OpenFile5=renge\renge.c,0,176,176,1420,933,7,213,43,0
OpenFile6=OutputWindow
OutputPos=0,704,1089,701,1562
OpenFile7=i2c_ctr.c,0,154,299,1398,1056,0,220,0,0
ActivePRJ=yav_mcu_bsr.prj
[ProjectWindow]
ProjectWindowDispType=0

View File

@ -10,13 +10,13 @@ T=4aa7256f
6=pm.h
7=rtc.h
[pm.c]
T=4aa7a33d
T=4aae01f1
1=incs_loader.h
2=adc.h
3=led.h
4=pm.h
[i2c_ctr.c]
T=4aa79d0f
T=4aae394d
1=incs.h
[main.c]
T=4a9e6e71
@ -39,17 +39,17 @@ T=4aa76932
1=incs.h
2=i2c_twl_defs.h
[ini_VECT.c]
T=4aa7640c
T=4aae33c6
1=config.h
[led.c]
T=4aa79cca
T=4aae0405
1=incs.h
2=led.h
[rtc.c]
T=4aa5d679
T=4aaddfa3
1=incs.h
[vreg_ctr.c]
T=4aa79e8f
T=4aadf96a
1=incs.h
2=vreg_ctr.h
3=rtc.h
@ -57,29 +57,29 @@ T=4aa79e8f
5=accero.h
6=pm.h
[vreg_twl.c]
T=4aa79102
T=4aa8a1dd
1=incs.h
2=jhl_defs.h
3=vreg_twl.h
[tasks.c]
T=4aa7a3d8
T=4aae1647
1=incs.h
2=renge\renge.h
3=pm.h
[adc.c]
T=4aa79102
T=4aadf487
1=incs.h
2=adc.h
3=pm.h
4=led.h
[renge\renge.c]
T=4aa7959d
T=4aae35f4
1=renge\renge_defs.h
2=renge\renge_task_intval.h
3=renge\renge_task_immediate.h
4=WDT.h
[tasks_sys.c]
T=4aa79884
T=4aae102d
1=incs.h
2=i2c_twl.h
3=i2c_ctr.h
@ -88,7 +88,7 @@ T=4aa79884
6=pm.h
7=rtc.h
[accero.c]
T=4aa79c1f
T=4aa8a1dd
1=incs.h
[self_flash.c]
T=4aa79d0f
@ -109,15 +109,15 @@ T=4a9e6e71
[jhl_defs.h]
T=4a9e6e71
[user_define.h]
T=4aa74fb6
T=4aae0407
1=config.h
[config.h]
T=4aa768d4
T=4aadef58
[bsr_system.h]
T=4aa78748
T=4aaddbc7
1=jhl_defs.h
[renge\renge.h]
T=4a548ddd
T=4aa9df1e
1=renge\renge_defs.h
2=renge\renge_task_immediate.h
[renge\renge_defs.h]
@ -126,7 +126,7 @@ T=4aa79102
T=4a8a7575
1=renge\renge_defs.h
[vreg_ctr.h]
T=4aa7a193
T=4aadcdb0
[loader.h]
T=4a7a31d0
1=jhl_defs.h
@ -143,14 +143,14 @@ T=4a7c0777
[pm.h]
T=4aa7a30d
[rtc.h]
T=4a9e6e71
T=4aadcdb0
[adc.h]
T=4aa74fb6
1=jhl_defs.h
[led.h]
T=4aa74fb6
[incs.h]
T=4a9e6e71
T=4aaddc46
1=jhl_defs.h
2=user_define.h
3=bsr_system.h
@ -158,6 +158,7 @@ T=4a9e6e71
5=vreg_ctr.h
6=vreg_twl.h
7=i2c_mcu.h
8=rtc.h
[vreg_twl.h]
T=4aa79c31
[accero.h]