upd72001.h

μPD72001用 簡易SIOドライバ [詳細]

#include <t_config.h>

upd72001.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

マクロ定義

#define SIO_ERDY_SND   1u
#define SIO_ERDY_RCV   2u

型定義

typedef sio_port_control_block SIOPCB

関数

void upd72001_initialize (void)
BOOL upd72001_openflag (void)
SIOPCBupd72001_opn_por (ID siopid, VP_INT exinf)
void upd72001_cls_por (SIOPCB *siopcb)
BOOL upd72001_snd_chr (SIOPCB *siopcb, char c)
INT upd72001_rcv_chr (SIOPCB *siopcb)
void upd72001_ena_cbr (SIOPCB *siopcb, UINT cbrtn)
void upd72001_dis_cbr (SIOPCB *siopcb, UINT cbrtn)
void upd72001_isr (void)
void upd72001_ierdy_snd (VP_INT exinf)
void upd72001_ierdy_rcv (VP_INT exinf)


説明

μPD72001用 簡易SIOドライバ

upd72001.h で定義されています。


マクロ定義

#define SIO_ERDY_RCV   2u

upd72001.h57 行で定義されています。

#define SIO_ERDY_SND   1u

upd72001.h56 行で定義されています。


型定義

typedef struct sio_port_control_block SIOPCB

upd72001.h51 行で定義されています。


関数

void upd72001_cls_por ( SIOPCB siopcb  ) 

upd72001.c331 行で定義されています。

参照先 CR1_DOWNFALSEUPD72001_CR1upd72001_write_ctrl().

参照元 sio_cls_por().

00332 {
00333         upd72001_write_ctrl(siopcb->siopinib->ctrl, UPD72001_CR1, CR1_DOWN);
00334         siopcb->openflag = FALSE;
00335 }

関数の呼び出しグラフ:

void upd72001_dis_cbr ( SIOPCB siopcb,
UINT  cbrtn 
)

upd72001.c386 行で定義されています。

参照先 CR1_RECVCR1_SENDSIO_ERDY_RCVSIO_ERDY_SNDUPD72001_CR1upd72001_write_ctrl().

00387 {
00388         UB      cr1_bit = 0;
00389 
00390         switch (cbrtn) {
00391         case SIO_ERDY_SND:
00392                 cr1_bit = CR1_SEND;
00393                 break;
00394         case SIO_ERDY_RCV:
00395                 cr1_bit = CR1_RECV;
00396                 break;
00397         }
00398         siopcb->cr1 &= ~cr1_bit;
00399         upd72001_write_ctrl(siopcb->siopinib->ctrl, UPD72001_CR1, siopcb->cr1);
00400 }

関数の呼び出しグラフ:

void upd72001_ena_cbr ( SIOPCB siopcb,
UINT  cbrtn 
)

upd72001.c366 行で定義されています。

参照先 CR1_RECVCR1_SENDSIO_ERDY_RCVSIO_ERDY_SNDUPD72001_CR1upd72001_write_ctrl().

00367 {
00368         UB      cr1_bit = 0;
00369 
00370         switch (cbrtn) {
00371         case SIO_ERDY_SND:
00372                 cr1_bit = CR1_SEND;
00373                 break;
00374         case SIO_ERDY_RCV:
00375                 cr1_bit = CR1_RECV;
00376                 break;
00377         }
00378         siopcb->cr1 |= cr1_bit;
00379         upd72001_write_ctrl(siopcb->siopinib->ctrl, UPD72001_CR1, siopcb->cr1);
00380 }

関数の呼び出しグラフ:

void upd72001_ierdy_rcv ( VP_INT  exinf  ) 

参照元 upd72001_isr_siop().

void upd72001_ierdy_snd ( VP_INT  exinf  ) 

参照元 upd72001_isr_siop().

void upd72001_initialize ( void   ) 

upd72001.c263 行で定義されています。

参照先 FALSEsiopcb_tablesiopinib_tableTNUM_SIOP.

00264 {
00265         SIOPCB  *siopcb;
00266         UINT    i;
00267 
00268         /*
00269          *  シリアルI/Oポート管理ブロックの初期化
00270          */
00271         for (siopcb = siopcb_table, i = 0; i < TNUM_SIOP; siopcb++, i++) {
00272                 siopcb->siopinib = &(siopinib_table[i]);
00273                 siopcb->openflag = FALSE;
00274         }
00275 }

void upd72001_isr ( void   ) 

upd72001.c426 行で定義されています。

参照先 siopcb_tableupd72001_eoi()upd72001_isr_siop().

00427 {
00428         if (siopcb_table[0].openflag) {
00429                 upd72001_isr_siop(&(siopcb_table[0]));
00430         }
00431 #if TNUM_SIOP >= 2
00432         if (siopcb_table[1].openflag) {
00433                 upd72001_isr_siop(&(siopcb_table[1]));
00434         }
00435 #endif /* TNUM_SIOP >= 2 */
00436         upd72001_eoi();
00437 }

関数の呼び出しグラフ:

BOOL upd72001_openflag ( void   ) 

upd72001.c281 行で定義されています。

参照先 siopcb_table.

参照元 sio_cls_por()sio_opn_por()upd72001_opn_por().

00282 {
00283 #if TNUM_SIOP < 2
00284         return(siopcb_table[0].openflag);
00285 #else /* TNUM_SIOP < 2 */
00286         return(siopcb_table[0].openflag || siopcb_table[1].openflag);
00287 #endif /* TNUM_SIOP < 2 */
00288 }

SIOPCB* upd72001_opn_por ( ID  siopid,
VP_INT  exinf 
)

upd72001.c294 行で定義されています。

参照先 CR10_DEFCR14_DEFCR15_DEFCR1_DOWNCR_RESETFALSEget_siopcbTADR_UPD72001_CTRLATADR_UPD72001_CTRLBTRUEUPD72001_CR1UPD72001_CR10UPD72001_CR12UPD72001_CR14UPD72001_CR15UPD72001_CR2UPD72001_CR3UPD72001_CR4UPD72001_CR5upd72001_openflag()upd72001_write_brg()upd72001_write_ctrl()upd72001_write_reg().

参照元 sio_opn_por().

00295 {
00296         SIOPCB          *siopcb;
00297         const SIOPINIB  *siopinib;
00298 
00299         siopcb = get_siopcb(siopid);
00300         siopinib = siopcb->siopinib;
00301 
00302         upd72001_write_reg(siopinib->ctrl, CR_RESET);
00303         if (!upd72001_openflag()) {
00304                 upd72001_write_ctrl((VP) TADR_UPD72001_CTRLA,
00305                                                 UPD72001_CR2, 0x18);
00306                 upd72001_write_ctrl((VP) TADR_UPD72001_CTRLB,
00307                                                 UPD72001_CR2, 0x00);
00308         }
00309         siopcb->cr1 = CR1_DOWN;
00310         upd72001_write_ctrl(siopinib->ctrl, UPD72001_CR1, siopcb->cr1);
00311         upd72001_write_ctrl(siopinib->ctrl, UPD72001_CR4, siopinib->cr4_def);
00312         upd72001_write_brg(siopinib->ctrl, UPD72001_CR12, 
00313                                 0x01, siopinib->brg2_def, siopinib->brg1_def);
00314         upd72001_write_brg(siopinib->ctrl, UPD72001_CR12,
00315                                 0x02, siopinib->brg2_def, siopinib->brg1_def);
00316         upd72001_write_ctrl(siopinib->ctrl, UPD72001_CR15, CR15_DEF);
00317         upd72001_write_ctrl(siopinib->ctrl, UPD72001_CR14, CR14_DEF);
00318         upd72001_write_ctrl(siopinib->ctrl, UPD72001_CR10, CR10_DEF);
00319         upd72001_write_ctrl(siopinib->ctrl, UPD72001_CR3, siopinib->cr3_def);
00320         upd72001_write_ctrl(siopinib->ctrl, UPD72001_CR5, siopinib->cr5_def);
00321         siopcb->exinf = exinf;
00322         siopcb->getready = siopcb->putready = FALSE;
00323         siopcb->openflag = TRUE;
00324         return(siopcb);
00325 }

関数の呼び出しグラフ:

INT upd72001_rcv_chr ( SIOPCB siopcb  ) 

upd72001.c354 行で定義されています。

参照先 upd72001_getchar()upd72001_getready().

00355 {
00356         if (upd72001_getready(siopcb)) {
00357                 return((INT)(UB) upd72001_getchar(siopcb));
00358         }
00359         return(-1);
00360 }

関数の呼び出しグラフ:

BOOL upd72001_snd_chr ( SIOPCB siopcb,
char  c 
)

upd72001.c341 行で定義されています。

参照先 FALSETRUEupd72001_putchar()upd72001_putready().

00342 {
00343         if (upd72001_putready(siopcb)) {
00344                 upd72001_putchar(siopcb, c);
00345                 return(TRUE);
00346         }
00347         return(FALSE);
00348 }

関数の呼び出しグラフ:


Copyright © 2006 by TAKAGI Nobuhisa.
Copyright © 2006 by Kijineko Inc..
このページは Mon Dec 18 17:22:30 2006 に Doxygen によって生成されました。
データ入力からプログラム開発まで!様々なスキルを持ったメンバーが登録しています【@SOHO】