/*********************************************************************************** FILE NAME main_repeat.c ***********************************************************************************/ /*********************************************************************************** User Includes ***********************************************************************************/ /* Following header file provides a structure to access on-chip I/O registers. */ #include "sfr_r81b.h" /* Following header file provides common defines for widely used items. */ #include "rskR8C1Bdef.h" /* Following header file provides prototype for the functions defined in this file. */ #include "main_repeat.h" /*********************************************************************************** Global variables ***********************************************************************************/ long t; /*********************************************************************************** User Program Code ***********************************************************************************/ /*********************************************************************************** Function Name : main Description : main function. ***********************************************************************************/ void main(void) { t=0; sfr_init(); // initialize SFR ssu_init(); // initialize SSU p1_2 = 0; ssu_transmit(); // initialize SSU transmission prcr = 0x0b; asm("FSET I"); p1_4 = 0; /* Main loop */ while(1){ /* Main processing */ } } /*********************************************************************************** End of function main ***********************************************************************************/ /*********************************************************************************** Function Name : ssu_init ***********************************************************************************/ void ssu_init(void) { re_sser = 0; // receive disabled te_sser = 0; // transmit disabled cphs_ssmr = 0; // clock phase : odd edge cpos_ssmr = 0; // clock polarity : "H" mls_ssmr = 1; // LSB first mss_sscrh = 1; // master device scks_ssmr2 = 1; // SCKS = Serial Clock pin soos_ssmr2 = 0; // serial data open drain : CMOS ssums_ssmr2 = 0; // *** SSU sckos_ssmr2 = 0; // *** CMOS ouput sscrl = 0x20; // *** "H" after output cks0_sscrh = 0; // clockrate selcet : cks1_sscrh = 1; // 1 1 0 => cks2_sscrh = 1; // f/4 rsstp_sscrh = 0; // receive >= 1 byte orer_sssr = 0; // No error overrun re_sser = 0; // receive disabled te_sser = 1; // transmit enabled rie_sser = 0; // receive interrupt disabled tie_sser = 0; // transmit interrupt enabled teie_sser = 0; // transmit end interrupt enabled } /*********************************************************************************** End of function ssu_init ***********************************************************************************/ /*********************************************************************************** Function Name : ssu_transmit ***********************************************************************************/ void ssu_transmit(void) { sstdr = 0B00111111; // data present in sstdr register wait(); sstdr = 0B11111111; // data present in sstdr register wait(); sstdr = 0B00001111; // data present in sstdr register wait(); sstdr = 0B11110000; // data present in sstdr register wait(); } /*********************************************************************************** End of function ssu_transmit ***********************************************************************************/ /*********************************************************************************** Function Name : sfr_init ***********************************************************************************/ void sfr_init(void) { /* Port */ p1 = 0B11111111; /* Port P1 initial setting = "H" */ p3 = 0B11111111; /* Port P3 initial setting = "H" */ p4 = 0B11111111; /* Port P4 initial setting = "H" */ /* Port direction */ pd1 = 0B11111111; /* Port P1 direction = output */ pd3 = 0B11111111; /* Port P3 direction = output */ pd4 = 0B11111111; /* Port P4 direction = output */ /* Timer */ tzck0 = 1; /* Division : Timer Z count sorce = f8 is selected */ tzck1 = 0; /* Division : Timer Z count sorce = f8 is selected */ /* Timer Z */ /* Mian cycle is generated by the timer Z interrupt */ tzmr = 0x00; /* Timer mode is selected / timer count stop */ pum = 0x00; /* "TZOPL" : Set to "0" when time mode is selected */ prez = 25-1; /* Timer Z prescaler : Set 25-1 (20MHz * f8 * 25 = 10usec) */ tzsc = 0x00; /* Timer Z secondary : Unused in timer mode */ tzpr = 25-1; /* Timer Z primary : Set 25-1 (10usec * 25 = 250usec) */ /* Interrupt registers */ tzic = 0x02; /* Timer Z interrupt : Priority level-2 is selected , Interrupt request bit = clear */ /* Timer count start bit */ tzs = 1; /* Timer Z count start bit = start */ ssisel = 0; // SSI => P3_3 iicsel = 0; // SSU selected } /*********************************************************************************** End of function sfr_init ***********************************************************************************/ /*********************************************************************************** Function Name : wait ***********************************************************************************/ void wait(void) { asm("NOP"); asm("NOP"); asm("NOP"); asm("NOP"); asm("NOP"); asm("NOP"); asm("NOP"); asm("NOP"); asm("NOP"); asm("NOP"); } /*********************************************************************************** End of function wait ***********************************************************************************/ /************************************************************************************ Name :timer_z_int Description :Main timer make. Timer Z interrupt(250usec) ************************************************************************************/ void timer_z_int(void) { asm("FSET I"); /* Interrupt enable */ } /*********************************************************************************** End of timer_z_int ***********************************************************************************/