goo blog サービス終了のお知らせ 
「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



昨日動かしてみて動かなかった課題の1つ、タイマー2
のPWMから矩形波が出てこなかった件、原因判明。
Arduino1.0の問題じゃぁなかった…


以前、MsTimer2の内部コードについて、CTCモード
じゃなくてノーマルカウントモードになっていた
ので、CTCモードを使ったバージョンを作ってみた
http://nekosan0.bake-neko.net/library_timer.html
(↑このページの上のほうにあるzipファイル)
んだけど、オイラのPCの0022環境はオイラが作った
このライブラリを使ってて、Arduino1.0の環境は
リリースノート見たら色々変わってるところが
あるみたいだから、とりあえず見送ってたのを
思い出した…。

で、その内訳。データシート眺めると、SFRのTCCR2A
レジスタでPWM用出力端子のトグルを制御できるのは
CTCモードのほうで、ノーマルモードではトグルできない
ようになっているらしい。
ノーマルモードを使っている元々のMsTimer2では
オーバーフロー割込みをトリガにカウンタ値を設定
し直しているんだけど、オイラが改造したものは
CTCなのでコンペアマッチで自動的にカウンタ初期化
しているわけだけど、波形生成はこのコンペアマッチ
をトリガに行うから、ノーマルモードじゃぁ元々
出来ないわけだったんだなぁ。失敗。


というわけで、オイラ謹製のMsTimer2もどきを使う
っていうのがヨサゲかな…。ライブラリ原作者の人に
メールしたんだけど、届かなかったのかオイラの
英語がイマイチだったのか、未だにCTCにはなってない
んだよな。最新版も相変わらずノーマルモード。


http://headlines.yahoo.co.jp/videonews/nnn?a=20120308-00000068-nnn-soci
このおバカな医者。クルマ好きには数えたくないな。
 「フェラーリの良さを知ってほしかったし、自慢したかった」
って、単にクルマじゃなくて自分大好き人間じゃん。
教科書として、頭文字Dを全巻読破したら良いよ。
(突っ込みはご無用)
124kmって、あれか?自分で患者増やそ(以下略)


http://akizukidenshi.com/catalog/g/gM-02918/
いざって時のために、これ1個買っておこうかな。

http://akizukidenshi.com/catalog/g/gM-02827/
これとソーラーパネルもできれば欲しいな。

http://okwave.jp/qa/q3910601.html
300Hz~3400HzのBPF通したら、電話っぽい音が再生
できるってことかな?



コメント ( 3 )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする



« 改めて、Ardui... 金属加工 »
 
コメント(10/1 コメント投稿終了予定)
 
 
 
Unknown (ラジオペンチ)
2012-03-10 15:30:34
はじめまして、3ヶ月前くらいからArduinoを触りはじめた初心者です。

早速ですが、MsTimer2の挙動についてこちらで調べた記事です。
http://radiopench.blog96.fc2.com/blog-entry-285.html
ご意見など頂けたら幸いです。

あと、こちらで作られたCTCモード?のMsTimer2も使ってみたいのですが、ライブラリを入換えると既存のスケッチに影響が出るのが怖いので試してません。
とりあえずMsTimert2xとかの別の名前に書き換えちゃっても大丈夫なもんでしょうか。
 
 
 
Unknown (ラジオペンチ)
2012-03-11 06:52:51
nekosann,レスありがとうございます。

やはりtimer0など他の割り込みと競合が原因ですか。教えていただいたURLなどの情報、ゆっくり理解していきたいと思います。

あと、黒点の撮影に使ったレスキューシートはお察しの通り、銀色のペラペラの保温シートで、サバイバルシートなんて名前でも呼ばれています。

後で気付いたのですが、このシートを重ねて太陽を眼視すると、太陽の光球の周囲に放射状の光芒が見えます。
たぶんこのシートを作る時に延伸していると思うのでその影響だと思います。ということで、光学的にはあまり理想的な物ではないようで、そのせいで写真のコントラストが上がらなかった可能性があります。
まあ、使った望遠鏡もしょぼいんですけどね。
 
 
 
Unknown (nekosan)
2012-03-11 15:19:39
ラジオペンチさん、コメントありがとうございます。

Arduinoコアやライブラリ類のコードを片っ端から読んだ訳じゃないので、細かいところまでは裏を取ったわけではないのですが、millis周りとシリアル受信周りを読んだ範囲では、それぞれtimer0とUSART受信割込みが多重割込み禁止状態で処理されていました。他にも要因があるかもしれませんが、起こる事象は同様かと思います。

折を見て、mega32U4コア対応版のライブラリを元にCTC版を作って、作者の人に再度連絡してみたいと思います。

レスキューシートの情報、ありがとうございます。金属蒸着シートなら、可視光だけでなく赤外線や紫外線も減光できると思うので、安上がりでヨサゲですね。しわがよらず、風や振動で外れないような取り付け方を考えておく必要がありそうですね。
 
コメントを投稿する
 
名前
タイトル
URL
コメント
コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。