CQ_V850 (12) ― 2007年04月18日 22時26分25秒
ドキュメントを読んでAppliletで作成し、ちょっとした修正をすればタイマーが動くようになった。やはりけっこう便利。最も複雑なことはしていないから当然といえば当然か。このあたりで、もう限界なのがPM+。どうにも使い勝手が悪い。いっそのことエディタとコマンドラインの組み合わせで使いたいくらいだ。おまけに、よく落ちる...私の環境だけ???
ストレスがたまるツール群だ。
プロは IAR あたりのコンパイラを使うのだろうか?
この程度でわざわざ Applilet 使うなよ、といわれそう....
Appliletの出力にすこし手を加えただけだが
タイマーが動いた
#pragma ioreg
void TMM_Init( void )
{
TM0CTL0 = 0; /* stop TMM */
TM0EQIC0 |= 0x40; /* mask interrupt */
TM0EQIC0 &= ~0x80; /* clear IF flag */
TM0CTL0 |= 0x01; // count clock=fxx/2
TM0CMP0 = 0;
}
void wait_us( unsigned short INTERVAL )
{
unsigned long tmm;
tmm=INTERVAL*10;
while(tmm){
if(tmm < 20) break;
if(tmm > 60000){
TM0CMP0 = 60000-1;
TM0EQIF0=0;
TM0CE=1;
while(!TM0EQIF0) ;
TM0CE=0;
tmm -= 60000L;
}else{
TM0CMP0 = tmm-1;
TM0EQIF0=0;
TM0CE=1;
while(!TM0EQIF0) ;
TM0CE=0;
break;
}
}
}
ストレスがたまるツール群だ。
プロは IAR あたりのコンパイラを使うのだろうか?
この程度でわざわざ Applilet 使うなよ、といわれそう....
Appliletの出力にすこし手を加えただけだが
タイマーが動いた
#pragma ioreg
void TMM_Init( void )
{
TM0CTL0 = 0; /* stop TMM */
TM0EQIC0 |= 0x40; /* mask interrupt */
TM0EQIC0 &= ~0x80; /* clear IF flag */
TM0CTL0 |= 0x01; // count clock=fxx/2
TM0CMP0 = 0;
}
void wait_us( unsigned short INTERVAL )
{
unsigned long tmm;
tmm=INTERVAL*10;
while(tmm){
if(tmm < 20) break;
if(tmm > 60000){
TM0CMP0 = 60000-1;
TM0EQIF0=0;
TM0CE=1;
while(!TM0EQIF0) ;
TM0CE=0;
tmm -= 60000L;
}else{
TM0CMP0 = tmm-1;
TM0EQIF0=0;
TM0CE=1;
while(!TM0EQIF0) ;
TM0CE=0;
break;
}
}
}
最近のコメント