/*********************************************************************************** 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) { sser = 0x00; // disable transmit & receive ssmr2 = 0x00; // clock synchronous communication ssmr = 0xC0; // LSB first, SSCK low when stop sscrh = 0x00; // set master mode ssmr2 = 0x40; // SSCK serial clock sscrh = 0x26; // count source f/4 sscrl = 0x20; // "H" after output sssr = 0x00; // clear flags sser = 0x10; // enable transmit } /*********************************************************************************** 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) { while(!tdre_sssr); } /*********************************************************************************** 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 ***********************************************************************************/