目次
前
次
ファームウエアスケルトン
ファームウエアは、制御関係に限らず
次の構成にしています。
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にするという仕様があるので、このような定義が
許されています。
目次
前
次