/***********************************************************************/ /* */ /* FILE :TEST0027_R8C25_work.c */ /* DATE :Mon, Jan 14, 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/25マイコン用) //************************************************* #pragma ADDRESS p0_addr 00E0h #pragma ADDRESS pd0_addr 00E2h #pragma ADDRESS p1_addr 00E1h #pragma ADDRESS pd1_addr 00E3H #pragma ADDRESS p2_addr 00E4h #pragma ADDRESS pd2_addr 00E6H #pragma ADDRESS p3_addr 00E5H #pragma ADDRESS pd3_addr 00E7H #pragma ADDRESS p4_addr 00E8H #pragma ADDRESS pd4_addr 00EAH #pragma ADDRESS p6_addr 00ECH #pragma ADDRESS pd6_addr 00EEH // #pragma ADDRESS OCD_addr 000CH #pragma ADDRESS PRCR_addr 000AH #pragma ADDRESS CM0_addr 0006H #pragma ADDRESS CM1_addr 0007H //************************************************* // 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 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 p4_addr.bit.b0 #define p4_1 p4_addr.bit.b1 #define p4_2 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 p4_addr.bit.b6 #define p4_7 p4_addr.bit.b7 // union byte_def pd4_addr; #define pd4 pd4_addr.byte #define pd4_0 pd4_addr.bit.b0 #define pd4_1 pd4_addr.bit.b1 #define pd4_2 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 pd4_addr.bit.b6 #define pd4_7 pd4_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 //************************************************* // Define OSC register //************************************************* 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 //************************************************* // 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 CM register //************************************************* 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 // //************************************************* // Define Function //************************************************* void wat(void); void main(void) { unsigned int LEDlst = 0; unsigned int lp; // ******************************* // 1.Initialized // ******************************* // (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; p0 = 0x00; // ******************************* // 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"); } } }