Home
フォーラム
Coron質問
初歩的な質問
引用付き投稿返答 :初歩的な...
Android事業
実績紹介
製品紹介
フォーラム
会社概要
お問い合わせ
メインメニュー
Home
Android事業
Android+Robot
GDD2011出展
Android アプリ開発
ロボット事業
製品情報
Go Simulation!
Coroid
Coron
フォーラム
ショップ
会社概要
会社情報
アクセス
採用情報
サイトマップ
ログイン
社長ブログ
引用付き投稿返答 :初歩的な質問
ユーザー名
件名:
post_text_textarea
[admin2 2010-06-07 16:27:50]:
<p>>タイマ- を使い 100ms / 500ms などの</p> <p>>3種類の割込みを使ったプログラムのサンプルがあれば教えてください</p> <p> </p> <p>Coronのご愛用有難うございます。</p> <p> </p> <p>タイマー割り込みを使った例としては、サンプルプロジェクト[Ex08_LOG_TXT]がそれにあたります。</p> <p>このサンプルでは、TIM7をタイマー割り込み用として使って10msecの割り込みを発生させています。</p> <p> </p> <p>割り込み周期の設定方法としては、例えば100msecの周期に変更する場合は</p> <p>(以下、別トピックの転載です)、</p> <p> </p> <p>/* Immediate load of TIM7 Precaler value */<br /> TIM_PrescalerConfig(TIM7,72-1, TIM_PSCReloadMode_Immediate); //10msec</p> <p>を</p> <p>TIM_PrescalerConfig(TIM7,720-1, TIM_PSCReloadMode_Immediate); //100msec</p> <p>のように設定してください(これで10倍遅くなります)。</p> <p>※TIM_TimeBaseStructure.TIM_Prescaler = (72-1); となっているところも特に意味は無いのですが</p> <p>紛らわしいので上記と合わせて= (720-1);と変更してください。</p> <p> </p> <p>設定値の計算方法としては、</p> <p>割り込み周期[Hz] = 72000000[Hz] / ((Prescaler値+1) x Period値)</p> <p>となります。</p> <p>※Prescaler値,Period値共に0x0000~0xFFFF</p> <p> </p> <p>500msecにする場合も同様に、Prescaler値,Period値を変更してください。</p> <p>(0xFFFF以上の値にならないように注意してください)</p> <p> </p> <p>[coron_tim7int.c]ファイル内でTIM7のタイマー割り込み初期化関数(TIM7_init())と、タイマー割り込み処理関数</p> <p>(TIM7_Intterupt())を記述しています。</p> <p>タイマー割り込み処理関数 である[TIM7_Intterupt()]は[stm32f10x_it.c]にて以下のように宣言しています。</p> <p>void TIM7_IRQHandler(void)<br />{<br /> TIM7_Intterupt();<br />}</p> <p> </p> <p>Coronで使用しているSTM32マイコンはタイマがTIM1~TIM8まで計8個あり、そのうちRCサーボや音楽再生などのCoronの周辺機能でTIM2~TIM6まで使用しています(※TIM1とTIM8は高機能タイマ)。</p> <p>どのタイマが、どの機能にそれぞれ割り振られているかは、coron_conf.hに記述されています。</p> <p> </p> <p>もし、特にCoronライブラリを使用する必要が無い機能(例えばDCモータの出力タイマ割り込みTIM2など)があれば、TIM2~TIM6もTIM7と同様にユーザが別のタイマ割り込みとして自由に使うことができます。</p> <p>TIM2~TIM6のタイマ割り込み初期化方法などはTIM7と全く同じです。</p> <p>(※TIM1とTIM8は機能が追加されている為、少し初期化処理が増えます。詳細はCPUのデータシートをご覧になってください)</p>
セキュリティ:
プレビュー
保存
キャンセル
引用付き投稿返答 :初歩的な質問
User
Powered by
ccBoard