目次

ファームウエアスケルトン

 ファームウエアは、制御関係に限らず
 次の構成にしています。



 I/Oの初期化、変数初期化、割込み許可を専用関数に
 閉じ込めます。割込み処理関数を定義しておいて
 mainの中では、フラグを見ながら対応処理を実行
 します。

 ソースコードで示すと、以下。

/* redefine data type */
typedef unsigned char  UBYTE ;
typedef unsigned int   UWORD ;
typedef unsigned long  ULONG ;

#define OFF 0
#define ON  OFF+1

/* function prototype */
void  init_usr(void);

/* interrupt handler */
void interrupt(void)
{
  /* ????? */
}

void main(void)
{
  /* user initialize */
  init_usr();
  /* endless loop */
  while ( ON ) {
    /* ??? */
  }
}

/* define function body */
void init_usr(void)
{
  /* I/O initial state */

  /* I/O direction */

  /* initialize Timer 0 */
  {

  }
  /* initialize EEPROM access */
  {

  }
  /* enable general interrupt */
  INTCON.GIE = ON ;
  /* clear flags */

  /* others */

}

 このスケルトンは、MikroC、SDCC用。

 CCS社のCでは、intが8ビットサイズなので
 次のようにデータ型を定義します。

typedef unsigned int   UBYTE ;
typedef unsigned long  UWORD ;
typedef          int   SBYTE ;
typedef          long  SWORD ;

 Cは、そのコンピュータが最も自然に扱えるデータ型を
 intにするという仕様があるので、このような定義が
 許されています。


目次

inserted by FC2 system