<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>http://mochiuwiki.e2.valueserver.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=192.168.1.18</id>
	<title>MochiuWiki : SUSE, EC, PCB - 利用者の投稿記録 [ja]</title>
	<link rel="self" type="application/atom+xml" href="http://mochiuwiki.e2.valueserver.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=192.168.1.18"/>
	<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=%E7%89%B9%E5%88%A5:%E6%8A%95%E7%A8%BF%E8%A8%98%E9%8C%B2/192.168.1.18"/>
	<updated>2026-08-28T09:28:23Z</updated>
	<subtitle>利用者の投稿記録</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=%E8%A8%AD%E5%AE%9A_-_Bash&amp;diff=508</id>
		<title>設定 - Bash</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=%E8%A8%AD%E5%AE%9A_-_Bash&amp;diff=508"/>
		<updated>2019-12-07T22:18:49Z</updated>

		<summary type="html">&lt;p&gt;192.168.1.18: ページの作成:「== 重複する履歴を保存しない == 重複するコマンドは最新の1件のみに限定する。&amp;lt;br&amp;gt; ホームディレクトリの.bashrcを開き、以下の…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 重複する履歴を保存しない ==&lt;br /&gt;
重複するコマンドは最新の1件のみに限定する。&amp;lt;br&amp;gt;&lt;br /&gt;
ホームディレクトリの.bashrcを開き、以下の設定を追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
 # 重複履歴を無視&lt;br /&gt;
 export HISTCONTROL=ignoredups &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 空白から始めたコマンドを保存しない ==&lt;br /&gt;
履歴に保存したくないコマンドは空白から記述する。&amp;lt;br&amp;gt;&lt;br /&gt;
ホームディレクトリの.bashrcを開き、以下の設定を追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
 # 空白から始めたコマンドを無視&lt;br /&gt;
 export HISTCONTROL=ignorespace&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 頻繁に使うコマンドは保存しない ==&lt;br /&gt;
頻繁に使うコマンドは履歴保存対象から外す。&amp;lt;br&amp;gt;&lt;br /&gt;
ホームディレクトリの.bashrcを開き、以下の設定を追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
 export HISTIGNORE=&amp;quot;fg*:bg*:history*:cd*:ls*:grep*&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 履歴の保存件数を増加する ==&lt;br /&gt;
 export HISTSIZE=10000&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ヒストリに時刻を導入する ==&lt;br /&gt;
コマンド履歴にコマンドを使った時刻を導入することが出来る。&amp;lt;br&amp;gt;&lt;br /&gt;
ホームディレクトリの.bashrcを開き、以下の設定を追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
 HISTTIMEFORMAT=&#039;%Y%m%d %T&#039;;&lt;br /&gt;
 export HISTTIMEFORMAT&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:CentOS]]&lt;/div&gt;</summary>
		<author><name>192.168.1.18</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=ATmega328%E3%81%A7UART%E9%80%9A%E4%BF%A1&amp;diff=482</id>
		<title>ATmega328でUART通信</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=ATmega328%E3%81%A7UART%E9%80%9A%E4%BF%A1&amp;diff=482"/>
		<updated>2019-12-05T12:01:25Z</updated>

		<summary type="html">&lt;p&gt;192.168.1.18: ページの作成:「== 概要 == ATmega328に用意されているUSART機能を使用してシリアル通信を行う。&amp;lt;br&amp;gt; USARTはUniversal Synchronous Asynchronous Receiver Transmitter…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
ATmega328に用意されているUSART機能を使用してシリアル通信を行う。&amp;lt;br&amp;gt;&lt;br /&gt;
USARTはUniversal Synchronous Asynchronous Receiver Transmitterの略で、&amp;lt;br&amp;gt;&lt;br /&gt;
非同期通信のUARTだけでなく、同期通信も可能とした機能のことである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
今回は、非同期通信のUARTについてのみ記述する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AVRのマイコンでUARTを使うには、以下の3つの設定を行う必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
# ボーレートの設定&lt;br /&gt;
# レシーバとトランスミッタの有効化&lt;br /&gt;
# フレームフォーマットの設定&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ボーレートの設定 ==&lt;br /&gt;
設定したいボーレート(通信速度)に合わせて通信用の内部クロックを生成するため、下表の式を元にUBRRレジスタの値を算出する。&amp;lt;br&amp;gt;&lt;br /&gt;
BAUD : ボーレート&amp;lt;br&amp;gt;&lt;br /&gt;
Fosc : ATmega328のクロック周波数&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
 // Set baudrate parameter&lt;br /&gt;
 // RoundOff&lt;br /&gt;
 UBRR0 =  (U16)(((F32)F_CPU / (F32)BAUDRATE / 16.0) - 1.0 + 0.5);&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
表と式が異なるが、そのまま計算すると整数切り捨てのための誤差が大きくなるため、四捨五入で誤差を小さくしている。&amp;lt;br&amp;gt;&lt;br /&gt;
誤差が大きくなると文字化けするので、適宜試しながら正しく通信できる速度を探らなければならない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
UBRRレジスタのサンプル値もデータシートに記載されているので、そちらを参照して定数で指定してもよい。&amp;lt;br&amp;gt;&lt;br /&gt;
例えば、ATmega328のクロック周波数が8[MHz]のとき、ボーレート19.2[kbps]に設定したければUBRRレジスタの値は25になる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== レシーバとトランスミッタの有効化 ==&lt;br /&gt;
レシーバとトランスミッタの有効化は、USARTのコントロールレジスタを設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
 // Enable receiver and transmitter&lt;br /&gt;
 UCSR0B = (1 &amp;lt;&amp;lt; RXEN0) | (1 &amp;lt;&amp;lt; TXEN0);&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== フレームフォーマットの設定 ==&lt;br /&gt;
シリアル通信では1本の信号線で時系列に0または1を送信することで通信を行う。&amp;lt;br&amp;gt;&lt;br /&gt;
そのため、予めどのようなフォーマットでデータを送信するかを定義する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
シリアル通信のフレームフォーマットは以下の要素で構成されます。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 名称 !! ビット数 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| スタートビット || 1 || フレームの先頭であることを示すビット&lt;br /&gt;
|-&lt;br /&gt;
| データビット || 5 - 9 || 送信するデータ&amp;lt;br&amp;gt;5 - 9[bit]の範囲で自由に設定できる&lt;br /&gt;
|-&lt;br /&gt;
| パリティビット || 0 or 1 || ビットの誤りをチェックするビット&amp;lt;br&amp;gt;設定しなくともよい&lt;br /&gt;
|-&lt;br /&gt;
| ストップビット || 1 or 2 || フレームの終わりであることを示すビット&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
上表において、スタートビットは常に1[bit]なので、残りの3項目のビット数を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
 // Set frame format: 8data, 1stop bit : 8N1&lt;br /&gt;
 UCSR0C = (0 &amp;lt;&amp;lt; USBS0) | (3 &amp;lt;&amp;lt; UCSZ00);&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
一般的には、データビット8[bit]、パリティビット無し、ストップビット1[bit]の通称8N1という形式が多い。&amp;lt;br&amp;gt;&lt;br /&gt;
ここでも、8N1形式で送受信を行う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== サンプルコード ==&lt;br /&gt;
送信と受信ともにUDR0レジスタを用いて1[byte]データを操作する。&amp;lt;br&amp;gt;&lt;br /&gt;
1度の操作で1[byte]しか扱えないため、数byteを送受信するときは単純に同じ操作を繰り返す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 送信方法 =====&lt;br /&gt;
送信バッファが空になるまで待機し、UDR0レジスタに1[Byte]分のデータを書き込む。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
 void Transmit1Byte(char data)&lt;br /&gt;
 {&lt;br /&gt;
    // Wait for empty transmit buffer&lt;br /&gt;
    while(!(UCSR0A &amp;amp; (1 &amp;lt;&amp;lt; UDRE0)));&lt;br /&gt;
&lt;br /&gt;
    // Put data into buffer, sends the data&lt;br /&gt;
    UDR0 = data;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 受信方法 =====&lt;br /&gt;
1[Byte]分のデータを受信するまで待機(ポーリング)し、UDR0レジスタを読み取る。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
 char Receive1Byte(void)&lt;br /&gt;
 {&lt;br /&gt;
    // Wait for data to be received&lt;br /&gt;
    while(!(UCSR0A &amp;amp; (1 &amp;lt;&amp;lt; RXC0)));&lt;br /&gt;
&lt;br /&gt;
    // Get and return received data from buffer&lt;br /&gt;
    return UDR0;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:AVR]]&lt;/div&gt;</summary>
		<author><name>192.168.1.18</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=%E8%A8%AD%E5%AE%9A_-_Microchip_Studio&amp;diff=471</id>
		<title>設定 - Microchip Studio</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=%E8%A8%AD%E5%AE%9A_-_Microchip_Studio&amp;diff=471"/>
		<updated>2019-11-23T23:55:29Z</updated>

		<summary type="html">&lt;p&gt;192.168.1.18: ページの作成:「== 起動画面 == ファームウェアを作成するため、最初に[新しいプロジェクト]を作成する。&amp;lt;br&amp;gt; 以下に3つの方法を示す。&amp;lt;br&amp;gt; 1 : [S…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 起動画面 ==&lt;br /&gt;
ファームウェアを作成するため、最初に[新しいプロジェクト]を作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
以下に3つの方法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
1 : [Start Page]画面の左上の[New Project]を押下する&amp;lt;br&amp;gt;&lt;br /&gt;
2 : [New Project]アイコンを押下する&amp;lt;br&amp;gt;&lt;br /&gt;
3 : [File]メニュー - [New] - [Project]の順に選択する&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [New Project]画面 ==&lt;br /&gt;
1. ファームウェアを作成する時は、一番上の[GCC Executable Project]を選択する&amp;lt;br&amp;gt;&lt;br /&gt;
2. プロジェクト名を入力する&amp;lt;br&amp;gt;&lt;br /&gt;
3. プロジェクトを保存する場所(ディレクトリ)を選択する&amp;lt;br&amp;gt;&lt;br /&gt;
4. プロジェクト名とソリューション名が異なる場合は入力する(1つのソリューションにいくつものプロジェクトを作成することが可能)&amp;lt;br&amp;gt;&lt;br /&gt;
5. [OK]ボタンを押下する&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:AVR]]&lt;/div&gt;</summary>
		<author><name>192.168.1.18</name></author>
	</entry>
</feed>