ブログ記事1,051件
0.まえがき8051、それは1980年代にIntelが開発した第2世代ワンチップ・マイコンである。Intel8051-Wikipediaja.wikipedia.orgあれから40年、このマイコン・コアは未だに現役として使われている。もちろん中身はとんでもなく進化している。オリジナルの8051はNMOSであったが、すぐにCMOS化され、80C51となった。多くの半導体メーカにライセンスされ、国内でもNECやOKIが生産していた。また、多くの派生品を生み出した。詳細はW
こんばんはPajaです。今回は、この夏息子(中学生)の友達数人にプログラミング体験会を企画していてその内容を紹介したいと思います。企画的には・プログラミングを体験してみよう。(いきなりC言語)・モータを回してみよう。(0,1の素晴らしさを学ぶ)・1+1=10って??(2進数,10進数,16進数の勉強)・おうちでも遊べるようにしよう。(ツールプレゼント)となっています。目標は、おうちでも遊べるようにできるまでです。だいたい3日構成で勉強してもらおうと考えてます!
RV32Iの基本命令のJ形式を見ていきます。J形式はJAL,JALRの2つの命令があります。どちらも関数呼び出しで使われる命令ですので、これも実際の関数の記述も見ながらどう使われているか見てみます。以下のC言語の記述を考えましょう。inth1(void){return10;}inth2(inta){returna+10;}int(*ptr)(int)=h2;/*関数ポインタ*/intgoo(){intt;t=h1(
他のCPUの弱点を分析して反映されていることもあり、RISC-V命令セットの何が特徴なのか?を見ていきたいと思います。RISC-Vの命令形式を調べてみます。以下を見ると、ものすごくビットが揃っている事が分かります。基本的に命令セットは32ビット長ですが、7ビットのopcode,レジスタ指定(rd,rs1,rs2)が5ビット、その他がfunctとして機能指定をしたり、immで即値となっています。このRISC-Vの命令形式がハードウェアの作りやすさを考慮しており、rd(書き込みレジスタ指定)
PNG形式での保存方法。数回に分けて記事にする。それなりに頑張る必要はある。数行でOKというわけにはいかない。ポイントは(1)DIB形式でデータ保持(24ビットでHBITMAPと連動しながら、透過情報を持たせる)(2)GDI+をしっかり管理(初期化やメモリリーク防止など)(3)CLSIDsFormatClsidの取得あたりだろうか。(1)は、DIBクラスを独自に作成(世の中に例は多くある)。そこに透過情報をうまく加える。(2)も、世の中、色々と使い方は例がある。
※4月に自作したプログラムの話です。何をやったか忘れそうなので、メモ代わりにまとめました。ESP32で、SSD1306という小さなOLED表示器に、日本語=漢字を表示してみました。以前、ArduinoUno?で同様の作例を見たので、「腕試しにイチから組んでみよう」という、軽い思いつきでした。しかし、フォントや文字コードに関する”知識ゼロ”からのスタートで、なかなか大変でした。ESP32は「漢字」はおろか「英数字」すら、一切の文字データを持
Microchip社は、今までの標準アセンブラソフトであったMPASMから、新たにXC8_ASまたは、pic-asと言われるXC8Cコンパイラと親和性の高いアセンブラソフトへの切り替えを行いました。このため今までMPLABに必ず付属していたMPASMが最新のMPLABX5.40以降には付属していません。また、MPASMは32ビットソフトウエアのため、MACOSも、Mpjaveまでしか対応しません。最新のMACでは、MPASMを動作させる環境を作るのは大変困難になって
#include<stdio.h>intmain(void){inti;scanf_s("%d",&i);for(intn=0;n<i;n++){for(intj=0;j<n+1;j++){printf("*");}printf("\n");}return0;}実行結果4の場合7
島根大学退職後は以下で制御工学の教材や実験装置を紹介しています.制御と設計(google.com)主な内容1.C言語教材2.Matlab教材3.Scilabによる古典制御計算4.システムと制御講義ノート5.制御工学I講義ノート6.制御工学II講義ノート7.制御工学III講義ノート(2023.12.7更新)
稚拙ながら今まで作ってきたプログラム、見返してみると、なんでこんな風なんだっけな、と首をひねることが多い。しばらく眺めていると思い出すのだけど、結構時間がかかるので、ちょっとしたアイデアとか、手こずった部分などは、すぐに思い出せるように、部分的に抜き出して書いておく。もっといいプログラムの方法や、定形のやり方とかもあるのかもしれないが、あくまで個人的な備忘として。<16進数⇔文字列変換について>文字をコードで扱うプログラムを作成してたりするとき、どうしうてもファイルに書き出したテキスト
switch文は,値の場合分けをする制御法です。それぞれの場合(case)の最後にbreak文を入れて,次の場合の処理に進まないようにしています。break文はforやwhileなどの繰り返し制御の中でも使われます。その繰り返し処理から強制的に抜けるのに使います。これに似た文にcontinue文があります。これは,繰り返し処理の,その回の処理をスキップして,次の回に移るものです。switch文は繰り返し処理ではないので,普通,continue文は使いません。しかし,繰り返し処理の中にswitc
以前、ブレッドボードで試作したCW用エレクトリックキーヤー回路ですが機能拡張して穴あき基板にはんだ付け実装しました。現在の仕様としては・速度はロータリーSW切り替えで4WPMから36WPM。(初心者用です)・Squeeze機能(2つのパドルの同時押しでdotとdashを交互に)・CW信号出力とは別にセミブレークイン信号出力回路追加。・CWとセミブレークイン出力はそれぞれの出力に対してホトカプラ2個を使い、配線極性を気にしなくても良いように無極性に。・練習用としてブザーを搭載(スイッチ
忙しくてなかなかブログが更新できず、申し訳ございませんでした。さて、今回はVisualStudioCodeを使って、のデバッグについてご紹介させていだきます。まずは、VisualStudioCode(Ubuntuで動作するパッケージ)をインストールをします。そして、下記はサンプルプログラムを入れていますが、こんな画面が表示されます。さて、このVisualStudioCodeのインストール後、コンパイラ、デバッガ、メモリダンプ用の拡張機能をインストールする必要
こんにちは。ムシパンです。この記事はプログラミング言語をはじめて勉強する人向けです。また、復習がてら利用していただいて構いません。近年ではプログラミングの入門段階でビジュアル言語を学んだことがあるかもしれません。今回は、「Java」について教えていきます。Javaはプログラミング言語の基本Javaは本気でやれば3か月で完成できます。100日修行です。頑張りましょう。日々記事を更新していくので最後まで粘り強く取り組みましょう。Javaを完璧にマスターできればRu
久々のプログラミングの話しです。ちょっと精度の良いプログラムが必要になったので、gccでプログラミングしていたのですが、浮動小数点型であるlongdouble型のprintfのフォーマットなんだっけ?から始まって、なんでこんな変な値になっちゃうの?と頭が混乱してきてしまっています。例えば、floatf;doubled;longdoublel;のように、float、double、longdoubleの変数に対して小数点以下100桁の円周率、f=3.14159
今回はRX230sample31を中座して、ルネサスの純正エミュレータE1とE2liteの違いについて書きます。E1エミュレータが2019年末に製造中止となり、在庫も無くなってきたようです。基本的にはE1で出来ていたことはほとんどE2liteで出来ます。https://www.renesas.com/jp/ja/software-tool/e2-emulator-lite-rte0t0002lkce00000rE2エミュレータLite(略称:E2Lite)は
ESP32のプログラムをちょこちょことやっていますが、あれこれ手を出して、まとまった形の物ができていません。試行錯誤中です。そんな中、SSD1306OLEDという小型表示画面について文字が小さく見辛かったので、フォントの種類を増やしてみました。写真の赤丸がSSD1306です。画面は0.96インチ、幅2cm×高さ1cmほど。指の第一関節くらいしかありません。これに自作プログラムで16文字×4行表示をしているのですけど、なかなか見づらい。また、工
ここ最近ではUbuntu上での開発環境として、EclipseやVisualStudioCodeを使って開発するすることが多いため、他のツールへの関心が失せていましたが、ここで以前より気になっていたVisualStudioについて、ややこしいですが次のものがあります。・VisualStudio・VisualStudioCode大別すると上記2つです。(こちらからダウンロードできます)何が違うのかと申しますとVisualStudio=>Microsoft社
C言語の処理途中で一時停止したいとき,getchar()関数を使うことにしています。これはキーボードから1文字取得する関数で,何かキーが押されるまでそこで一時停止します。キーボードから打ち込んだ値が戻ってくるのでc=getchar();のようにして,戻り値を代入するのが本来の使い方です。しかし,cの値はどこでも使いません。一時停止したい場合は,単にキーボードが押されるのを待つだけなので戻り値は無視したいところです。最近,最新のVisualStudioを導入したことを既に述べました。以前のバー
さあ始まりました第一回コピペで作ろう簡単Arduino企画!今回の目標GPSモジュール+LCDモジュール+Arduinoで"ほぼ正確な"時計・速度計・高度計を作ること使用するパーツArduinoUnoRev3ATmega328マイコンボードA000066Amazon(アマゾン)2,860〜6,043円ELEGOO50PCSオスメスジャンパーワイヤ200mm(無料170タイポイントブレッドボード)Amazon(アマゾン)750円Way