#contents;
//-------------------------------------------------------------- // ¥·¥ê¥¢¥ëÄÌ¿®ÍÑ´Ø¿ô for H8 // Ver.1.0 //-------------------------------------------------------------- //´Ø¿ô¤Î¥×¥í¥È¥¿¥¤¥×Àë¸À void init_h8sci(char arg_cBaudrate); void h8sci_out_data(char arg_c); void h8sci_out_string(char *arg_sStr); unsigned char h8sci_in_data(void); char h8sci_buf[150]; #define BR4800 103 #define BR9600 51 #define BR19200 25 #define BR38400 12 #define BR57600 8 //-------------------------------------------------------------- //¥·¥ê¥¢¥ë½èÍý´ØÏ¢ //-------------------------------------------------------------- //½é´ü²½ void init_h8sci(char arg_cBaudrate) { #ifndef DISABLE_SCI int i; SCI1.SCR.BYTE = SCI1.SMR.BYTE = 0; SCI1.BRR = arg_cBaudrate; // ¥Ü¡¼¥ì¡¼¥È for (i = 0; i < 1000; i++); // ¤È¤ê¤¢¤¨¤ºÂÔ¤Ä SCI1.SCR.BYTE = 0x30; // Á÷¼õ¿®µö²Ä SCI1.SSR.BYTE; // ¥À¥ß¡¼¥ê¡¼¥É SCI1.SSR.BYTE = 0x80; // ¥¨¥é¡¼¥Õ¥é¥°¥¯¥ê¥¢ #endif } //1ʸ»úÁ÷¿® void h8sci_out_data(char arg_c) { #ifndef DISABLE_SCI while(SCI1.SSR.BIT.TDRE == 0); SCI1.TDR = arg_c; SCI1.SSR.BIT.TDRE = 0; #endif } //ʸ»úÎóÁ÷¿® void h8sci_out_string(char *arg_sStr) { #ifndef DISABLE_SCI while(*arg_sStr) h8sci_out_data(*arg_sStr++); #endif } //1ʸ»ú¼õ¿® //Ãí°Õ¡§¤³¤Î´Ø¿ô¤ò¸Æ¤ó¤À»þÅÀ¤ÇÄä»ß¤·¤Þ¤¹¡£²¿¤«ÆþÎϤ¬¤¢¤ì¤Ð¼¡¤Ø°Ü¹Ô¤·¤Þ¤¹¡£ unsigned char h8sci_in_data(void) { #ifndef DISABLE_SCI char data; while((SCI1.SSR.BYTE & 0x78) == 0); //¼õ¿®¤È¥¨¥é¡¼¤Î¥Õ¥é¥°¤¬Î©¤Ä¤Þ¤ÇÂÔ¤Ä if(SCI1.SSR.BIT.RDRF == 1){ //¥Ç¡¼¥¿¼õ¿®¤¬Àµ¾ï data = SCI1.RDR; //¥Ç¡¼¥¿¤ò¼õ¤±¼è¤êdata¤ËÊݸ SCI1.SSR.BIT.RDRF = 0; //¼õ¿®¥Õ¥é¥°¤Î¥¯¥ê¥¢ return(data); } else{ //¥Ç¡¼¥¿¼õ¿®¤Ë¥¨¥é¡¼È¯À¸ SCI1.SSR.BYTE &= 0xc7; //¥¨¥é¡¼¥Õ¥é¥°¤ò¥¯¥ê¥¢ return(0xff); //¥¨¥é¡¼»þ¤ÏFF¤òÊÖ¤¹ } #endif }