/***********************************************************************/ /* */ /* FILE :TEST0033_R8C2B_8LED.c */ /* DATE :Wed, Jan 16, 2013 */ /* DESCRIPTION :Main Program */ /* CPU GROUP :Other */ /* */ /* This file is generated by Renesas Project Generator (Ver.4.19). */ /* NOTE:THIS IS A TYPICAL EXAMPLE. */ /***********************************************************************/ //************************************************* // Define Address(R8C/2Bマイコン用) //************************************************* #pragma ADDRESS PD0_addr 00E2H #pragma ADDRESS PD1_addr 00E3H #pragma ADDRESS PD2_addr 00E6H #pragma ADDRESS PD3_addr 00E7H #pragma ADDRESS PD4_addr 00EAH #pragma ADDRESS PD5_addr 00EBH #pragma ADDRESS PD6_addr 00EEH #pragma ADDRESS PD8_addr 02E4H #pragma ADDRESS P0_addr 00E0H #pragma ADDRESS P1_addr 00E1H #pragma ADDRESS P2_addr 00E4H #pragma ADDRESS P3_addr 00E5H #pragma ADDRESS P4_addr 00E8H #pragma ADDRESS P5_addr 00E9H #pragma ADDRESS P6_addr 00ECH #pragma ADDRESS P8_addr 02E6H #pragma ADDRESS P2DRR_addr 00F4H #pragma ADDRESS PMR_addr 00F8H #pragma ADDRESS PUR0_addr 00FCH #pragma ADDRESS PUR1_addr 00FDH #pragma ADDRESS PUR2_addr 02FCH #pragma ADDRESS PRCR_addr 000AH #pragma ADDRESS CM0_addr 0006H #pragma ADDRESS CM1_addr 0007H #pragma ADDRESS OCD_addr 000CH #pragma ADDRESS FRA0_addr 0023H #pragma ADDRESS FRA2_addr 0025H #pragma ADDRESS CPSRF_addr 0028H #pragma ADDRESS VCA2_addr 0032H //************************************************* // Define Structure //************************************************* struct bit_def { char b0:1; char b1:1; char b2:1; char b3:1; char b4:1; char b5:1; char b6:1; char b7:1; }; union byte_def{ struct bit_def bit; char byte; }; //************************************************* // Define Port register and Port direction register //************************************************* union byte_def P0_addr; #define P0 P0_addr.byte #define P0_0 P0_addr.bit.b0 #define P0_1 P0_addr.bit.b1 #define P0_2 P0_addr.bit.b2 #define P0_3 P0_addr.bit.b3 #define P0_4 P0_addr.bit.b4 #define P0_5 P0_addr.bit.b5 #define P0_6 P0_addr.bit.b6 #define P0_7 P0_addr.bit.b7 // union byte_def PD0_addr; #define PD0 PD0_addr.byte #define PD0_0 PD0_addr.bit.b0 #define PD0_1 PD0_addr.bit.b1 #define PD0_2 PD0_addr.bit.b2 #define PD0_3 PD0_addr.bit.b3 #define PD0_4 PD0_addr.bit.b4 #define PD0_5 PD0_addr.bit.b5 #define PD0_6 PD0_addr.bit.b6 #define PD0_7 PD0_addr.bit.b7 // union byte_def P1_addr; #define P1 P1_addr.byte #define P1_0 P1_addr.bit.b0 #define P1_1 P1_addr.bit.b1 #define P1_2 P1_addr.bit.b2 #define P1_3 P1_addr.bit.b3 #define P1_4 P1_addr.bit.b4 #define P1_5 P1_addr.bit.b5 #define P1_6 P1_addr.bit.b6 #define P1_7 P1_addr.bit.b7 // union byte_def PD1_addr; #define PD1 PD1_addr.byte #define PD1_0 PD1_addr.bit.b0 #define PD1_1 PD1_addr.bit.b1 #define PD1_2 PD1_addr.bit.b2 #define PD1_3 PD1_addr.bit.b3 #define PD1_4 PD1_addr.bit.b4 #define PD1_5 PD1_addr.bit.b5 #define PD1_6 PD1_addr.bit.b6 #define PD1_7 PD1_addr.bit.b7 // union byte_def P2_addr; #define P2 P2_addr.byte #define P2_0 P2_addr.bit.b0 #define P2_1 P2_addr.bit.b1 #define P2_2 P2_addr.bit.b2 #define P2_3 P2_addr.bit.b3 #define P2_4 P2_addr.bit.b4 #define P2_5 P2_addr.bit.b5 #define P2_6 P2_addr.bit.b6 #define P2_7 P2_addr.bit.b7 // union byte_def PD2_addr; #define PD2 PD2_addr.byte #define PD2_0 PD2_addr.bit.b0 #define PD2_1 PD2_addr.bit.b1 #define PD2_2 PD2_addr.bit.b2 #define PD2_3 PD2_addr.bit.b3 #define PD2_4 PD2_addr.bit.b4 #define PD2_5 PD2_addr.bit.b5 #define PD2_6 PD2_addr.bit.b6 #define PD2_7 PD2_addr.bit.b7 // union byte_def P2DRR_addr; #define P2DRR P2DRR_addr.byte #define P2DRR0 P2DRR_addr.bit.b0 #define P2DRR1 P2DRR_addr.bit.b1 #define P2DRR2 P2DRR_addr.bit.b2 #define P2DRR3 P2DRR_addr.bit.b3 #define P2DRR4 P2DRR_addr.bit.b4 #define P2DRR5 P2DRR_addr.bit.b5 #define P2DRR6 P2DRR_addr.bit.b6 #define P2DRR7 P2DRR_addr.bit.b7 // union byte_def P3_addr; #define P3 P3_addr.byte #define P3_0 P3_addr.bit.b0 #define P3_1 P3_addr.bit.b1 #define P3_2 P3_addr.bit.b2 #define P3_3 P3_addr.bit.b3 #define P3_4 P3_addr.bit.b4 #define P3_5 P3_addr.bit.b5 #define P3_6 P3_addr.bit.b6 #define P3_7 P3_addr.bit.b7 // union byte_def PD3_addr; #define PD3 PD3_addr.byte #define PD3_0 PD3_addr.bit.b0 #define PD3_1 PD3_addr.bit.b1 #define PD3_2 PD3_addr.bit.b2 #define PD3_3 PD3_addr.bit.b3 #define PD3_4 PD3_addr.bit.b4 #define PD3_5 PD3_addr.bit.b5 #define PD3_6 PD3_addr.bit.b6 #define PD3_7 PD3_addr.bit.b7 // union byte_def P4_addr; #define P4 P4_addr.byte #define P4_0_DUM P4_addr.bit.b0 #define P4_1_DUM P4_addr.bit.b1 #define P4_2_DUM P4_addr.bit.b2 #define P4_3 P4_addr.bit.b3 #define P4_4 P4_addr.bit.b4 #define P4_5 P4_addr.bit.b5 #define P4_6_DUM P4_addr.bit.b6 #define P4_7_DUM P4_addr.bit.b7 // union byte_def PD4_addr; #define PD4 PD4_addr.byte #define PD4_0_DUM PD4_addr.bit.b0 #define PD4_1_DUM PD4_addr.bit.b1 #define PD4_2_DUM PD4_addr.bit.b2 #define PD4_3 PD4_addr.bit.b3 #define PD4_4 PD4_addr.bit.b4 #define PD4_5 PD4_addr.bit.b5 #define PD4_6_DUM PD4_addr.bit.b6 #define PD4_7_DUM PD4_addr.bit.b7 // union byte_def P5_addr; #define P5 P5_addr.byte #define P5_0 P5_addr.bit.b0 #define P5_1 P5_addr.bit.b1 #define P5_2 P5_addr.bit.b2 #define P5_3 P5_addr.bit.b3 #define P5_4 P5_addr.bit.b4 #define P5_5_DUM P5_addr.bit.b5 #define P5_6_DUM P5_addr.bit.b6 #define P5_7_DUM P5_addr.bit.b7 // union byte_def PD5_addr; #define PD5 PD5_addr.byte #define PD5_0 PD5_addr.bit.b0 #define PD5_1 PD5_addr.bit.b1 #define PD5_2 PD5_addr.bit.b2 #define PD5_3 PD5_addr.bit.b3 #define PD5_4 PD5_addr.bit.b4 #define PD5_5_DUM PD5_addr.bit.b5 #define PD5_6_DUM PD5_addr.bit.b6 #define PD5_7_DUM PD5_addr.bit.b7 // union byte_def P6_addr; #define P6 P6_addr.byte #define P6_0 P6_addr.bit.b0 #define P6_1 P6_addr.bit.b1 #define P6_2 P6_addr.bit.b2 #define P6_3 P6_addr.bit.b3 #define P6_4 P6_addr.bit.b4 #define P6_5 P6_addr.bit.b5 #define P6_6 P6_addr.bit.b6 #define P6_7 P6_addr.bit.b7 // union byte_def PD6_addr; #define PD6 PD6_addr.byte #define PD6_0 PD6_addr.bit.b0 #define PD6_1 PD6_addr.bit.b1 #define PD6_2 PD6_addr.bit.b2 #define PD6_3 PD6_addr.bit.b3 #define PD6_4 PD6_addr.bit.b4 #define PD6_5 PD6_addr.bit.b5 #define PD6_6 PD6_addr.bit.b6 #define PD6_7 PD6_addr.bit.b7 // union byte_def P8_addr; #define P8 P8_addr.byte #define P8_0 P8_addr.bit.b0 #define P8_1 P8_addr.bit.b1 #define P8_2 P8_addr.bit.b2 #define P8_3 P8_addr.bit.b3 #define P8_4 P8_addr.bit.b4 #define P8_5 P8_addr.bit.b5 #define P8_6 P8_addr.bit.b6 #define P8_7_DUM P8_addr.bit.b7 // union byte_def PD8_addr; #define PD8 PD8_addr.byte #define PD8_0 PD8_addr.bit.b0 #define PD8_1 PD8_addr.bit.b1 #define PD8_2 PD8_addr.bit.b2 #define PD8_3 PD8_addr.bit.b3 #define PD8_4 PD8_addr.bit.b4 #define PD8_5 PD8_addr.bit.b5 #define PD8_6 PD8_addr.bit.b6 #define PD8_7_DUM PD8_addr.bit.b7 // union byte_def PMR_addr; #define PMR PMR_addr.byte #define INT1SEL PMR_addr.bit.b0 #define INT2SEL PMR_addr.bit.b1 #define PMR_2 PMR_addr.bit.b2 #define PMR_3 PMR_addr.bit.b3 #define U1PINSEL PMR_addr.bit.b4 #define PMR_5 PMR_addr.bit.b5 #define PMR_6 PMR_addr.bit.b6 #define IICSEL PMR_addr.bit.b7 // union byte_def PUR0_addr; #define PUR0 PUR0_addr.byte #define PU00 PUR0_addr.bit.b0 #define PU01 PUR0_addr.bit.b1 #define PU02 PUR0_addr.bit.b2 #define PU03 PUR0_addr.bit.b3 #define PU04 PUR0_addr.bit.b4 #define PU05 PUR0_addr.bit.b5 #define PU06 PUR0_addr.bit.b6 #define PU07 PUR0_addr.bit.b7 // union byte_def PUR1_addr; #define PUR1 PUR1_addr.byte #define PU10 PUR1_addr.bit.b0 #define PU11 PUR1_addr.bit.b1 #define PU12 PUR1_addr.bit.b2 #define PU13 PUR1_addr.bit.b3 #define PU14 PUR1_addr.bit.b4 #define PU15 PUR1_addr.bit.b5 #define PU16 PUR1_addr.bit.b6 #define PU17 PUR1_addr.bit.b7 // union byte_def PUR2_addr; #define PUR2 PUR2_addr.byte #define PUR2_0 PUR2_addr.bit.b0 #define PUR2_1 PUR2_addr.bit.b1 #define PU22 PUR2_addr.bit.b2 #define PU23 PUR2_addr.bit.b3 #define PUR2_4 PUR2_addr.bit.b4 #define PUR2_5 PUR2_addr.bit.b5 #define PUR2_6 PUR2_addr.bit.b6 #define PUR2_7 PUR2_addr.bit.b7 //************************************************* // Define Protect register //************************************************* union byte_def PRCR_addr; #define PRCR PRCR_addr.byte #define PRC0 PRCR_addr.bit.b0 #define PRC1 PRCR_addr.bit.b1 #define PRC2 PRCR_addr.bit.b2 #define PRC3 PRCR_addr.bit.b3 #define PRCR_4 PRCR_addr.bit.b4 #define PRCR_5 PRCR_addr.bit.b5 #define PRCR_6 PRCR_addr.bit.b6 #define PRCR_7 PRCR_addr.bit.b7 //************************************************* // Define OSC //************************************************* union byte_def CM0_addr; #define CM0 CM0_addr.byte #define CM0_0 CM0_addr.bit.b0 #define CM0_1 CM0_addr.bit.b1 #define CM02 CM0_addr.bit.b2 #define CM03 CM0_addr.bit.b3 #define CM04 CM0_addr.bit.b4 #define CM05 CM0_addr.bit.b5 #define CM06 CM0_addr.bit.b6 #define CM07 CM0_addr.bit.b7 // union byte_def CM1_addr; #define CM1 CM1_addr.byte #define CM10 CM1_addr.bit.b0 #define CM11 CM1_addr.bit.b1 #define CM12 CM1_addr.bit.b2 #define CM13 CM1_addr.bit.b3 #define CM14 CM1_addr.bit.b4 #define CM15 CM1_addr.bit.b5 #define CM16 CM1_addr.bit.b6 #define CM17 CM1_addr.bit.b7 // union byte_def OCD_addr; #define OCD OCD_addr.byte #define OCD0 OCD_addr.bit.b0 #define OCD1 OCD_addr.bit.b1 #define OCD2 OCD_addr.bit.b2 #define OCD3 OCD_addr.bit.b3 #define OCD_4 OCD_addr.bit.b4 #define OCD_5 OCD_addr.bit.b5 #define OCD_6 OCD_addr.bit.b6 #define OCD_7 OCD_addr.bit.b7 // union byte_def FRA0_addr; #define FRA0 FRA0_addr.byte #define FRA00 FRA0_addr.bit.b0 #define FRA01 FRA0_addr.bit.b1 #define FRA0_2 FRA0_addr.bit.b2 #define FRA0_3 FRA0_addr.bit.b3 #define FRA0_4 FRA0_addr.bit.b4 #define FRA0_5 FRA0_addr.bit.b5 #define FRA0_6 FRA0_addr.bit.b6 #define FRA0_7 FRA0_addr.bit.b7 // union byte_def FRA2_addr; #define FRA2 FRA2_addr.byte #define FRA20 FRA2_addr.bit.b0 #define FRA21 FRA2_addr.bit.b1 #define FRA22 FRA2_addr.bit.b2 #define FRA2_3 FRA2_addr.bit.b3 #define FRA2_4 FRA2_addr.bit.b4 #define FRA2_5 FRA2_addr.bit.b5 #define FRA2_6 FRA2_addr.bit.b6 #define FRA2_7 FRA2_addr.bit.b7 // union byte_def CPSRF_addr; #define CPSRF CPSRF_addr.byte #define CPSRF_0 CPSRF_addr.bit.b0 #define CPSRF_1 CPSRF_addr.bit.b1 #define CPSRF_2 CPSRF_addr.bit.b2 #define CPSRF_3 CPSRF_addr.bit.b3 #define CPSRF_4 CPSRF_addr.bit.b4 #define CPSRF_5 CPSRF_addr.bit.b5 #define CPSRF_6 CPSRF_addr.bit.b6 #define CPSR CPSRF_addr.bit.b7 // union byte_def VCA2_addr; #define VCA2 VCA2_addr.byte #define VCA20 VCA2_addr.bit.b0 #define VCA2_1 VCA2_addr.bit.b1 #define VCA2_2 VCA2_addr.bit.b2 #define VCA2_3 VCA2_addr.bit.b3 #define VCA2_4 VCA2_addr.bit.b4 #define VCA25 VCA2_addr.bit.b5 #define VCA26 VCA2_addr.bit.b6 #define VCA27 VCA2_addr.bit.b7 //************************************************* // Define Function //************************************************* void wat(void); void main(void) { unsigned int lp; unsigned char LEDlst = 0; // ******************************* // 1.Initialized segment // ******************************* // (1)Select Osc (Select 20MHz External OSC) PRC0 = 1; //Write enable CM0、CM1、OCD、FRA0、FRA1、FRA2 CM13 = 1; //Start External OSC CM05 = 0; //Start External OSC for(lp=0;lp<100;lp++){ asm("NOP"); } OCD2 = 0; //Select External OSC PRC0 = 0; //Write disable CM0、CM1、OCD、FRA0、FRA1、FRA2 // (2)Define I/O PORT PRC2 = 1; //PD0に書き込みを行う場合、PRC2=1(PD0レジスタへの書き込み許可)しないと書き込みできません!!! PD0=0xff; //Derection P0=0x00; //Port0 Initialize // ******************************* // 2.Program main // ******************************* LEDlst = 1; while(1){ wat(); if(LEDlst == 1){ LEDlst = 2; }else if(LEDlst > 127){ LEDlst = 1; }else{ LEDlst = LEDlst * 2; } P0 = LEDlst; } } //****************************************************************************************** // Function Name : wat // Title : wait function // Input : // Output : // Description : //****************************************************************************************** void wat(void) { unsigned int i,i1; for( i1=0 ; i1<100 ; i1++ ){ for( i=0 ; i<100 ; i++ ){ asm("NOP"); } } }