こんばんは!

金曜日でテンション上がりまくりなのにも関わらず、住んでるとこが田舎過ぎて何も出来ないゆってぃです。
西東京を世界最強のテクノロジーエリアにしたい…><

世界最強のテクノロジーエリアってどんなのだろう?
まず、動く歩道は必須ですね。
これが無いと話になりません
あとは、LED太陽電池とかね。
エコ且つキラキラして感じでお願いしたい。
是非お願いしたい!!


さて、今日は会社で新人の技術研修がありました。
私ことゆってぃが、まさかの講師(!?)を任されてしまいました。

とりあえずPWMとかPIDとか、微妙にモーター制御に偏ったの話をしましたが、皆さん熱心に聴いてくれました。
超氷河期に入ってきた人たちだけあって、優秀そうなオーラむんむんです。

コーディングに関する部分では、マイコンのプログラミングを行うときの注意点をお話しました。
たとえば、FM3_GPIO->PDORFレジスタの0ビット目と1ビット目を"1"に、2ビット目と3ビット目を"0"にしたい時

--

FM3_GPIO->PDORF &= 0xfffffff0;
FM3_GPIO->PDORF |= 0x00000003;

--

とやってはいけませんね

面倒ですが

--

unsigned long tmp;

tmp =  FM3_GPIO->PDORF;
tmp &= 0xfffffff0;
tmp |= 0x00000003;
FM3_GPIO->PDORF = tmp;

--

としなければなりません。

もちろん、最初のやり方でも、結果的には希望の信号が出力されます。
しかもたったの2行でコードが終わっているので、アプリ系のプログラマさんなら最初のコードの方が優れたコードだとおっしゃるかもしれません。

でも、組み込み系では少し事情が異なります。
最初の方法では
一瞬だけ0ビット目と1ビット目からもL信号が出力されてしまうからです。
この制御を行う前からLなら問題ありませんが、実際はそうとは限りませんからね。

レジスタは、他の変数と同じようにアクセスが出来てしまいます。
ですが、アクセスした以上、マイコンはその命令に従って何かしらの動作を行います。
ですから、マイコンのレジスタへのアクセスは必要十分に。
そして、くれぐれも慎重に。

マイコンのレジスタはね
とても神聖な場所
なんです。
目的も心構えも無しに
むやみやたらにアクセスしちゃいけないんです!

これはね。。。
むやみやたらにアクセスした結果・・・
過去にバグを出した僕だからわかるんです…(涙)

そのことを伝えたかったんですけど・・・

新入社員の皆さんには、多分全く伝わっていませんでした・・・(;_;)

けれども、彼らも配属後しばらくすれば、僕の作った渾身のテキストの内容が理解できると信じています。

・・・ダメだしされたらどうしよう・・・

さて、今日はここまでにしますね。
最後までお読みいただいて、ありがとうございました!(感謝)
関連記事
スポンサーサイト
コメント
コメントの投稿
トラックバック URL
トラックバック
ご訪問者様
プロフィール

ゆってぃ

Author:ゆってぃ
経歴7年の組み込み系・制御系エンジニアです。
("ど素人"という文言は取りました…笑)
ソフトウェア開発経験ゼロの状態から、なんとか実務がこなせるようになってきた現在に至るまでの経験を、備忘録代わりに綴っていきたいと思います。
入門者の方、大歓迎!
(上級者の方、ごめんなさい…)

あと、ブログには全然関係ないですが、Bumpy Headというバンドのギターをやっています。
ライブ情報なんかも書いたりすることがあるので、その時に「行ってもいいよ~」といった感じのコメントを戴けると、泣いて喜びます(泣)
ブログ読んでくださってる方なら、チケット代サービスしちゃいます!

最後に…滅多に流用することは無いでしょうが、このブログに書かれているソースは、特に指定の無い限りMITライセンスとします。ただし、一部それ以外のものもございますのでご注意下さい。
※ブログのリンク先にあるコードに関しては、リンク先のポリシーに従ってください。

最新記事
最新コメント
カテゴリ
RSSリンクの表示
メールフォーム

名前:
メール:
件名:
本文:

twitter
リンク
ブロとも申請フォーム
スポンサードリンク