[Armadillo:01414] Re: PWM出力の方法について

Yasushi SHOJI email@hidden
2006年 11月 29日 (水) 21:14:24 JST


At Mon, 20 Nov 2006 13:20:39 +0900,
or02310 wrote:
> 
> R.Onodera です。一つ言い忘れました。
> 
> Yasushi SHOJI wrote:
>  > どのような環境で、どのぐらいの制度が必要ですか?
> サーボモータ2つを独立して制御します。出力に用いるポートは
>  ・サーボモータA CON7の3番ピン
>  ・サーボモータA CON7の7番ピン
> です。
> 制御信号の周期は18[msec]程度で、パルス幅は0.75〜2.25[msec]
> 程度を予定しています。

う〜む…。ぜひ SUZAKUをご検討ください。やりたい放題ですよ :-)

    htttp://suzaku.atmark-techno.com/


と、宣伝は置いておいて、どれくらいの精度が必要なのかわからないので条件
をみたすかわかりませんが、ep9307の timerを使う方法を紹介します。

EP9307には4つの timerが搭載されていますが、Linuxでは Timer 1と Timer 4
を使用しています。ですので、Timer 2 (16bit)と Timer 3(32bit)は自由に使
えます。

どちらかの timerを使う linux device driverを作成し、希望のインターバル
で割り込みが入るように作ります。device driverの割り込みハンドラで、希
望の計算をして、GPIOを叩くと簡易的に可能です。

外部から動的に計算に必要な値を渡す必要があれば、write()やioctl()を実装
し、userlandから渡すと良いと思います。

しかし、Linuxは RTOSではないので、反応時間に一切保証がありません。もし、
240を使いながら精度を求めるのであれば、ARMの FIQ機能を使うのも面白いか
もしれません。
-- 
       yashi



armadillo メーリングリストの案内