SVX日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|12|
2025|01|02|03|04|05|06|07|

2004-08-13(Fri) PICのPWM制御、翻訳続き

  なんだか、翻訳し始めたら楽しくなってしまったので、昨日に引き続き、PICのPWM制御機能の翻訳なのである。英語読んで、日本語にして、理解して……と繰り返すうち、最初はわかんなかったことも、なんだかわかったきて、日本語を一部意訳に書き直したりして。こういう技術文書の場合、内容を理解しないと日本語に直してもダメであることを実感した次第である。

  ふと思ったのだが、翻訳は文章を創作するのと違い、気楽な楽しさがあるかもしれない。私は以前、ちょっとモノマネでSFなんぞを書いてた頃があったのだが、創作は到達点が明らかでないという苦しさがある。物語の展開をどっちに持っていくか、正解はないけど決めなくちゃならないからである。それに引き換え、翻訳はひとつひとつ着実に埋めていけば、必ず正解に到達できる。例えるなら、絵を描くのが創作で、ぬり絵を仕上げるのが翻訳というところであろうか。

  エラそうなことをいいつつ、翻訳品質は保障しないのでそのつもりで(一部、理解できてないところもあるし)。

  9.3 PWMモード

パルス幅変化(PWM)モードとは、CCP1ピンに分解能10ビットのPWM出力を行うものです。PORTBデータ・ラッチによりCCP1ピンを多重化してから、TRISBのビットをクリアすることにより、CCP1ピンを出力モードにできます。

注:CCP1CONレジスタをクリアすると、CCP1のPWM出力ラッチはローレベルになってしまいます。これはPORTBのI/Oデータ・ラッチではありません。下図(左)は、CCPモジュールをPWMモードにした場合のブロックダイヤグラムです。CCPモジュールをPWMモードにする方法については、9.3.3節を参照のこと。

PWM出力は、下図(右)のように、PWM周期と有効期間(High出力期間)から構成されています。

PWM周波数はPWM周期の逆数(1/PWM周期)です。

  画像の説明 画像の説明

  9.3.1 PWM周期

PWM周期はPR2レジスタで指定します。PWM周期は次の式で求められます。

PWM周期 = [(PR2) + 1] x 4 x Tosc x (TMR2プリスケーラ設定値)

PWM周波数は(1/PWM周期)として定義されます。

TMR2とPR2と等しい場合、次のPWM周期に以下のことが発生します。

・TMR2のクリア

・CCP1ピンのセット(ただし、PWM有効期間が0%の場合はCCP1ピンはセットされない)

・PWM有効期間はCCPR1HへCCPR1Lからラッチされる

注:Timer2のポストスケーラ(節8.0参照)はPWM周波数には関与しません。

ポストスケーラはPWM出力とは異なる時の周波数サーボアップデートに用いられます。

  9.3.2 PWM有効期間

PWM有効期間は、CCPR1Lレジスタの8ビットとCCP1CON<5:4>の2ビットで指定され、最大10ビット分解能まで利用できます。PWM有効期間は次の方程式で計算できます。

PWM有効期間 = (CCPR1L:CCP1CON<5:4>) x Tosc x (TMR2プリスケーラ設定値)

CCPR1LとCCP1CONの<5:4>で表されるPWM有効期間はいつでも変更できますが、TMR2とPR2が等しくなるまで変更はCCPR1Hへ反映されません(つまり、そのPWM有効期間内は変更されません)。PWMモードにおいて、CCPR1Hは読み出し専用レジスタであり、PWM制御の際に乱れを生じさせないため、CCPR1Hレジスタと内部の2ビットによりPWM有効期間を二重化して記憶しておくあるのです。そして、CCPR1Hレジスタと内部な2ビットがTMR2と一致すると、内部の2ビットのQクロックがTMR2プリスケーラの2ビットに連結され、CCP1ピンがクリアされます。

PWM制御の最大分解能は以下で式で与えられます。

PWM分解能(bits) = log(Fosc / Fpwm) / log(2)

注:PWM周期より、PWM有効期間長い場合、CCP1ピンはOFFになりません。

  9.3.3 PWM制御の設定

CCPモジュールをPWM制御に設定する場合、以下の順序で行う。

;1. PWM周期をPR2レジスタに書き込む
	SET	RP0, (STATUS)	; バンク1へ
	LD	A, 0FFh
	LD	(PR2), A	; PWM周期をFFに
	SET	RP0, (STATUS)	; バンク0へ
;2. PWM有効期間をCCPR1LとCCP1CON<5:4>に書き込む
	LD	A, 40
	LD	(CCPR1L), A	; PWM有効期間に40(25%)をセット
;	RES	4, (CCP1CON)
;	RES	5, (CCP1CON)	; どうせ後で0クリアしてしまう
;3. TRISBをクリアし、CCP1を出力に設定
	SET	RP0, (STATUS)	; バンク1へ
	RES	2, (TRISB)	; 今回はPORTBの2番をPWMする
	SET	RP0, (STATUS)	; バンク0へ
;4. T2CONに書き込み、TMR2プリスケーラを設定、Timer2を有効化する
	LD	A, 00000100b
	LD	(T2CON), A	; TMR2 ON & PRESCALER x 1
;5. CCP1CONをPWMモードに設定する
	LD	A, 0Ch
	LD	(CCP1CON), A	; PWMモードに設定(ついでに分解能の下位2ビットを0固定)
;Note: TRISBの2か3かは、コンフィギュレーションビットの12ビット目(CCPMX)による

  PICの話をしているのに、Z80ニーモニックを持ち出したりして、冗談が過ぎるよこのひとは……なんて思ったかもしれないが、実はこれマジ。ちゃんと動くし、何を隠そう私は実戦で使っているのである。実はPICの変態(インテル)ニーモニックを見たとき、最初から馴染むのをあきらめて、PICアセンブラで処女作を書く前に、Z80ライクニーモニックからPICニーモニックに変換するRubyスクリプトを書いてしまったのである(私以外に使う変態がいるとも思えないが、そのうち公開しよう)。だから私はPICニーモニックは読めるが書けないという、ハンパPICプログラマなのであった。

  中学から高校時代にかけZ80とMC68000のアセンブラに手を染めていたが、イザというときに指がたどったのはZ80ニーモニックであった。十三つ子の魂百までとはまさにこのこと。あな恐ろしや。

  あ、そうそう。ここんとこ毎日ThinkGeekのColdHotSolderToolの在庫が復活するのをチェックしていたのだが、本日めでたく復活していたので、抜く手も見せずに注文してしまった。届いてから十分にレポートするつもりなので、ひとつ楽しみにしておいて頂きたい。


2005-08-13(Sat) 京ぽんに機種変更

  さて、今日はカミさんとお出かけ。「皇帝ペンギン」という映画を観にいく。この映画、単なるドキュメンタリー映画と思うなかれ、後半は宿敵のメカペンギンが現れ、母親ペンギンがピンチに、そこに子ペンギンの超能力アタック!! 動きがシブくなったメカペンギンに、母親ペンギンの目からビーム攻撃!! そこに空から父親ペンギンのクチバシファイア特攻!! どてっぱらに大きな穴を開けられたメカペンギンは永遠に動きを止めるのであった!! ペンギン家族の愛の力、万歳!! ……という話だったら、とっても面白かったんですが、そういうコトはなかったです。

  そんなことはともかく、やっぱりパンツのゴムはヤバい。間違いなく、新しい携帯に替えてもバチがあたらないトコロまできているのだ。しかし、定額プランでイッキに攻勢をかけるウィルコムではあるが、やっぱり扱ってないトコロでは扱ってない。扱ってても高い。扱ってても在庫がない。期待せずに、松戸駅前を京ポン求めてサマヨウのである。

  事前に最近話題のカカクコムで調べたら、機種変更の底値は6,800円であった。まぁ、その場で機種が変更できるなら、もうちょっと出してもいいけど……ん? 妙に小さな携帯ショップだな。お? 京ポン置いてあるぞ。新規の値段しか書いてない。お兄さん、京ポン在庫ある? えっ!? あるッ!? オイラ赤でないとヤなんだけど……赤もあるッ!? じゃ、値段は……? 6,800円ッ!? 買う!! 今すぐ買うッ!!

  画像の説明

  ちゅーワケで、全然、期待してなかったが、100%希望の条件で機種変更できてしまった。いやー、3年も経つと、カルチャーショックですな。アチコチの機能で、次元が変わってますわ。

  しかし、なにより嬉しいのは、携帯を開け閉めする時の「コッキリ、チャッカリ」感である。うーむ、特にこの京ポン、他のどの端末より気持ちイイ気がするぞ。コッキリ、チャッカリ、コッキリ、チャッカリ、コッキリ、チャッカリ。今度は3年以上壊れないことを祈ろう。なむなむ。

  あ、大事なコトを言い忘れているが、今更言うまでもなくこの京ぽんって端末は、PCでも有名なオペラというブラウザを搭載しており、単体でウェブサイトが見ることのできる端末である。徐々にオレ流に活用していくことにしよう。うひひ。


2011-08-13(Sat) 利きスピーカ

  昨日の作業を受けて、利き酒ならぬ、利きスピーカを始めてしまう。一応、マトモなスピーカ(?)とも聴き比べてみたいので、以前に壊れたソニーのテレビから取り外しておいた同クラスのスピーカも出してきて並べ、ブレッドボード上でワシャワシャと差し替え、音の違いについて自らの耳で検証してみる。

  画像の説明

  むー、やはりというか、さすがというか、ソニーのテレビの音は落ち着いている。エンクロージャの強度の違いを感じる気がする。ま、比較対象は吸音材すら入れてないタッパーなんだけどね。しかし、中高音のキレに関して言えば、タッパーの方が、特に秋月スピーカの方が良い気がする。むぅ。タッパーとはいえ、一番、手塩にかけたこともあり、気持ち的には良い音がしてほしいP800がイマイチというのは……むむぅ。

  それはそうと、バスレフの管の長さによる違いは、体感できなかった。まぁ、各要素は複雑に絡んでいるだろうが、おそらくは数センチの差がそれほど効くことはないのだろう。今回、影響の大きい要素と、小さい要素を見極めるのも目的であるので、それはそれで有意義であったが。

  さて、オイラのブログでは、滅多に時事ネタを引用して語るようなことはしないのだが、今回ばかりはさすがに引用したくなった。というのも「自家製 MP3 プレイヤーが原因で空港閉鎖」っていうニュースが、モロに他人事ではなく、結構シャレにならないものを感じたからである。もしオイラのアイテムが完成し、海外に行く機会があれば、間違いなく何も意識せずに持って行くはずである。あぁ、イヤな世の中だなぁ。

  で、もうひとつ「Gmail的なものを自前で立ち上げるにはどうすればよい?」というニュース。オイラ、職場で毎日数百通のメールを相手にしているので、自作のメーラを使ってるんだが、まさにGmail的なものが欲しくて、作ったという経緯があるのだよね。

  画像の説明

  ちなみにこのメーラ、UI部分を取り替えられるように設計しておいたので、ちょっとしたcgiをかますだけで、ウェブメーラ(現状はビューア)に早変わりする。とりあえず、レンタルしているVPS上にインストールし、自分のGmailアカウントに来たメールを周期的にフェッチさせ、職場でメールチェックできるようにしてみた。うむ、便利。

  なんとなく、上記のニュースを見たら、再度イジりたくなってきた。長らくリリースしてなかったが、久々にリリースしてみるかな。あぁ、またやることが増えてしまった……。


2014-08-13(Wed) 続・早朝撃破

  ようやく、E2をクリア。今回も早朝撃破。

  昨晩、最終形態のボスを倒しきれず、再挑戦ッ!! ……と、アタックしたところ、割と調子よく進撃し、ボスの夜戦で筑摩改二x足柄改 vs 北方棲姫の単騎という絶好のシチュエーションにまで持ち込んだのに……なんと三式弾2連撃x2の頭3発がカスダメで60チョイ残すというありえない展開にガックシ……。

  画像の説明

  朝、改めて演習でキラ付けして、再挑戦したところ、今度は三式弾2連撃x2の頭2発で余裕の撃破。まぁ、フツー、そうなるな。

  画像の説明 画像の説明

  E2もE1のままシブった艦隊編成で挑んだこともあり、大破撤退率は50%を超えたが、ボス戦にはさほど手こずらなかったといえよう。さて、次は楽勝と言われるE3だ。