GR-SAKURA
GR-KURUMI
GR-COTTON
GR-CITRUS
GR-PEACH
GR-KAEDE
GR-ADZUKI
GR-LYCHEE
GR-ROSE
GR-MANGO(*)
SNShield
Web Compiler
IDE for GR
TOPPERS関連
女子美コラボ
その他
※プロデューサミーティング中
作り方使い方資料
イベント関連
作品記事
体験記事
ライブラリ
ツール
その他・過去ファイル
IDも作ってしまいましたので早速ながら?質問させて頂きます
GR-SAKURAではタイマ割込みはどのように利用すればいいのでしょうか。
なひたふさまがこちらhttp://japan.renesasrulz.com/gr_user_forum_japanese/f/4/t/78.aspxで
TMRなら、というような表現がありましたので自分なりに調べてみようと思い
RX62N周辺のWebクイックラーニングを参考にコーディングを試みましたが上手くいきません。
TMR01の16bitカスケード接続で定期的に自前関数を呼びたいのですが…
抱えている問題は2点です。
あと、ここまでやってふと思ったのですが、もしかしてintvect.cあたりで
ハンドラ?を設定すれば自前関数が適に呼び出せるのでしょうか?
そもそもArduinoではloop()から起動時間を見るプログラムにするものでしょうか?
初心者すぎて滅裂な質問かと思いますが、助言よろしくお願いします
ソースは…どうやって添付するのでしょう…か…
約10usec間隔のタイマー割り込みで、200usec周期前後の2相のパルス信号を生成させてみました。
これらのパルスでトランスを駆動して、現時点、1200Vこれの昇圧ができました。
現在、1500Vを目標に調整中です。
私も約10usec付近の任意のタイマーを試しておりますが、上手くいきません。
なひたふ様が仰るinterrupt.cが何処にあるのかわかりませんので、intvec.c内の1509行目を
//void Excep_TMR1_CMIA1(void){ }
とコメントアウトしました。
そして、iodefine_gcc63n.hとintvect.hをインクルードし、
tsuji様の書かれたサブルーチンで実行しましたら、
rxduino.cpp:(.text.startup+0x3): undefined reference to `setup'
とエラーが出てしまいました。
初心者のため、まだよく理解していないのかもしれませんが、どなたかお教えください。
よろしくお願いします。
--------------------------------------
#include <rxduino.h>
#include <iodefine_gcc63n.h>
#include <intvect.h>
volatile int state = LOW;
void Excep_TMR1_CMIA1(void)__INTTERUPT_FUNC;
void init_tmr16(){
MSTP(TMR0) = 0;
TMR0.TCORA = 48000 * 20 / 8192 - 1;
TMR1.TCORA = 50 - 1;
TMR0.TCR.BIT.CCLR = 1;
TMR1.TCR.BIT.CCLR = 1;
TMR1.TCCR.BIT.CSS = 3;
TMR1.TCR.BIT.CMIEA = 1;
IEN(TMR1,CMIA1) = 1;
IPR(TMR1,CMIA1) = 1;
}
void start_tmr16(){
TMR0.TCCR.BYTE = 0x0E;
void Excep_TMR1_CMIA1(void){
digitalWrite(PIN_LED0, HIGH);
void sutup(){
pinMode(PIN_LED0, OUTPUT)
init_tmr16(); // カウンタの初期化
void loop(){
start_tmr16(); // のカウント開始
あ、まず
はいらないかも。
あとsetupもスペルみすだし、セミコロンもないし
あと、gr_commonのなかにある
intvect.c
の1500行くらいのところにある
void Excep_TMR1_CMIA1(void)
を注釈にしておけば
とりあえずはコンパイルとおるんじゃない
うごくかどうかはまた別の問題だとはおもうけど。
/*GR-SAKURA Sketch Template Version: V1.02*/
void setup(){
pinMode(PIN_LED0, OUTPUT);
> てっちゃん様
ご指摘頂き有難う御座いました。スペルみすとセミコンを直し、カウント開始の場所をsetup内に移しましたら、無事動作しました。
Tsuji様の指摘の通り、intvec.hは入れないと通りませんでした。
この度は有難うございました。今後ともよろしくお願いします。
自己フォローですが、GR-SAKURA用プロジェクトテンプレート(Ver V2.23)に、下記の対応で、動作しました。
[インクルードファイルは、下記3つ] #include <Arduino.h>#include <iodefine_gcc63n.h>#include <rx63n/interrupt_handlers.h> [修正箇所](1)修正前: void INT_Excep_TMR1_CMIA1(void)修正後: void Excep_TMR1_CMIA1(void)(2) interrupt_handlers.c の対応か所のコメントアウト#if 0 /* H.I. */// TMR1_CMIA1void INT_Excep_TMR1_CMIA1(void){ }#endif ご参考