問題タブ [68hc12]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
assembly - ビットリバース68HC12のバイト
私はマイクロプロセッサクラスに所属しており、FreescaleCodeWarriorのアセンブリ言語を使用して68HCS12マイクロコントローラをプログラムしています。今週の割り当てはバイトを反転することなので、バイトが00000001の場合、出力は10000000、つまり00101011から11010100になります。アセンブリ言語を使用する必要があり、回転とシフトを使用できると言われました(ただし、これに限定されません! )このタスクを実行します。どこから始めればいいのか、本当に迷っています。
embedded - Freescale HCS12 Flash Driver for EEPROM Emulation ソース コードを使用した経験のある人はいますか?
...そして実際に動作させ、データレコードの長さをデモに付属の2バイトよりも大きなものに変更しましたか?
これは、Freescale HCS12 範囲のマイクロコントローラーで、EEPROM ページをエミュレートするオンチップ DFlash と対話するための一連のコードです。
構成値の一部を変更するのが本当に難しいです。ただし、すべての設定をデモからのもののままにしておくと、機能します。
assembly - 68HCS12 の組み立てストップウォッチ
こんにちは、ドラゴン 12 プラス ボードで実行するアセンブリでストップウォッチを作成しようとしています。ボタンが停止を開始して時間をリセットするように設定しました。プログラムは実行されますが、十分な速度ではありません。問題がレイテンシーに関係していることは知っていますが、それを解決する方法がわかりません。割り込みルーチンが長すぎると思いますが、実装しようとしている他のすべてのメソッドは機能しません。入力をいただければ幸いです。さて、これが私のコードです。申し訳ありませんが、コメントがあまりありません
assembly - HC12 では、1 つの命令で (1<<8) を実行できますか?
命令セットに LSL (論理左シフト) があることに気付きました。これは r << 1 (レジスタを 1 だけ左にシフトします) を実行します。任意の数だけ左シフトできるようにしたいです。これをループで行う必要がありますか、それともこれを行う単一の命令がありますか?
1ビットのみをシフトする理由は、キャリーが常にOKであるためだと思いますが、私の場合、8ビットの符号なし数値を最大8ビット左にビットシフトして、符号なし16ビット数値を取得します...だから私は私は大丈夫だと思いますか?
ありがとう、
z。
ps 完全開示: 私は学生ですが、これは課題のほんの一部です。割り当ては、MUL を使用せずに乗算を実装することです。ループで複数の追加を行うことが期待されていると思います...しかし、何か違うことをしたかったのです。だから私はビットシフトで再帰的に実装しています! これは、私のソリューションへの道のりの障害の 1 つにすぎません。
assembly - codewarrior で自分のラベルに名前を付けるにはどうすればよいですか
.asm ファイルといくつかの .inc ファイルの 3 つのファイルがあります。どちらも に含まれていinclude
ます。これらのファイルにはラベルがあり、それぞれに同じラベルを使用できるようにしたいと考えています。たとえば、含まれている各ファイルにループがある場合、ループにラベルを付けて処理を終了したいloop
と考えています。ただし、ラベルは一意ではないため、これはアセンブラーにとって問題です。
codewarrior のヘルプ ファイル\@
で、マクロのラベルの先頭に追加して、そのマクロを複数回呼び出してラベルが競合するのを防ぐことができると読みました。私はそれを試しましたが、アセンブラは不平を言いました( invalid character detected at the beginning of the line
)。ラベルの名前空間を設定する方法はありますか?
ありがとう、
z。
psまた、質問にcodewarriorという単語を含めました。これは私のIDEです。ラベルの処理がアセンブラ固有のものなのか、IDE 自体固有のものなのかよくわからないため、これを行いました。「コードウォリアー」と言う必要がありましたか、それとも「HC12」または単に「アセンブリ」と言ったほうがよかったでしょうか? ありがとう。
pps これは宿題ですが、私の宿題は名前空間ラベルではなく、コードを書くことです。
assembly - HC12 では、2 つのレジスタを直接比較できますか?
レジスタ X に値をロードし、レジスタ Y に値をロードした場合、それらを比較したい場合...通常は次のようにする必要があります。
しかし、それは比較のための 3 つの操作です。これを直接行う方法はありませんか?cmp 0,y
cmpを試してみましy
たが、それらは私が望むことをしません。
これは私が一緒に暮らさなければならないものですか?
ありがとう、
z。
assembly - CPU12プロセッサを使用して機能しない
簡単なNOT機能を提供するコードがCPU12プロセッサにありますか?
assembly - bset と bclr について
教授が作成した例に出くわしたことがあり、bset
およびbclr
アセンブリ コマンドの理解に疑問を抱くようになりました。
私がこれを行う場合:
2 つの間で AND または OR 操作を実行していますか? 私のリファレンスガイドは、これを行うと言ってbset
います:
+
OR または AND 演算子ですか? bclr
は同じコマンドですが、マスクの補数で操作を実行します。
c++ - リアルタイムのユーザー入力エコー
ユーザーがカスタムカーネルに入力したものをリアルタイムで表示する「エレガントな」方法を作成しようとしています.68hc12のために取り組んでいます。
私が確信している多くの問題は、キャリッジ リターン if ステートメントに入らないように見えることです。私はこれをUbuntuで構築していますが、ifステートメントで間違っていることはありますか? 追加情報が必要な場合はお知らせください。ありがとう。
c - CodeWarrior 内で C ファイルからアセンブリ コードを呼び出すにはどうすればよいですか?
教授は、アセンブリ コードを使用してプログラムの一部をプログラミングし、そのコードを C プログラム内から呼び出し、それが完了したら C プログラムに戻るようにしてほしいと言っています。これに関するドキュメントが見つからないようです。問題があれば、68HC12 を使用する Dragon12 ボードを使用しています。彼は、インライン asm() 関数を使用することを望んでいるようには見えません。