/************************************************************************
à e : VAÊMÖW
õ l : MCU70îÂpA(RS232CRgÍJIS\L)
----------------------------------------------------------------
bot : H8S/2144(HD64F2144FA20)
î Â : PTA MAIN BDü
J¾ê : YCH8,YAH8(CG[\tg)
^ u : 4
----------------------------------------------------------------
» ì :iLjGEAhEGt
************************************************************************/
/*----- ü Å ð --------------------------------------------------
No | N ú | ¼ | à e
01 | 1999-09-02 | ´ | Å®¬
02 | 2001-02-20 | ´ | MUU70p@³NbN18.432MHzÉÏX
03 | 2001-03-06 | ´ | MUU70p@|[gtÏX
04 | 2001-03-21 | ´ | ÖüÖ(Àst@CTCYk¬)
05 | 2001-03-30 | ´ | ÄpÅ
-----------------------------------------------------------------------*/
/********************************************
ðRpC
*********************************************/
//#define CLK18 // 19.6608MHzÌRgÉ·é
/********************************************
wb_
*********************************************/
#include "H8S2144.h" // H8S/2144 WX^è`
#include "global.h" // ¤Êè`
#include "extern.h" // Ovg^Cvé¾
#include "data.h"
#define NUL 0x00 // kAó
#define TXBUF_SIZE 0x400 // Mobt@TCY
#define TXBUF_MASK TXBUF_SIZE-1 // Mobt@}XN(Oobt@Ghp)
#define RXBUF_SIZE 0x200 // óMobt@TCY
#define RXBUF_MASK RXBUF_SIZE-1 // óMobt@}XN(Oobt@Ghp)
/********************************************
è`
*********************************************/
#ifdef CLK18
// Ó=18.432MHZÌrbg[g
#define SCI_BRR_1152 4 // 115200bps(n=0)
#define SCI_BRR_576 9 // 57600bps(n=0)
#define SCI_BRR_384 14 // 38400bps(n=0)
#define SCI_BRR_192 29 // 19200bps(n=0)
#define SCI_BRR_96 59 // 9600bps(n=0)
#define SCI_BRR_48 119 // 4800bps(n=0)
#define SCI_BRR_24 239 // 2400bps(n=0)
#define SCI_BRR_12 119 // 1200bps(n=1)
#define SCI_BRR_6 239 // 600bps(n=1)
#define SCI_BRR_3 119 // 300bps(n=2)
#else
// Ó=19.6608MHzÌrbg[g
#define SCI_BRR_1152 4 // ßl115200bps(n=0)
#define SCI_BRR_576 9 // ßl57600bps(n=0)
#define SCI_BRR_384 15 // 38400bps(n=0)
#define SCI_BRR_192 31 // 19200bps(n=0)
#define SCI_BRR_96 63 // 9600bps(n=0)
#define SCI_BRR_48 127 // 4800bps(n=0)
#define SCI_BRR_24 255 // 2400bps(n=0)
#define SCI_BRR_12 127 // 1200bps(n=1)
#define SCI_BRR_6 255 // 600bps(n=1)
#define SCI_BRR_3 127 // 300bps(n=2)
#endif
#define SCI_CKS0 0 // NbNIðÓ
#define SCI_CKS1 1 // NbNIðÓ/4
#define SCI_CKS2 2 // NbNIðÓ/16
#define SCI_CKS3 3 // NbNIðÓ/64
#define SCI_CH 3 // SCI`lgp
#define RS_DELIM 0x0a // ¶ñ]Ìf~^
/********************************************
vg^Cvé¾
*********************************************/
//--- O[o ---
// AvP[VÖ
void sci_bps(int ch, long bps); // {[[gÝè
void rs_pointer_init(int ch); // óMobt@|C^JE^ú»
void rs_rs_cmd(int ch, int); // RS(RTS) ON/OFFì
void rs_er_cmd(int ch, int); // ER(DTR) ON/OFFì
int rs_cs_sts(int ch); // CS(CTS) ÌóÔæ¾
int rs_dr_sts(int ch); // DR(DSR) ÌóÔæ¾
int rs_cd_sts(int ch); // CD(DCD) ÌóÔæ¾
int rs_ci_sts(int ch); // CI(RI) ÌóÔæ¾
void rs_232ttl(int ch); // SCI0 232C/TTLØÖ
unsigned int rs_putcheck(int ch); // Mobt@ó«oCgÌæ¾
int rs_putc(int ch, unsigned char); // 1oCgM
int rs_puts(int ch, unsigned char *); // ¶ñÌM
int rs_putn(int ch, unsigned char *, unsigned int); // noCgM
unsigned int rs_getcheck(int ch); // óMoCgÌæ¾
unsigned char rs_getc(int ch); // 1oCgóM(AXL[p)
int rs_getch(int ch); // 1oCgóM(oCip)
int rs_gets(int ch, unsigned char *, unsigned int); // ¶ñÌóM
int rs_getn(int ch, unsigned char *, unsigned int); // noCgóM
// WuÖ
void rs_txcont_job(int ch); // t[§äWu(CTSÅMð§ä·é)
void rs_job(int ch); // RS(RTS)̧ä(t[§ä)
void tx_job(int ch); // MWu(|[Oêp)
// Ö
interrupt void IntERI0(void); // SCI0 G[
interrupt void IntERI1(void); // SCI1 G[
interrupt void IntERI2(void); // SCI2 G[
interrupt void IntRXI0(void); // SCI0 óM
interrupt void IntRXI1(void); // SCI1 óM
interrupt void IntRXI2(void); // SCI2 óM
interrupt void IntTXI0(void); // SCI0 M
interrupt void IntTXI1(void); // SCI1 M
interrupt void IntTXI2(void); // SCI2 M
//--- [J ---
void rxerr_job(int ch); // óMG[Wu(æèR[)
void rx_job(int ch); // óMWu(æèR[)
void inttx_job(int ch); // MWu(æèR[)
void sci_init(int ch, unsigned char, unsigned char); // VA|[gú»
void rs_inttx(int ch, int); // MON/OFF
void rs_intrx(int ch, int); // óMON/OFF
/********************************************
Ïé¾
*********************************************/
// O[o
// [J
static unsigned char *ssr[SCI_CH] = {SCI0_SSR_P,SCI1_SSR_P,SCI2_SSR_P}; // VAXe[^XWX^
static unsigned char *scr[SCI_CH] = {SCI0_SCR_P,SCI1_SCR_P,SCI2_SCR_P}; // VARg[WX^
static unsigned char *tdr[SCI_CH] = {SCI0_TDR_P,SCI1_TDR_P,SCI2_TDR_P}; // Mf[^WX^
static unsigned char *rdr[SCI_CH] = {SCI0_RDR_P,SCI1_RDR_P,SCI2_RDR_P}; // óMf[^WX^
static unsigned char rs_send_buf[SCI_CH][TXBUF_SIZE]; // Mobt@
static unsigned char rs_recv_buf[SCI_CH][RXBUF_SIZE]; // óMobt@
static unsigned int rs_send_rp[SCI_CH]; // Mobt@ÇÝ|C^
static unsigned int rs_send_wp[SCI_CH]; // Mobt@Ý|C^
static unsigned int rs_send_c[SCI_CH]; // Mobt@cJE^
static unsigned int rs_recv_rp[SCI_CH]; // óMobt@ÇÝ|C^
static unsigned int rs_recv_wp[SCI_CH]; // óMobt@Ý|C^
static unsigned int rs_recv_c[SCI_CH]; // óMobt@cJE^
static unsigned int orerr_c[SCI_CH]; // I[o[G[JE^ ͳ¼Æ½ÓÊÕ¹ý³ÌÖÐoverrun error
static unsigned int frerr_c[SCI_CH]; // t[~OG[JE^ ͳ¼Æ½ÓÊÕ¹ý³ÌÖÐframe error
static unsigned int peerr_c[SCI_CH]; // peBG[JE^ ͳ¼Æ½ÓÊÕ¹ý³ÌÖÐparity error
/************************************************************************
* Tv : {[[gØèÖ¦ *
* @\ : *
* ø : int ch `l *
* long bps (300,1200,2400,4800,9600,19200,38400,57600,115200) *
* ßl : void *
* Ev : Äp *
* ì¬ : 2001/03/16 Y.Sugawara *
************************************************************************/
void sci_bps(int ch, long bps)
{
unsigned char br;
unsigned char ck;
switch(bps)
{
case 300: // 300bps
br = SCI_BRR_3; //SCI_BRR_3=127
ck = SCI_CKS2; //SCI_CKS2=2
break;
case 1200: // 1200bps
br = SCI_BRR_12 ; //SCI_BRR_12=127
ck = SCI_CKS1 ; //SCI_CKS1 =1
break;
case 2400: // 2400bps
br = SCI_BRR_24 ; //SCI_BRR_24=255
ck = SCI_CKS0 ; //SCI_CKS0=0
break;
case 4800: // 4800bps
br = SCI_BRR_48 ; //SCI_BRR_48=127
ck = SCI_CKS0 ; //SCI_CKS0=0
break;
case 9600: // 9600bps
br = SCI_BRR_96 ; //SCI_BRR_96=63
ck = SCI_CKS0 ;
break;
case 19200: // 19200bps
br = SCI_BRR_192 ; //SCI_BRR_192=31
ck = SCI_CKS0 ;
日立单片机H8S2144例程.包括AD,DA等程序(用于光源)但对于H8S2144使用者来说有很大的帮助.zip
版权申诉
153 浏览量
2023-01-31
16:44:56
上传
评论
收藏 158KB ZIP 举报
GZM888888
- 粉丝: 176
- 资源: 2945
最新资源
- keil2 + proteus + 8051.exe
- 1961ee27df03bd4595d28e24b00dde4e_744c805f7e4fb4d40fa3f695bfbab035_8(1).c
- mediapipe-0.9.0.1-cp37-cp37m-win-amd64.whl.zip
- windows注册表编辑工具
- mediapipe-0.9.0.1-cp37-cp37m-win-amd64.whl.zip
- 校园通行码预约管理系统20240522075502
- 车类型数据集6250张VOC+YOLO格式.zip
- The PyTorch implementation of STGCN.STGCN-main.zip
- 092300108.cpp
- 车类型数据集6000张VOC+YOLO格式.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈