天体写真用冷却CCDカメラの製作(CCDの制御 ソフトウエア)

 11の各動作をC言語の関数に直したのが下。実際にこのソフトで動かしたことがないのでたぶんこのままでは動かないと思うけど、それほど間違ってはいないはず。

 「何かいてあるのかさっぱりわからない」という方は、C言語の勉強をされることをお勧めします。

/*

CCD-TC245駆動用信号を出すための関数集

2003/01/31

端子割り当て

P4-5 IAG

P4-4 SAG

P4-3 SRG3

P4-2 SRG2

P4-1 SRG1

P4-0 TRG

信号はDS0026を通すので反転する。

ストレージエリアクリア動作の信号発送順

*内を247回繰り返す。

1111 1111 FF

* 1111 1110 FE

* 1110 1110 EE

* 1110 0001 E1

* 1111 0001 F1

1111 1111 FF

イメージエリアクリア動作の信号発送順

*内を247回繰り返す。(242か?)

500回でイメージ、ストレージエリアすべてをクリア

1111 1111 FF

* 1111 1110 FE

* 1110 1110 EE

* 1100 0001 C1

* 1101 0001 D1

1111 1111 FF

ストレージエリア内のdataを1行移動して3つをビニングする動作

* 1111 1111 FF

* 1111 1110 FE

* 1111 1111 FF

* 1111 1110 FE

* 1111 1111 FF

* 1111 1110 FE

* 1111 0001 F1

* 1110 1111 EF

* 1111 1111 FF

* 1ピクセル移動 11+252回

1ピクセル移動してad変換を行う動作

最初の11ピクセルは空なので捨ててしまう。

* 1111 1111 FF

* 1111 1101 FD

* 1111 1111 FF

* 1111 1011 FB

* 1111 1111 FF

* 1111 0111 F7

* AD変換

1111 1111 FF

*/

#include <h8/reg3067.h> /*I/Oアクセス用インクルード*/

//TC245制御の初期設定

void iniTc245( void );

//ストレージエリア内をきれいにする

void clearStArea( void );

//イメージ、ストレージエリア内をきれいにする

void clearImgArea( void );

//イメージエリアにあるdataをストレージエリアへ移動する

void moveImgArea( void );

//ストレージエリア内の1行のdataを1つ移動させてビニングをする

void move1Line(void);

//末端行に入っているDATAを1ピクセル動かす

void move1Pixel(void);

void move1Pixel(void)

{

P4DR = 0xff;

P4DR = 0xfd; asm( "nop" ); asm( "nop" );

P4DR = 0xff; asm( "nop" ); asm( "nop" );

P4DR = 0xfb; asm( "nop" ); asm( "nop" );

P4DR = 0xff; asm( "nop" ); asm( "nop" );

P4DR = 0xf7; asm( "nop" ); asm( "nop" );

return;

}

void move1Line(void)

{

P4DR = 0xff;

P4DR = 0xfe; asm( "nop" ); asm( "nop" );

P4DR = 0xff; asm( "nop" ); asm( "nop" );

P4DR = 0xfe; asm( "nop" ); asm( "nop" );

P4DR = 0xff; asm( "nop" ); asm( "nop" );

P4DR = 0xfe; asm( "nop" ); asm( "nop" );

P4DR = 0xf1; asm( "nop" ); asm( "nop" );

P4DR = 0xef; asm( "nop" ); asm( "nop" );

P4DR = 0xff;

return;

}

void moveImgArea( void )

{

int I;

P4DR = 0xff;

for(I=0;I<247;I++){

P4DR = 0xfe; asm( "nop" ); asm( "nop" );

P4DR = 0xee; asm( "nop" ); asm( "nop" );

P4DR = 0xc1; asm( "nop" ); asm( "nop" );

P4DR = 0xd1; asm( "nop" ); asm( "nop" );

}

P4DR = 0xff;

return;

}

void clearImgArea( void )

{

int I;

P4DR = 0xff;

for(I=0;I<500;I++){

P4DR = 0xfe; asm( "nop" ); asm( "nop" );

P4DR = 0xee; asm( "nop" ); asm( "nop" );

P4DR = 0xc1; asm( "nop" ); asm( "nop" );

P4DR = 0xd1; asm( "nop" ); asm( "nop" );

}

P4DR = 0xff;

return;

}

void clearStArea( void )

{

int I;

P4DR = 0xff;

for(I=0;I<247;I++){

P4DR = 0xfe; asm( "nop" ); asm( "nop" );

P4DR = 0xee; asm( "nop" ); asm( "nop" );

P4DR = 0xe1; asm( "nop" ); asm( "nop" );

P4DR = 0xf1; asm( "nop" ); asm( "nop" );

}

P4DR = 0xff;

return;

}

void iniTc245( void )

{

P4DR = 0xff;

P4DDR = 0x3f; //Port4-5〜0を出力に設定

P4DR = 0xff;

return;

}/**/

作成日: 2003-01-31 00:00:00

天体写真用冷却CCDカメラの製作(CCDの制御 ソフトウエア)

  • ともさん
  • ソーイング
  • ものつくり
  • みつばち
  • 気象
  • 電子工作
  • デジタルカメラ
  • ともさんの開発室
  • プロブラミング
  • ものつくり
  • リホーム
  • 食べ物作り
  • スリットカメラ
  • 定点観測
  • 2次元CCD
  • 1次元CCD
  • このページは「ともさん」が個人的に運営しています。

    RSS配信しています

    Yahoo!ブックマークに登録

    My Yahoo!に追加

    - リンク -
    ともさんブログ
    おデブとふつうの分水嶺 そんなに食うなら走らないと

    Contact me
    da

    null