04/07/29 11:14 Q+yQ+e8r
>679;
<<676より
いろいろやったけど、まだ動かない。
やっぱりXres立てるところで止まる。コードが変?
main.cの頭でローカル変数としてchar txres;で定義して
void SetXres(char time)
{
int i;
time = time*2;
//PRT0DR &= ~4;
PRT0DR |= 4;
txres = time;
while (txres > 0);
PRT0DR &= ~4;
for (i = 0; i < 7; i++);// wait 40 microS (@ 24 Mhz)after xres
}
となっているんだけど、txres変数はローカルで他に出てこないので、
while (txres > 0);のところで永久に待っていることになる。
ちなみに、使っているモジュールでRX8_1がPCからhexファイルを受け取る
モジュールでPSoCのフラッシュメモリーの
unsigned char bufPrg[65];// Buffer write flash
unsigned char buf232[75];// Buffer download program
にRX8_1INT.asmのインタラプトルーチンで一気にダウンロードしている。
その後に、main.cのなかのルーチンSetXres(5);で焼きたい石にリセットを
かけてから、Program();というルーチンで書き込んでいる。焼きたい石に
書き込むのにSPIM_1というシリアル通信のマスターモジュールを使っている。
だから、SPIM_1の結線が結構重要。1本のピンを書き込みと読み取りにしていて
デフォルトではピンはSPIM_1の出力になっていてソフトで石からの応答を
読むときだけそのピンをSPIM_1の入力に変更している。
今のとこ動かないけど、勉強になりましたです。(汗)