アナリティクス

ラベル Programming の投稿を表示しています。 すべての投稿を表示
ラベル Programming の投稿を表示しています。 すべての投稿を表示

2018年2月11日日曜日

プロのやり方

クロックを自在に生成するってどうやるんだろ?というのを知りたくて秋月の周波数ジェネレーターモジュールを入手。が、説明書の設定方法とかいろいろ検索で出てきた方法もあったけど、Pythonでやることでもなさそうだったので他の方法にしてみた。


プロのツール入手


ClockBuilder Pro ソフトウェアからダウンロード


プロの設定ファイル作成


インストールしたClock Builder Proを起動して

  1. Create New Design
  2. Clock Generators
  3. Si5351A
  4. Next
  5. Next
  6. 10-MSOP(3Output)を選択
  7. I2C Address
    割り当てるI2C Addressを変更したいなら、その値を指定
  8. 源発信の設定
    搭載している水晶が25MHz/8pFなので、それを指定
  9. 発生させるクロックの設定
    OUT0に発生させたいクロックの設定を行う。複数のピンで出力させる用はないので1つだけ。複数に指定するといろいろ大変。
  10. わからんNext
  11. 強度っぽいので8mA
  12. 設定を保存したいのでExport
  13. CSVで設定ファイルを保存
    CSVを選んで、コメントはいらないのでサマリのチェックは外す。初期状態はよくわからんので、pre/postはチェックをつける

これでCSVファイルにAddress,Dataが保存される。必要な出力クロックに応じてザクザクファイルを作る。


プロじゃない設定ツール


要はCSVのAddress列に指定されたアドレスにDataの値をぶち込むだけの簡単なお仕事。
ぶち込みツールのファイルと使い方はここ


設定してみた


  • 123.456 KHz
  • 2.8224 MHz(44.1KHz 32bit Stereo的な)
  • 24.5760 MHz(384KHz 32bit Stereo的な)

    桁が...


ちゃんとこれを使えるようにしないと...

2/11 23:53

クロックは正しく出ているらしいことは確認できた...けど、この24.576MHzはどこの24.576MHzなのかがわからない。Si5351とANALOG DISCOVERYがそう言ってるんだからそうなんだろうけど。あと太さがあるって事はばらつきがあって、どっちに偏ってるかとかどうやって見りゃいいか余計にわからなくなった。確かなものが何にもない。圧倒的経験値不足。

2012年6月29日金曜日

Twitter4j

Twitter4j使ってポストすると例外大発生。

Relevant discussions can be on the Internet at: http://www.google.co.jp/search?q=b2b52c28 or http://www.google.co.jp/search?q=1ca88b7a

云々カンヌン。
デバッガ止めて動かせばまともに動いた。

原因など知らん。

やればやるほど嫌いになる

2012年1月4日水曜日

いるはずのないCLLocationManager(2)

昨日、ちゃんと居なくなるようになったと思っていたCLLocationManagerが、何度かテストしているうちにどうにもこうにも居座るようになってしまった。メモリリークを疑ってみたものの、そういうわけでも無いらしい。
試しに別のプロジェクトを起こしてソースを貼り直してみると…消えるじゃないか。
さらに別のプロジェクトを起こして、同じ名前のアプリにしてみると…消えないじゃないか。

どうにも、一旦おかしくなったが最後、同名のアプリに絡んで何かが残るらしい。
何かってなんだろう?
リリースした後を考えると怖い。

2012年1月1日日曜日

いるはずのないCLLocationManager

applicationWillTerminateでCLLocationManagerをstopUpdateLocationしてみたものの、
- (void)applicationWillTerminate:(UIApplication *)application
{
    [_locationManager stopUpdatingLocation];
}

ステータスバーの位置情報取得中であることを示す矢印が消えない。こんなモンがあったらリジェクト確定。どうにかならんかともがく。
試しに
- (void)applicationWillTerminate:(UIApplication *)application
{
    [_locationManager stopUpdatingLocation];
    _locationManager.delegate = nil;
    _locationManager = nil;
}

としてみると消えてくれた。 原因はdelegateにnilを入れなかったからみたいだけど、ARCならこんなモン気にさせるなよ。
原因は別らしい

2011年6月27日月曜日

object release(2)

ああ、うん。
放置していいのね。

iOS 5 for Developers

コンパイラが不要なところで解放してくれるのね。

addGestureRecognizer で解放したらdelegate設定できないだろ。

2011年6月24日金曜日

object release

iPhoneでジェスチャーを使ったプログラムを作ってたら結構ハマった。
[hogehoge release] と書くと
"Automatic Reference Counting forbids explicit message send of 'release'"

うん、なんの事やらさっぱり。

ヘルプの参照からダウンロードした SimpleGestureRecognizers のプロジェクトだと

recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapFrom:)];
[self.view addGestureRecognizer:recognizer];
self.tapRecognizer = (UITapGestureRecognizer *)recognizer;
recognizer.delegate = self;
[recognizer release];


エディタ上でも怒られないし、動きもバッチリ。
でも自分のところにソースを持ってくると怒られる。
まあ、ベータのSDK使ってるわ、プロジェクトの構造がそもそも違うわで何か理由があるんでしょう。
で、ソースを見ていて気がついた。
なんで addGestureRecognizer で割り当てた後に delegate を設定しているのかと。
しかも解放するんだから順序逆じゃない?

などと素人ながらに推測して入れ替えてみた。

recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapFrom:)];
self.tapRecognizer = (UITapGestureRecognizer *)recognizer;
recognizer.delegate = self;
[self.view addGestureRecognizer:recognizer];


うん、動いた。
[iOS5] Automatic Reference Counting (ARC)
読めませんが何か?
あるんだろうな、やっぱり。

メモリどうなってるんだろ?
ヤバい気がする。

.....
投稿して20分後 'Use Storyboard'に気づいた。
もういい、どうせ勉強なんだしこのまま逝く。