iPodから音楽データを取り出すという夢を見た。

先日突然、使っているMacBookのHDが音を立て、動かなくなりました…orz CD-ROMブートさえもできない状況で、 仕方がないので、HDを換装しました。バックアップを取ってなかったので、データは無くなっちゃいました。 自分の中で無くなって悲しいデータといえ…

NSArrayのindexOfObjectの戻り値とNSNotFoundについて

最近、Objective-cについて勉強し始めました。参考にさせていただいてるのはコチラ! Cocoaの素、Objective-Cを知ろう − @IT 分かりやすくて、とても勉強になります!ありがとうございます!!今のところ、(4)まで進んだのですが、 サンプルプログラムを動…

職業訓練47日目 H8マイコン制御技術(LCD-SCI制御技術)

LCDの制御 使用したLCDはコチラ!(多分…) LCDキャラクタディスプレイモジュール(16×2行バックライト無): ディスプレイ・表示器 秋月電子通商-電子部品・ネット通販16文字×2行のアスキー文字を1文字につき5×7ドットあるいは5×10ドットで表示する。 …

職業訓練46日目 H8マイコン入門(アセンブラ言語による実習)

割込み制御 割込み 実行中の処理を一時停止して、他の処理を行った後に最下位する機能。●割込み動作の流れ PCとCCRをスタックに待避(必要であれば、汎用レジスタのデータもスタックに待避) CCRの割込みマスクビットに"1"をセット(他の割込みを禁止する) …

職業訓練45日目 H8マイコン入門(アセンブラ言語による実習)

A-D, D-Aコンバータの制御 A-Dコンバータ アナログデータをデジタルデータに変換する装置。 分解能:10ビット 方式:逐次変換方式 チャネル数:8 変換を行うアナログ電圧の範囲:0〜5V 最大4入力の変換結果を16ビットのA-Dデータレジスタ4個に保持可能。 複…

職業訓練44日目 H8マイコン入門(アセンブラ言語による実習)

パルスモータの制御 パルスモータとは パルス電力を入力として回転する(→マイコン制御と相性が良い) 長所:正確な回転(位置決め)を制御できる。N極とS極をもつロータ(回転子)の周囲に電磁石(固定子)を配置した構造になっていて、 電磁石を磁化するパ…

職業訓練43日目 H8マイコン入門(アセンブラ言語による実習)

LEDの制御 LEDの点滅 LEDを点滅させるにはタイマプログラムを作る必要があり、 タイマには2つの実現方法がある。 繰り返し処理で時間をかせぐ 内蔵タイマ(ITU)を利用する まずは1.の繰り返し処理を利用したコードから。 下記のコードを実行すると、5秒経過…

職業訓練42日目 H8マイコン入門(アセンブラ言語による実習)

LEDの制御 LEDの点灯 早速、使用したソースコードから。 .CPU 300HA ; CPUの指定(アドレス空間は24ビット) .SECTION PROG1, CODE, LOCATE=H'000000 ; メモリの0番地から書き込むコードで、PROG1というセクション名 P1DR .EQU H'FFFFC2 ; ポート1のDRアドレ…

職業訓練41日目 H8マイコン入門(アセンブラ言語による実習)

アセンブラ言語の基礎 アセンブラ言語とは CPUが理解できる言語 = マシン語(二進数) →人間には分かりにくいので、人間にも分かりやすい記号(ニーモニック)で プログラムを作成する。 ニーモニックコードの集まり = アセンブラ言語 アセンブラ制御命令 ア…

職業訓練40日目 H8マイコン入門(H8/3048Fマイコンの基礎)

アーキテクチャ アーキテクチャの概要 CPU H8/300H RAM 4KB ROM 128KB 最大動作クロック 16MHz H8/3048Fの考え方 CPU メモリ 入出力ポート 周辺機能 メモリ メモリマップ メモリや外部バスの選択法によって7種類の動作モードがある。動作モードの種類につい…

職業訓練39日目 H8マイコン入門(マイコンでのデータ表現)

「2進数」「16進数」「ディジタル回路(の前半)」はサックリと割愛。 マスク操作 ビットを0にマスクする 0でAND演算を行う。例)下位4ビットを0にマスクする。 11011001 元データ AND)11110000 マスクデータ = 11010000 ビットを1にマスクする 1でOR演算を…

職業訓練38日目 H8マイコン入門(H8マイコンとは)

H8の主なシリーズ 16ビット H8/500 H8/300H H8/300H Tiny H8S/2000 8ビット H8/300 H8/300L 代表的な機種 H8/3048F H8/300Hシリーズ ROM:128KB RAM:4KB A-D/D-Aコンバータを搭載 →今回使うのはコレ! H8/3664F H8/300H Tinyシリーズ H8/3048Fより機能は少…

職業訓練37日目 H8マイコン入門(マイコン制御の基礎)

CPUの区分 可変命令語長 → CISC 固定命令語長 → RISC CISC ハードウェアは(RISCに比べると)小さい。 コンパイラが作りやすい。代表的なCPU 80x86 (IA-32) H8 RISC ハードウェアは(CISCに比べると)大きい。 パイプライン処理の効率が良い。代表的なCPU Su…

職業訓練36日目 ハンダ付けの練習

本来なら、前回のテキストの続きをやる予定でしたが、 建物の改修工事の騒音が大きく、座学は中止して、 丸一日ハンダ付けの練習をしました。不器用なので、なかなか上手くいきませんね…。 すぐ出来ちゃう人がうらやましい。 でも、うらやんでいても仕方がな…

職業訓練35日目 H8マイコン入門(マイコン制御の基礎)

ノイマン型 特徴 プログラム内蔵方式 逐次処理 命令とデータの共存 →他に有名なものは「ハーバード型」 命令とデータを別々の記憶装置に記憶する。 構成 CPU(中央処理装置) 演算装置 → 演算論理装置(ALU) 制御装置 主記憶装置 ROM(読み取り専用) RAM(…

職業訓練34日目 習得度確認テスト(PLDを用いたデジタル回路設計作業)

課題 自由課題。自由と言われると何も思いつかないので、いつも困るのですが、 他の人がLEDをチカチカさせてるのを見て、思いついた。そうだ、ナイトライダー回路を作ろう。 仕様 どういうこと? 使用しているCPLDにはLEDが8個付いてるので、 そのLEDを「ナ…

職業訓練33日目 習得度確認テスト(PLDを用いたデジタル回路設計作業)

課題 2ビットバイナリカウンタの設計・製作 仕様 クロックでカウント クロック入力は1Hz 7セグメントLEDはカウントダウンを繰り返し(3,2,1,0,3,2,1,0...) カウンタはカウントアップ(00→01→10→11→00...) 悪い例 「カウントダウン」の仕様をすっかり見落と…

職業訓練32日目 習得度確認テスト(PLDを用いたデジタル回路設計作業)

課題 2ビットジョンソンカウンタの設計・製作 仕様 スイッチを押すとカウントされる クロック入力は16MHz 出力は7セグメントLED 状態遷移図 やっとお絵描きできた! でも、ちょっと大き過ぎた…。 真理値表 カウンター回路 Q1 Q0 SW Q1' Q2' 0 0 0 0 0 0 0 1 …

職業訓練31日目 PLD基本設計 テキスト入力(VHDLによる設計)

本日の講義も昨日の課題の続き。 3bitバイナリカウンタは一応出来てたので、 7セグLED表示も、積和構造で出来るかやってみました。「when句使っちゃったらビヘイビアじゃん」 と思って訊いてみたら、 「when句は真理値表みたいなもので論理圧縮できるので、…

職業訓練30日目 PLD基本設計 テキスト入力(VHDLによる設計)

本日は、課題で3bitバイナリカウンタをVHDLで作りました。 なので、作った回路を晒そうかと思います。 出力は、7セグメントLEDです。 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGHNED.ALL; entity …

職業訓練29日目 PLD基本設計 テキスト入力(VHDLによる設計)

VHDLの文法 ライブラリ宣言 使用するライブラリを記述。 他の言語で言う、import文、include文か。 library ライブラリ名; use ライブラリ名.パッケージ名.アイテム; library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; エンティテ…

職業訓練28日目 PLD基本設計 テキスト入力(VHDLによる設計)

今日、回路図入力で作ったのは以下の回路。フリップフロップを利用したスイッチ回路 + カウンタ回路 + 7セグメントLED表示7セグメントLEDについては、Wikipediaに結構詳しく説明が載ってたので、リンクを。 7セグメントディスプレイ - Wikipedia タイトル…

職業訓練27日目 PLD開発設計(VHDLによる回路構築)

昨日から、CPLDを利用した回路構築の練習をしてますが、 タイトルにある「VHDL」はまだ使ってません。今やっているのは、 GUIのツールで回路図(Schematic)を書いて、 ピンの設定をして、 CPLDにダウンロード、実行! といった感じ。なので、今日はまとめる…

職業訓練26日目 PLD基本設計(集積回路の現状とその開発手法)

デジタル回路設計の変遷 汎用ロジック設計 ↓ マイコン・LSI ↓ ASIC・PLDの普及 ↓ HDLによる大規模設計 →大規模集積回路へのシステム搭載(SoC)設計が加速ハードウェア設計とソフトウェア設計の境界が薄れてきている。 →Co-Design (HW/SW協調設計) 大規模…

職業訓練25日目 PLD基本設計(大規模論理回路設計のルール)

非同期回路の問題点 高速化が困難 設計自動化の導入が困難 高信頼性を失う現象 レーシング:信号が入力される順序によって最終的な状態が決定すること ハザード:2つ以上の信号が同時に変化すると,どちらか動作の速いほうの素子の出力が先に出てきて出力が…

職業訓練24日目 論理回路設計の基本作業(組み合わせ回路設計と順序回路)

順序回路 順序回路の表現方法 状態遷移図(ステートダイアグラム) タイミングチャート モデル ミーリ・マシン:出力が現在状態と入力によって決定される ムーア・マシン:出力が(入力によらず)現在の状態によってのみ決定される 設計方法 状態遷移図 真理…

職業訓練23日目 論理回路設計の基本作業(デジタル回路)

順序回路 過去の回路状態と現在の入力で出力が決まる回路。 組み合わせ回路 + 記憶回路(フリップフロップ) = 順序回路 フリップフロップ 出力を入力側にフィードバックすることによって情報を保持する。 RS型 S(セット)スイッチを押すと出力が1となり、…

職業訓練22日目 論理回路設計の基本作業(組み合わせ回路設計と順序回路)

クワイン・マクラスキー法 カルノー図と同様に、論理回路を簡略化する方法の1つ。 変数が多い場合やコンピュータで自動化する場合は、こちらの方が有利。手順が複雑なので、図使わずまとめるのが難しい…。 代わりにまたWikipediaの解説を。 クワイン・マク…

職業訓練21日目 論理回路設計の基本作業(組み合わせ回路設計と順序回路)

カルノー図 論理回路を簡略化する方法の1つ。 A B Y 0 0 0 0 1 1 1 0 1 1 1 1 ↓カルノー図に変換 B\A 0 1 0 1 1 1 1 ↓ Y = A * B注意点: 論理式が真となる隣り合う部分を2のべき乗個分(1,2,4,8...)をできるだけ大きく囲む。 入力が3つ以上の場合、表の…

職業訓練20日目 論理回路設計の基本作業(組み合わせ回路設計と順序回路)

組み合わせ回路設計技法 組み合わせ回路 出力がそのときの入力のみで決まる回路。 論理圧縮 論理を簡略化し、回路から冗長な部分を取り除くこと。 →回路のコスト削減や小型化を可能にする。・論理圧縮で必要な技法 ブール代数の諸定理 カルノー図 クワイン・…