[H8-ML(4234)] Re: AKI-H8 8048F インターバルタイマ
From: 槫林 <mkurebayashi@xxxxxxxxxxxxxxxxxx>
Date: 2003年12月18日(木)18時39分44秒
槫林です。

何処がLEDの表示かわかりませんが(たぶん*P5bかな?)、
timerがint型だからじゃないでしょうか?
int型の最大は32768だと思うので、その辺から崩れているでわ?
あと、ポートはvolatileで宣言した方が良いかと。
違ったら、どなたか私にツッコミを入れてください。

でわ

K.Mekata wrote:
> はじめましてK.Mekataです。
> 
> 秋月電子のAKI-H80 と、マザーボード AE-H8MB
> コンパイラは秋月電子の物を使用しています。
> 
> インタバルタイマで、LEDをちかちかさせようと考えているのですが
> 動作しない理由がいま1つわかりません。
> 
> 自分で「これはやった」とおもっているのは、
> アセンブラにより、割り込みベクタ 050Hを乗っ取る
> WDTをインターバルタイマとして使用するように設定。
> 割り込みを有効に。
> 
> というかんじなのですが、LEDは点灯してくれません。
> どうか解決方法を教えていただけませんか?
> 
> ----resetv.mar
> 
>  .CPU 300HA
>  .IMPORT _timer1INT
>  .SECTION A,DATA,LOCATE=H'000000
>  .IMPORT _main
> 
>  .DATA.L H'00100  ;リセットベクトル
> 
>     .ORG    H'000050  ;IMIA1
>     .DATA.L _timer1INT
> 
>  .ORG H'000100
>  MOV.L #H'FFF10,ER7 ;スタックポインタ設定
>  jmp @_main
>  
>  .END 
> 
> 
> --mytest.c
> 
> int timer;
> 
> void main (void)
> {
> 
>  char *P4a = (char *) 0xfffc5;
>  char *P4b = (char *) 0xfffc7;
>  char *P4c = (char *) 0xfffda; 
> 
>  char *P5a = (char *) 0xfffc8;
>  char *P5b = (char *) 0xfffca;
>  char *P5c = (char *) 0xfffdb;
> 
>  char *wdta = (char *) 0xfffa8;
>  char *wdtb = (char *) 0xfffa8;
>  char *wdtc = (char *) 0xfffaa;
> 
>  unsigned int data;
> 
>  *P4c = 0xff;
>  *P4a = 0x00;
> 
>  *P5a = 0xff;
> 
>  *wdta = 0x05a27; /* 0010 0111 */
>  *wdtb = 0x0a500;
> 
> 
>  timer=0;
> 
>  while (1) {
>   if ( (*P4b & 16) == 0 ) {
>    *P5b = 0xff;
>   } else {
> /*   *P5b = 0x00;
> */
>   }
> 
>   if ( timer == 32768 ) {
>    *P5b = 0xff;
>   }
>   if ( timer == 0 ) {
>    *P5b = 0x00;
>   }
> 
> 
>  }
> 
> }
> 
> #pragma interrupt(timer1INT)
> void timer1INT(void)
> {
>  char *wdta = (char *) 0xfffa8;
>  char *wdtb = (char *) 0xfffa8;
>  char *wdtc = (char *) 0xfffaa;
> 
>  char *P5a = (char *) 0xfffc8;
>  char *P5b = (char *) 0xfffca;
>  char *P5c = (char *) 0xfffdb;
> 
>  int dummy;
>  dummy = *wdta;
>  dummy &= 0x7f;
>  *wdta = dummy;
> 
> 
>  *P5a = 0xff;
>  *P5b = 0xff;
> 
>  timer++;
>  if ( timer > 65536 ) { timer = 0; }
> 
> }
> 
> 
> 
> 



スレッド概略
[4230(R)](起点)
 └[表示中]
   └[4239(1)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]