[PR] 仕事求人 グアム格安旅行 求人・転職 seo対策 CIA
teacup. ] [ 掲示板 ] [ 有料掲示板 ] [ みんなの掲示板 ] [ ブログ ] [ チャット ]

新着順:8/83 記事一覧表示 | 《前のページ | 次のページ》

fjcニュ-ス11月号 1/2

 投稿者:山原  投稿日:2008年10月30日(木)14時26分55秒
  通報
  FJCニュ−ス 11月号
今月号は H8/3664 のCプログラム 時計 LCD時:分:秒表示(P8)
とRS232Cで時:分表示のTMA.Cのご紹介をいたします。
H8/3664 を 使ってまだ1カ月なので不都合の所もあるとおもいますが
お許しいただき、ご指摘いただければ幸いです。
タイマーAで基準1S時間を割り込みで作り、
ポート8で2S1回のLED点滅、液表16X12表示
RS232Cで時:分表示と時:分入力
ーーーーー TMA.Cーーーーーーーー
#include <Mytype.h>
#include <3664f.h>
#include <machine.h>
#define MHz 16
#define BAUD 19200
#define BITR (MHz*1000000)/(BAUD*32)-1
#define WAIT_1B (MHz*1000000)/6/BAUD
SInt8  DD[6];
UInt16 d8,d4,poi,tmx,tmy;
void rsout(char x) ;
SInt8 rsin(void) ;
void wait_ms(void) ; /* max 22 mS */
void wait_us(void) ;
void wait_n(void);
void init_lcd(void) ;
void init_tma(void) ;
void init_io(void) ;
void send_dt(void);
void tmset(void);
/*void tmai(void);*/
void init_sci(void);
void wr_ld8(void);
void wr_ld4(void);
void dsp_wath(void);
void main(void)
{

  int i;
  init_sci();
  init_tma(); /*initialize TimerA */
  init_io();
  init_lcd();
ms:
  and_ccr(0xff);
  for(i=0;i<=5;i++)DD[i]=0;
  tmset();
  and_ccr(0x7f);
ml:
  if(rsin()=='s')goto ms ; /* endless loop */
  goto ml;
}



void init_tma(void)
{
  TA.TMA.BYTE = 0x08 ; /* TMOW=1/32,interval=1sec */
  IRR1.BIT.IRRTA = 0 ; /* clear interrupt request flag for TMA */
  IENR1.BIT.IENTA = 1 ; /* enable Timer A overflow interrupt */

}
void init_io(void)
{
  IO.PCR8=0xdf; /*p8 bit 7 LED &LCD  0-3 DB4-7 OUT E bit4 RS bit6  */
  IO.PDR8.BIT.B7=0; /* LED ON */

}
void init_sci(void)
{
SInt16 xx;
IO.PMR1.BIT.TXD = 1;
SCI3.SCR3.BYTE = 0; /* clear all flags */
SCI3.SMR.BYTE = 0; /* Ascnc, 8bit, NoParity, (Even), stop1, 1/1 */
SCI3.BRR = 25; /* 19200baud (CPU=16MHz) */
tmx=100; /* 1us wait */
wait_us();
SCI3.SCR3.BYTE = 0x30; /* scr=0011 0000 (TE=1,RE=1) */
xx = SCI3.SSR.BYTE; /* Dummy Read */
SCI3.SSR.BYTE = 0x80; /* Clear Error Flag (TDRE=1) */
} /* initio */

void rsout(char x)
{
lp:
        if(SCI3.SSR.BIT.TDRE==0)goto lp ; /* wait can write transmit data */
   SCI3.TDR = x;
   SCI3.SSR.BIT.TDRE==0; /*割り込み処理をしないときは自分でクリアする*/

}
void tmset(void)
{
SInt8 a;
rsout('S');
rsout('e');
rsout('t');
rsout(' ');
rsout('T');
rsout('i');
rsout('m');
rsout(' ');
a=rsin();
rsout(a);
a = a & 0xf;
DD[5] = a;
a=rsin();
rsout(a);
a = a & 0xf;
DD[4] = a;
a=rsin();
rsout(a);
a = a & 0xf;
DD[3] = a;
a=rsin();
rsout(a);
a = a & 0xf;
DD[2] = a;

}
SInt8 rsin(void)
{
SInt8 x;
lpr: if(SCI3.SSR.BIT.OER==1 || SCI3.SSR.BIT.FER==1 ||  SCI3.SSR.BIT.PER==1 ){ /*error*/
SCI3.SSR.BIT.OER==0;
SCI3.SSR.BIT.FER==0;
SCI3.SSR.BIT.PER==0;
}
if(SCI3.SSR.BIT.RDRF != 1)goto lpr;
x=SCI3.RDR;
SCI3.SSR.BIT.RDRF = 0;
return(x);
}

http://homepage2.nifty.com/JG1FJC/

 
》記事一覧表示

新着順:8/83 《前のページ | 次のページ》
/83