<?xml version="1.0" encoding="UTF-8" ?>
	<rss version = "2.0"  xmlns:blogChannel="http://backend.userland.com/blogChannelModule">
		<channel>
			<title>ＪＨ７ＵＢＣブログ</title>
			<description>アマチュア無線、PIC、HSPなど私の趣味のブログです。</description>
			<link>https://blogs.yahoo.co.jp/jh7ubc</link>
			<language>ja</language>
			<copyright>Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.</copyright>
		<image>
			<title>ＪＨ７ＵＢＣブログ</title>
			<url>https://s.yimg.jp/i/jp/blog/iym_img.gif</url>
			<description>アマチュア無線、PIC、HSPなど私の趣味のブログです。</description>
			<link>https://blogs.yahoo.co.jp/jh7ubc</link>
		</image>
		<item>
			<title>ブログを引っ越します</title>
			<description>&lt;div&gt;　このブログは、2006年5月に開設しました。長い間お世話になり、ありがとうございました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　Yahoo!ブログサービスが12月15日に終了するというアナウンスがあり、引っ越すことにしました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　私のもう一つのブログであるgooブログの「ゆめの森」を新たに「&lt;a href=&quot;https://blog.goo.ne.jp/jh7ubc&quot; target=&quot;_blank&quot;&gt;JH7UBCブログ&lt;/a&gt;」として、そちらに引っ越すことにしました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　PIC16F1705の勉強の記事から既に&lt;a href=&quot;https://blog.goo.ne.jp/jh7ubc&quot; target=&quot;_blank&quot;&gt;そちら&lt;/a&gt;に書き始めました。どうぞよろしくお願いします。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　こちらの記事は、12月15日までは、そのままにします。それ以降は消滅するようです。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　新　&lt;a href=&quot;https://blog.goo.ne.jp/jh7ubc&quot; target=&quot;_blank&quot;&gt;JH7UBCブログ&lt;/a&gt;&lt;/div&gt;</description>
			<link>https://blogs.yahoo.co.jp/jh7ubc/56447952.html</link>
			<pubDate>Thu, 04 Apr 2019 15:08:47 +0900</pubDate>
			<category>その他インターネット</category>
		</item>
		<item>
			<title>PIC16F1827 周波数カウンタ</title>
			<description>&lt;div&gt;　PIC16F1827を使って、周波数カウンタを作ってみました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　これまで、PIC16F88,PIC16F628Aなどで製作した「電子工作etc」というサイトで紹介された「周波数カウンタV7」と基本的には同じアルゴリズムです。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　残念ながら「電子工作etc」というサイトは既に見えなくなっているようです。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　PIC 1個で、どのようにして周波数カウンタを作るかを簡単に説明します。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　周波数カウンタを作るには、周波数を測定するカウンタとカウント時間（普通は１秒）を発生するタイムベースが必要です。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　PICは、内部に複数のタイマー（カウンタ）を持っています。そのうち16bitタイマーであるTimer1(TMR1)を周波数を測定するカウンタに使い、8bitタイマーTimer2(TMR2)を使って1秒を発生させます。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　TMR2を利用したタイムベースからの1秒の合図で、TMR1へのゲートを開けたり閉めたりして、周波数をカウントします。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　詳細は、JH7UBCホームページの&lt;a href=&quot;http://jh7ubc.web.fc2.com/pic/PIC16F883_Frequency_Counter.html&quot; target=&quot;_blank&quot;&gt;ここ&lt;/a&gt;を見てください。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;回路図です。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;div class=&quot; &quot; style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://blog-001.west.edge.storage-yahoo.jp/res/blog-35-a7/jh7ubc/folder/1699976/05/56446805/img_0_m?1554333010&quot; alt=&quot;&amp;#x0030a4;&amp;#x0030e1;&amp;#x0030fc;&amp;#x0030b8; 1&quot; width=&quot;560&quot; height=&quot;350&quot; class=&quot;popup_img_640_400&quot; style=&quot;&quot;/&gt;&lt;/div&gt;
&lt;br&gt;
　入力信号は、2SC1815GRの簡単なアンプを通して、T1CKI(RB6)に加えます。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　クロックは、正確に測定するために20MHzのクリスタルオシレータを使い、外部クロック入力CLKIN(RA7)に入れます。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　周波数表示は、I2Cアダプタ付きのLCD1602を使いました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　動作確認のために、TMR1のゲートが開いている間点灯するLEDをつけました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　ブレッドボードです。自作SGからの1MHz(1000000Hz)の信号を測定しています。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;div class=&quot; &quot; style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://blog-001.west.edge.storage-yahoo.jp/res/blog-35-a7/jh7ubc/folder/1699976/05/56446805/img_1_m?1554333010&quot; alt=&quot;&amp;#x0030a4;&amp;#x0030e1;&amp;#x0030fc;&amp;#x0030b8; 2&quot; width=&quot;560&quot; height=&quot;556&quot; class=&quot;popup_img_643_638&quot; style=&quot;&quot;/&gt;&lt;/div&gt;
&lt;br&gt;
プログラムです。&lt;/div&gt;
&lt;div&gt;------------------------------------------&lt;/div&gt;
&lt;div&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;#include &amp;lt;stdlib.h&amp;gt;&lt;br&gt;
#include &amp;lt;xc.h&amp;gt;&lt;/div&gt;
&lt;div&gt;// CONFIG1&lt;br&gt;
#pragma config FOSC = ECH&amp;nbsp;&amp;nbsp; //外部クロック CLKIN (4-32MHz)&lt;br&gt;
#pragma config WDTE = OFF&lt;br&gt;
#pragma config PWRTE = ON&lt;br&gt;
#pragma config MCLRE = OFF&lt;br&gt;
#pragma config CP = OFF&lt;br&gt;
#pragma config CPD = OFF&lt;br&gt;
#pragma config BOREN = ON&lt;br&gt;
#pragma config CLKOUTEN = OFF&lt;br&gt;
#pragma config IESO = OFF&lt;br&gt;
#pragma config FCMEN = OFF&lt;/div&gt;
&lt;div&gt;// CONFIG2&lt;br&gt;
#pragma config WRT = OFF&lt;br&gt;
#pragma config PLLEN = OFF&lt;br&gt;
#pragma config STVREN = ON&lt;br&gt;
#pragma config BORV = HI&lt;br&gt;
#pragma config LVP = OFF&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;#define _XTAL_FREQ 20000000&amp;nbsp;&amp;nbsp; //クロック20MHz&lt;br&gt;
#define LED RA4&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;//LCD関係定義&lt;br&gt;
#define LCD_EN 0b00000100&amp;nbsp;&amp;nbsp; //Enable&lt;br&gt;
#define LCD_BL 0b00001000&amp;nbsp;&amp;nbsp; //Back Light&lt;br&gt;
#define LCD_CMD 0x00&lt;br&gt;
#define LCD_CHR 0x01&lt;br&gt;
#define LCD_LINE1 0x80&lt;br&gt;
#define LCD_LINE2 0xC0&lt;br&gt;
#define LCD_addr 0x4E&amp;nbsp;&amp;nbsp; //0x27&amp;lt;&amp;lt;1&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;/* I2C 初期化*/&lt;br&gt;
void I2C_init(){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SSP1CON1 = 0x28;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //SSPEN = 1,I2C Master Mode&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SSP1STATbits.SMP = 1;&amp;nbsp;&amp;nbsp; //標準速度モード(100KHz)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SSP1ADD = 0x31;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Fosc/(4*Clock)-1&amp;nbsp; Clock=100kHz,Fosc=20MHz&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;/* スタートコンディション */&lt;br&gt;
void I2C_start(){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SSP1CON2bits.SEN = 1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; while(SSP1CON2bits.SEN);&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;/* ストップコンディション */&lt;br&gt;
void I2C_stop(){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SSP1IF = 0;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SSP1CON2bits.PEN = 1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; while(SSP1CON2bits.PEN);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SSP1IF = 0;&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;/* I2Cに1byte送信 */&lt;br&gt;
void I2C_write(unsigned char dat){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SSP1IF = 0;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SSP1BUF = dat;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!SSP1IF);&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;void Write_data(unsigned char data){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_start();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_write(LCD_addr);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_write(data | LCD_EN | LCD_BL);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_write(data | LCD_BL);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_stop();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; __delay_us(100);&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;void LCD_write(unsigned char bits,unsigned char mode){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; //send High 4bits&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Write_data((bits &amp;amp; 0xF0) | mode);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; //send Low 4bits&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Write_data(((bits &amp;lt;&amp;lt; 4) &amp;amp; 0xF0) | mode);&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;&lt;br&gt;
void LCD_init(){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_write(0x33,LCD_CMD);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_write(0x32,LCD_CMD);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_write(0x06,LCD_CMD);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_write(0x0C,LCD_CMD);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_write(0x28,LCD_CMD);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_write(0x01,LCD_CMD);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; __delay_ms(1);&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;void LCD_clear(){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_write(0x01,LCD_CMD);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; __delay_ms(1);&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;void LCD_home(){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_write(0x02,LCD_CMD);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; __delay_ms(1);&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;void LCD_cursor(unsigned char x,unsigned char y){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (y == 0){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_write(LCD_LINE1+x,LCD_CMD);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (y == 1){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_write(LCD_LINE2+x,LCD_CMD);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;void putch(unsigned char ch){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_write(ch,LCD_CHR);&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;static unsigned int MeassuremmentCnt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;/*TMR2のオーバーフロー割り込み*/&lt;br&gt;
void interrupt isr(){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TMR2IF = 0;//TMR2割り込みフラッグクリア&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; MeassuremmentCnt --;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (MeassuremmentCnt == 0){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TMR1ON = 0;//ゲートを閉める。&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TMR2ON = 0;//TMR2を停止する。&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;/*周波数測定*/&lt;br&gt;
unsigned long FreqMeassurement(){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; static unsigned long freq;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; /*TIMERの初期化*/&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TMR1IF = 0; //TMR1割り込みフラッグクリア&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TMR1L = 0;&amp;nbsp; //TMR1クリア&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TMR1H = 0;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; /*TMR2の初期化*/&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TMR2IF = 0; //TMR2割り込みフラッグクリア&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; MeassuremmentCnt = 1221;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TMR2 = 0x4C;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; /*counter 初期化*/&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; freq = 0;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; /*割り込み許可*/&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; PEIE = 1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; GIE = 1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; //count start&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TMR2ON = 1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; /*gate time調整 NOP 25*/&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; /*ゲートを開ける*/&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TMR1ON = 1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; while(TMR2ON){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(TMR1IF == 1){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TMR1IF = 0;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; freq ++;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(TMR1IF == 1){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TMR1IF = 0;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; freq ++;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; /*換算*/&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; freq = freq * 65536;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; freq = freq + ((unsigned)TMR1H * 256) + (unsigned)TMR1L;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return(freq);&lt;br&gt;
}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;
void main() {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ANSELA = 0b00000000 ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // AN0-AN4は使用しない&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ANSELB = 0b00000000 ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // AN5-AN11は使用しない&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TRISA&amp;nbsp; = 0b10000000 ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // RA7は入力&amp;nbsp; 他は出力（RA5は入力）&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TRISB&amp;nbsp; = 0b01010010 ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // RB1(SDA),RB4(SDA),RB6は入力他は出力&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTA&amp;nbsp; = 0b00000000 ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // PORTA初期化&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB&amp;nbsp; = 0b00000000 ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // PORTB初期化&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_init();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_init();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_cursor(12,0);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&amp;quot;Hz&amp;quot;);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*TMR2の設定*/&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TMR2IE = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //TMR2割り込み許可&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TMR2IF = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //TMR2割り込みフラッグクリア&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; T2OUTPS0 = 0;&amp;nbsp;&amp;nbsp; //TMR2 output poststscaler 1:1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; T2OUTPS1 = 0;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; T2OUTPS2 = 0;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; T2OUTPS3 = 0;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TMR2ON = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //TMR2 off&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; T2CKPS0 = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp; //TMR2 prescaler 1:16&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; T2CKPS1 = 1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TMR2 = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //TMR2 clear&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; /*TMR1の設定*/&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TMR1IE = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //TMR1割り込み禁止&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TMR1IF = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //TMR1割り込みフラッグクリア&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; T1CKPS0 = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp; //TMR1 prescaler 1:1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; T1CKPS1 = 0;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; T1OSCEN = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp; //TMR1 Clock source = T1CKI&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TMR1CS1 = 1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TMR1CS0 = 0;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; nT1SYNC = 1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TMR1ON = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //TMR1 stop&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TMR1L = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //TMR1 clear&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TMR1H = 0;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; /*周波数の測定*/&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LED = 1;//RA4 LED ON&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned long frequency = FreqMeassurement();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LED = 0;//RA4 LED OFF&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_cursor(2,0);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&amp;quot;%9ld&amp;quot;,frequency);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; __delay_ms(500);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;
&lt;div&gt;}&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;</description>
			<link>https://blogs.yahoo.co.jp/jh7ubc/56446805.html</link>
			<pubDate>Tue, 02 Apr 2019 18:00:36 +0900</pubDate>
			<category>その他コンピュータ</category>
		</item>
		<item>
			<title>KCJ トップバンドコンテスト結果</title>
			<description>&lt;div&gt;　2月9日～10日に開催されたKCJトップバンドコンテストの結果が、今朝メールで届きました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　届いたのは、当局の照合結果ですが、KCJのホームページに全体の結果が発表されていました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　&lt;a href=&quot;https://www.kcj-cw.com/contest/19_toptest_result_j.pdf&quot; target=&quot;_blank&quot;&gt;https://www.kcj-cw.com/contest/19_toptest_result_j.pdf&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;https://www.kcj-cw.com/contest/19_toptest_result_j.pdf&quot; target=&quot;_blank&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　当局JH7UBCの結果は、全国23位（171局中）、福島県1位（5局中）でした。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　初めての参加でしたので、まずまずの結果だと思います。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　しかし、当局が相手局コールサインをミスコピーしたのが3局ありました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　まだまだですね。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　来年も頑張ろうと思います。&lt;/div&gt;</description>
			<link>https://blogs.yahoo.co.jp/jh7ubc/56445796.html</link>
			<pubDate>Mon, 01 Apr 2019 09:06:34 +0900</pubDate>
			<category>その他趣味</category>
		</item>
		<item>
			<title>PIC16F1827 PWM テスト</title>
			<description>&lt;div&gt;　PIC16F1827は、CCP1からCCP4の4つのMWP出力を持っています。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;div class=&quot; &quot; style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://blog-001.west.edge.storage-yahoo.jp/res/blog-35-a7/jh7ubc/folder/1699976/72/56444672/img_0_m?1553921528&quot; alt=&quot;&amp;#x0030a4;&amp;#x0030e1;&amp;#x0030fc;&amp;#x0030b8; 1&quot; width=&quot;560&quot; height=&quot;350&quot; class=&quot;popup_img_640_400&quot; style=&quot;&quot;/&gt;&lt;/div&gt;
&lt;br&gt;
　PWMの動作原理は、JH7UBCホームページの&lt;a href=&quot;http://jh7ubc.web.fc2.com/pic/PIC16F628A_EX3.html&quot; target=&quot;_blank&quot;&gt;PIC16F628A PWM テストの記事&lt;/a&gt;をご覧ください。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　PWMのPeriod(周期)とDuty Cycle、Duty比は、次の式で設定します。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;div class=&quot; &quot; style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://blog-001.west.edge.storage-yahoo.jp/res/blog-35-a7/jh7ubc/folder/1699976/72/56444672/img_1_m?1553921528&quot; alt=&quot;&amp;#x0030a4;&amp;#x0030e1;&amp;#x0030fc;&amp;#x0030b8; 2&quot; width=&quot;560&quot; height=&quot;350&quot; class=&quot;popup_img_640_400&quot; style=&quot;&quot;/&gt;&lt;/div&gt;
&lt;br&gt;
　テストとして、CCP3に1000Hz(周期1ms=1×10^-3s)　デューティ比50%のPWM信号を出力してみます。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　PICのクロックは、内臓クロック8MHz(Tosc=1/8×10^6)とし、Timerは、Timer2を使います&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　上記の式からPWM周期を決定するTimer2のPR2の値は&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;PR2 = Period / (4×Tosc × TMR2Prescale Value) - 1= 1×10^-3/(4×(1/8×10^6)×TMR2 Prescale Value) -1&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; = 2×10^3/TMR2 Prescale Value　　となります。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;TMR2のプリスケーラの値によってPR2の値は次のようになります。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　Prescale Value &amp;nbsp; PR2&lt;/div&gt;
&lt;div&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; 1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1999&lt;/div&gt;
&lt;div&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; 4 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 499&lt;/div&gt;
&lt;div&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; 16 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 124&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　PR2レジスタは8bitですから0～255の値でなければなりませんので&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;Prescale Value = 16 &amp;nbsp; &amp;nbsp; PR2 = 124 となります。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　デューティ比を50%としますので、CCPR3L = (PR2 + 1)/2 = 125/2 = 62 となります。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　プログラムです。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　CCP3CONレジスタのbit3:2=11でPWM modeに設定し、bit1:0=00で出力をactive highに設定します。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　CCPTMRSレジスタのbit5:4=00でCCP3にTMR2を割り当てます。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　T2CONレジスタのbit1:0=10でプリスケーラ値を1:16に設定します。同じT2CONレジスタのbit2=1とするとTMR2が有効になり、PWM信号が出力されます。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　実際に出力されたPWM信号の周波数を測定してみました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;div class=&quot; &quot; style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://blog-001.west.edge.storage-yahoo.jp/res/blog-35-a7/jh7ubc/folder/1699976/72/56444672/img_2_m?1553921528&quot; alt=&quot;&amp;#x0030a4;&amp;#x0030e1;&amp;#x0030fc;&amp;#x0030b8; 3&quot; width=&quot;560&quot; height=&quot;378&quot; class=&quot;popup_img_660_445&quot; style=&quot;&quot;/&gt;&lt;/div&gt;
&lt;br&gt;
　998Hzでした。誤差２％というところです。&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　#include &amp;lt;stdio.h&amp;gt;&lt;br&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br&gt;
#include &amp;lt;xc.h&amp;gt;&lt;/div&gt;
&lt;div&gt;// CONFIG1&lt;br&gt;
#pragma config FOSC = INTOSC&lt;br&gt;
#pragma config WDTE = OFF&lt;br&gt;
#pragma config PWRTE = ON&lt;br&gt;
#pragma config MCLRE = OFF&lt;br&gt;
#pragma config CP = OFF&lt;br&gt;
#pragma config CPD = OFF&lt;br&gt;
#pragma config BOREN = ON&lt;br&gt;
#pragma config CLKOUTEN = OFF&lt;br&gt;
#pragma config IESO = OFF&lt;br&gt;
#pragma config FCMEN = OFF&lt;/div&gt;
&lt;div&gt;// CONFIG2&lt;br&gt;
#pragma config WRT = OFF&lt;br&gt;
#pragma config PLLEN = OFF&lt;br&gt;
#pragma config STVREN = ON&lt;br&gt;
#pragma config BORV = HI&lt;br&gt;
#pragma config LVP = OFF&lt;/div&gt;
&lt;div&gt;#define _XTAL_FREQ 8000000&amp;nbsp;&amp;nbsp; //クロック8MHz&lt;/div&gt;
&lt;div&gt;void main() {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; OSCCON = 0b01110010 ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 内蔵クロック8MHz&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ANSELA = 0b00000000 ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // AN0-AN4は使用しない。全てデジタルポート&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ANSELB = 0b00000000 ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // AN5-AN11は使用しない。全てデジタルポート&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TRISA&amp;nbsp; = 0b00000000 ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // PORTAは全て出力（&amp;nbsp; RA5は入力のみ）&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TRISB&amp;nbsp; = 0b00000000 ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // RORTBは全て出力&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTA&amp;nbsp; = 0b00000000 ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // PORTA初期化&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB&amp;nbsp; = 0b00000000 ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // PORTB初期化&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; /* PWMに関する設定&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * CCP3(RA3,2番ピン)を使う&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * PWMの周波数は、1000Hz(周期は1ms)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * デューティ比は、50%とする&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; CCP3CON = 0b00001100;&amp;nbsp;&amp;nbsp; //PWM mode P3A,P3C active high,P3B,P3D active high&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; CCPTMRS = 0b00000000;&amp;nbsp;&amp;nbsp; //bit5-bit4=00,CCP3にTimer2を割り当てる&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; PR2 = 124;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Timer2の周期を設定&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; CCPR3L = 62;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //デューティ比 50%&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; T2CON = 0b00000110;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //prescale 1:16 Timer2 start&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;
&lt;div&gt;}&lt;br&gt;&lt;/div&gt;</description>
			<link>https://blogs.yahoo.co.jp/jh7ubc/56444672.html</link>
			<pubDate>Sat, 30 Mar 2019 13:51:18 +0900</pubDate>
			<category>その他コンピュータ</category>
		</item>
		<item>
			<title>PIC16F1827 AD9834DDS VFO</title>
			<description>&lt;div&gt;　先日製作した3.5/7MHz SDRフロントエンドと組み合わせて実際の交信をしてみようと思い、7MHzのCW送信機を作ろうと思います。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　まず、AD9834DDSをPIC16F1827でコントロールして7MHz VFOを作ります。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　&lt;a href=&quot;https://blogs.yahoo.co.jp/jh7ubc/56390185.html&quot; target=&quot;_blank&quot;&gt;PIC16F883+AD9834 VFO&lt;/a&gt;のプログラムをPIC16F1827用に若干変更し、ロータリーエンコーダは、IOC割り込みを利用した方法にしました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　回路図です。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;div class=&quot; &quot; style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://blog-001.west.edge.storage-yahoo.jp/res/blog-35-a7/jh7ubc/folder/1699976/14/56442614/img_0_m?1553667199&quot; alt=&quot;&amp;#x0030a4;&amp;#x0030e1;&amp;#x0030fc;&amp;#x0030b8; 1&quot; width=&quot;560&quot; height=&quot;400&quot; class=&quot;popup_img_700_500&quot; style=&quot;&quot;/&gt;&lt;/div&gt;
&lt;br&gt;
ブレッドボードです。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;div class=&quot; &quot; style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://blog-001.west.edge.storage-yahoo.jp/res/blog-35-a7/jh7ubc/folder/1699976/14/56442614/img_1_m?1553667199&quot; alt=&quot;&amp;#x0030a4;&amp;#x0030e1;&amp;#x0030fc;&amp;#x0030b8; 2&quot; width=&quot;560&quot; height=&quot;566&quot; class=&quot;popup_img_710_717&quot; style=&quot;&quot;/&gt;&lt;/div&gt;
&lt;br&gt;
AD9834DDSの出力の波形です。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;div class=&quot; &quot; style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://blog-001.west.edge.storage-yahoo.jp/res/blog-35-a7/jh7ubc/folder/1699976/14/56442614/img_2_m?1553667199&quot; alt=&quot;&amp;#x0030a4;&amp;#x0030e1;&amp;#x0030fc;&amp;#x0030b8; 3&quot; width=&quot;560&quot; height=&quot;426&quot; class=&quot;popup_img_954_726&quot; style=&quot;&quot;/&gt;&lt;/div&gt;
&lt;br&gt;
参考までに、プログラムです。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;-----------------------------------------&lt;/div&gt;
&lt;div&gt;/* &lt;br&gt;
&amp;nbsp;* File:&amp;nbsp;&amp;nbsp; main.c&lt;br&gt;
&amp;nbsp;* Author: JH7UBC Keiji Hata&lt;br&gt;
&amp;nbsp;* PIC16F1827_AD9834_VFO&lt;br&gt;
&amp;nbsp;* Created on 2019/03/27&lt;br&gt;
&amp;nbsp;*/&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br&gt;
#include &amp;lt;xc.h&amp;gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;// CONFIG1&lt;br&gt;
#pragma config FOSC = INTOSC&lt;br&gt;
#pragma config WDTE = OFF&lt;br&gt;
#pragma config PWRTE = ON&lt;br&gt;
#pragma config MCLRE = OFF&lt;br&gt;
#pragma config CP = OFF&lt;br&gt;
#pragma config CPD = OFF&lt;br&gt;
#pragma config BOREN = ON&lt;br&gt;
#pragma config CLKOUTEN = OFF&lt;br&gt;
#pragma config IESO = OFF&lt;br&gt;
#pragma config FCMEN = OFF&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;// CONFIG2&lt;br&gt;
#pragma config WRT = OFF&lt;br&gt;
#pragma config PLLEN = ON&lt;br&gt;
#pragma config STVREN = ON&lt;br&gt;
#pragma config BORV = HI&lt;br&gt;
#pragma config LVP = OFF&lt;/div&gt;
&lt;div&gt;#define _XTAL_FREQ 32000000&amp;nbsp;&amp;nbsp; //クロック32MHz&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;//LCD関係定義&lt;br&gt;
#define LCD_EN 0b00000100&amp;nbsp;&amp;nbsp; //Enable&lt;br&gt;
#define LCD_BL 0b00001000&amp;nbsp;&amp;nbsp; //Back Light&lt;br&gt;
#define LCD_CMD 0x00&lt;br&gt;
#define LCD_CHR 0x01&lt;br&gt;
#define LCD_LINE1 0x80&lt;br&gt;
#define LCD_LINE2 0xC0&lt;br&gt;
#define LCD_addr 0x4E&amp;nbsp;&amp;nbsp; //0x27&amp;lt;&amp;lt;1&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;/* ロータリーエンコーダ関係定義*/&lt;br&gt;
#define ECA RB6 //エンコーダA&lt;br&gt;
#define ECB RB7 //エンコーダB&lt;br&gt;
unsigned char EA;&lt;br&gt;
unsigned char EB;&lt;br&gt;
volatile unsigned char curDat;&lt;br&gt;
volatile unsigned char befDat;&lt;br&gt;
volatile signed char count= 0;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;/* STEP関係設定 */&lt;br&gt;
unsigned int Step = 1000;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //STEP初期値&lt;br&gt;
#define STEP_SW RB5&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;/* AD9834DDS関係定義 */&lt;br&gt;
#define FSYNC RA0&lt;br&gt;
#define SCLK RA1&lt;br&gt;
#define SDATA RA2&lt;br&gt;
unsigned long Freq = 7000000;&amp;nbsp;&amp;nbsp; //周波数初期値&lt;br&gt;
unsigned long Freq_old;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //周波数の前の値&lt;br&gt;
const unsigned long Fre_Hi = 7200000; //周波数上限&lt;br&gt;
const unsigned long Fre_Lo = 7000000; //周波数下限&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;/* I2C 初期化*/&lt;br&gt;
void I2C_init(){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SSP1CON1 = 0x28;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //SSPEN = 1,I2C Master Mode&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SSP1STATbits.SMP = 1;&amp;nbsp;&amp;nbsp; //標準速度モード(100KHz)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SSP1ADD = 0x4F;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Fosc/(4*Clock)-1&amp;nbsp; Clock=100kHz,Fosc=32MHz&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;/* スタートコンディション */&lt;br&gt;
void I2C_start(){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SSP1CON2bits.SEN = 1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; while(SSP1CON2bits.SEN);&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;/* ストップコンディション */&lt;br&gt;
void I2C_stop(){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SSP1IF = 0;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SSP1CON2bits.PEN = 1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; while(SSP1CON2bits.PEN);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SSP1IF = 0;&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;/* I2Cに1byte送信 */&lt;br&gt;
void I2C_write(unsigned char dat){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SSP1IF = 0;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SSP1BUF = dat;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!SSP1IF);&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;void Write_data(unsigned char data){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_start();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_write(LCD_addr);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_write(data | LCD_EN | LCD_BL);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_write(data | LCD_BL);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_stop();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; __delay_us(100);&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;void LCD_write(unsigned char bits,unsigned char mode){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; //send High 4bits&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Write_data((bits &amp;amp; 0xF0) | mode);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; //send Low 4bits&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Write_data(((bits &amp;lt;&amp;lt; 4) &amp;amp; 0xF0) | mode);&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;&lt;br&gt;
void LCD_init(){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_write(0x33,LCD_CMD);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_write(0x32,LCD_CMD);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_write(0x06,LCD_CMD);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_write(0x0C,LCD_CMD);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_write(0x28,LCD_CMD);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_write(0x01,LCD_CMD);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; __delay_ms(1);&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;void LCD_clear(){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_write(0x01,LCD_CMD);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; __delay_ms(1);&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;void LCD_home(){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_write(0x02,LCD_CMD);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; __delay_ms(1);&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;void LCD_cursor(unsigned char x,unsigned char y){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (y == 0){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_write(LCD_LINE1+x,LCD_CMD);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (y == 1){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_write(LCD_LINE2+x,LCD_CMD);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;void putch(unsigned char ch){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_write(ch,LCD_CHR);&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;void Freq_disp(unsigned long frequency){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_home();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&amp;quot;%8ld&amp;quot;,frequency);&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;void Step_disp(unsigned int stp){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_cursor(4,1);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&amp;quot;%4d&amp;quot;,stp);&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;void Step_change(){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; __delay_ms(5);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(Step == 10){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Step = 1000;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }else{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Step = Step/10;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Step_disp(Step);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!STEP_SW){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; __delay_ms(5);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;/* AD9834DDSに16ビット送信 */&lt;br&gt;
void Data_send(unsigned long data){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for(unsigned char i = 0;i&amp;lt;16;i++){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(data &amp;amp; 0x8000){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SDATA = 1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }else{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SDATA = 0;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __delay_us(1);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCLK = 0;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __delay_us(1);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCLK = 1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data &amp;lt;&amp;lt;= 1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;/* AD9834DDSに周波数データを送る */&lt;br&gt;
void Fnc_DDS(unsigned long frequency){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned long wrk = frequency &amp;lt;&amp;lt; 2;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int wrk1,wrk2,wrk3;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; wrk1 = 0x2000;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //コントロールワード&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; wrk2 = wrk &amp;amp; 0x3fff;&amp;nbsp;&amp;nbsp;&amp;nbsp; //周波数データ下位&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; wrk2 = wrk2 | 0x4000;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; wrk3 = wrk &amp;gt;&amp;gt; 14;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; wrk3 = wrk3 &amp;amp; 0x3fff;&amp;nbsp;&amp;nbsp; //周波数データ上位&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; wrk3 = wrk3 | 0x4000;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SCLK = 1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; FSYNC = 0;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Data_send(wrk1);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Data_send(wrk2);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Data_send(wrk3);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; FSYNC = 1;&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;void interrupt isr(){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; IOCIF = 0;&amp;nbsp;&amp;nbsp; //割り込みフラッグクリア&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; IOCBF6 = 0;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; IOCBF7 = 0;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; __delay_ms(2);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; curDat = ECA + (ECB&amp;lt;&amp;lt;1);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (befDat != curDat){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char d = ((befDat&amp;lt;&amp;lt;1)^curDat) &amp;amp; 3; //回転方向判定&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(d &amp;lt; 2){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count++;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }else{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count--;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; befDat = curDat;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(count &amp;gt;= 4){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Freq += Step;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count = 0;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }else if(count &amp;lt;= -4){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Freq -= Step;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count = 0;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;void main(){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; OSCCON = 0b01110000 ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 内部クロック８ＭＨｚ&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ANSELA = 0b00000000 ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // AN0-AN4は使用しない&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ANSELB = 0b00000000 ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // AN5-AN11は使用しない&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TRISA&amp;nbsp; = 0b00000000 ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // PORTAは全て出力（RA5は入力）&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TRISB&amp;nbsp; = 0b11110010 ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // RB1(SDA),RB4(SDA),RB5,RB6(REA),RB7(REB)は入力他は出力&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTA&amp;nbsp; = 0b00000000 ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // PORTA初期化&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB&amp;nbsp; = 0b00000000 ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // PORTB初期化&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; OPTION_REGbits.nWPUEN=0;&amp;nbsp; // ウィークプルアップ許可&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; WPUB = 0b11100000;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // RB5,RB6,RB7をプルアップ&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; /* IOC割り込み設定 */&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; IOCBN = 0b11000000;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //RB6,RB7立下り割り込み設定&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; IOCBP = 0b11000000;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //RB6,RB7立ち上がり割り込み設定&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; IOCIE = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //IOC割り込み許可&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; GIE = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //全割り込み許可&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_init();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //I2C初期化&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_init();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //LCD初期化&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Roatry Encoder 初期値 */&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; EA = ECA;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; EB = ECB;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; befDat = EA + (EB&amp;lt;&amp;lt;1);&amp;nbsp;&amp;nbsp; &lt;br&gt;
&amp;nbsp;&amp;nbsp; &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 初期表示と初期周波数設定 */&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_cursor(9,0);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&amp;quot;Hz&amp;quot;);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Freq_disp(Freq);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Fnc_DDS(Freq);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_cursor(0,1);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&amp;quot;STEP&amp;quot;);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Step_disp(Step);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(STEP_SW == 0){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Step_change();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(Freq != Freq_old){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(Freq &amp;lt; Fre_Lo)Freq = Fre_Lo;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(Freq &amp;gt; Fre_Hi)Freq = Fre_Hi;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fnc_DDS(Freq);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Freq_disp(Freq);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Freq_old = Freq;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
}&lt;br&gt;&lt;/div&gt;</description>
			<link>https://blogs.yahoo.co.jp/jh7ubc/56442614.html</link>
			<pubDate>Wed, 27 Mar 2019 15:13:19 +0900</pubDate>
			<category>その他コンピュータ</category>
		</item>
		<item>
			<title>SDRフロントエンドの簡易ケーシング</title>
			<description>&lt;div&gt;　先日、実験をした&lt;a href=&quot;https://blogs.yahoo.co.jp/jh7ubc/56424225.html&quot; target=&quot;_blank&quot;&gt;7MHz/3,5MHzのSDRフロントエンド&lt;/a&gt;をユニバーサル基板に組み、アルミ板を折り曲げた簡易ケースに納めました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;div class=&quot; &quot; style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://blog-001.west.edge.storage-yahoo.jp/res/blog-35-a7/jh7ubc/folder/705426/73/56440873/img_0_m?1553422444&quot; alt=&quot;&amp;#x0030a4;&amp;#x0030e1;&amp;#x0030fc;&amp;#x0030b8; 1&quot; width=&quot;560&quot; height=&quot;374&quot; class=&quot;popup_img_651_435&quot; style=&quot;&quot;/&gt;&lt;/div&gt;
&lt;br&gt;
　シンプルな構成のフロントエンドですが、何とか実用になると思います。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　このフロントエンド＋パソコン（SDRソフトはRocky）で受信機とし、簡単な送信機と組み合わせて、QRP運用をしてみたいと考えています。&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;u&gt;&lt;/u&gt;&lt;sub&gt;&lt;/sub&gt;&lt;sup&gt;&lt;/sup&gt;&lt;strike&gt;&lt;/strike&gt;&lt;br&gt;&lt;/div&gt;</description>
			<link>https://blogs.yahoo.co.jp/jh7ubc/56440873.html</link>
			<pubDate>Sun, 24 Mar 2019 19:14:04 +0900</pubDate>
			<category>その他趣味</category>
		</item>
		<item>
			<title>Python 2 から Python3へ</title>
			<description>&lt;div&gt;　Raspberry Pi3 MODELBに3.5インチLCDを取り付けたのをきっかけに、再びPython（パイソン）の勉強を始めました。&lt;/div&gt;
&lt;div&gt;　今までは、Python2を使っていたのですが、最新のRspbianを導入してみるとPython3になっていました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　この1年半のうちにラズパイもPythonも進化しているようです。Python3ライブラリも充実し、Python 3 の方が標準になってきたようです。こちらもPython3に移行することにしました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　以前に作ったPython2用のスクリプトが、Python3では、そのままでは動かなくなりました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　まず、頻繁に使用するprint文がPython3では、関数化され、いろいろなことができるようになっています。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　変わらない部分も多くありますが、２から３で変わった部分もあり、勉強をしながらプログラミングの練習で&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　「数あてゲーム」を作ってみました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　なお、Pythonの勉強には、次のサイトが役に立ちます。サイトの解説者に感謝します。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　&lt;a href=&quot;https://www.python-izm.com/&quot; target=&quot;_blank&quot;&gt;Python-izm&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　&lt;a href=&quot;https://qiita.com/Fendo181/items/a934e4f94021115efb2e&quot; target=&quot;_blank&quot;&gt; Qiita&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;　数あてゲームのスクリプト（4桁の異なる数字の未知数をあてるゲームです）&lt;/div&gt;
&lt;div&gt;　main program中で&amp;quot;&amp;quot;&amp;quot; &amp;nbsp; &amp;quot;&amp;quot;&amp;quot;でコメントアウトしてある部分を解除すると未知数を表示させることができます。&lt;/div&gt;
&lt;div&gt;プログラムのチェックに使えます。&lt;/div&gt;
&lt;div&gt;-----------------------------------------------&lt;/div&gt;
&lt;div&gt;&amp;quot;&amp;quot;&amp;quot;&lt;br&gt;
数あてゲーム&lt;br&gt;
2019.3.17&lt;br&gt;
JH7UBC Keiji Hata&lt;br&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br&gt;
import random&lt;/div&gt;
&lt;div&gt;r=[0,0,0,0]&lt;br&gt;
a=&amp;quot;&amp;quot;&lt;/div&gt;
&lt;div&gt;#乱数を発生させる&lt;br&gt;
def ransu():&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for i in range(4):&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r[i] = random.randint(0,9)&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;#全て違う数字4桁の乱数を発生させる&lt;br&gt;
def michisu():&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; flag=1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; while flag:&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; flag=0&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ransu()&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for i in range(4):&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for j in range(i+1,4):&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if r[i] == r[j]:&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; flag = 1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; print(&amp;#39;X = ????&amp;#39;)&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;#4桁の数字を入力（全て違う数値）&lt;br&gt;
def nyuryoku():&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; global a&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; flag = 1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; global count&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; while flag:&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; flag = 0&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print(&amp;#39;{}回目&amp;#39; .format(count))&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a=input(&amp;#39;X = &amp;#39;)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for i in range(4):&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for j in range(i+1,4):&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if a[i] == a[j]:&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; flag =1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if flag == 1:&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print(&amp;#39;もう一度&amp;#39;)&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;#合っている数字を数える&lt;br&gt;
def num_check():&lt;br&gt;
#数字が合っている数&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; global xcount &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; xcount = 0&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for i in range(4):&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for j in range(4):&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if a[i]==str(r[j]):&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xcount += 1&lt;/div&gt;
&lt;div&gt;&lt;br&gt;
#位置が合っている数&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; global ycount&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ycount = 0&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for i in range(4):&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if a[i] == str(r[i]):&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ycount += 1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;
&amp;nbsp;&amp;nbsp; &lt;br&gt;
#main program&lt;br&gt;
try:&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; print(&amp;#39;*** 数あてゲーム ***&amp;#39;)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; print(&amp;#39; 強制終了は ctrl+C&amp;#39;)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; print()&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gflag = 1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; while gflag:&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sflag = 1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count = 1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; michisu()&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;&amp;quot;&amp;quot;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for i in range(4):&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print(r[i],end=&amp;#39;&amp;#39;)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print()&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print()&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;&amp;quot;&amp;quot;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while sflag:&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nyuryoku()&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; num_check()&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print(&amp;#39;(&amp;#39;+str(xcount)+&amp;#39;,&amp;#39;+str(ycount)+&amp;#39;)&amp;#39;)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print()&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (xcount==4)and(ycount==4):&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print(&amp;#39;正解です！&amp;#39;)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sflag = 0&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; replay = input(&amp;#39;ゲームを続けますか(y/n)&amp;#39;)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (replay == &amp;#39;y&amp;#39;) or (replay == &amp;#39;Y&amp;#39;) :&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pass&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gflag = 0&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print(&amp;#39;また遊んでね！&amp;#39;)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count += 1&lt;/div&gt;
&lt;div&gt;except KeyboardInterrupt:&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; pass&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;</description>
			<link>https://blogs.yahoo.co.jp/jh7ubc/56439036.html</link>
			<pubDate>Thu, 21 Mar 2019 23:07:49 +0900</pubDate>
			<category>Linux</category>
		</item>
		<item>
			<title>クロッカスが咲いた</title>
			<description>&lt;div&gt;　畑の雪がほとんど解けました。畑の隅でクロッカスが咲き始めました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;div class=&quot; &quot; style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://blog-001.west.edge.storage-yahoo.jp/res/blog-35-a7/jh7ubc/folder/1603176/48/56438248/img_0_m?1553087650&quot; alt=&quot;&amp;#x0030a4;&amp;#x0030e1;&amp;#x0030fc;&amp;#x0030b8; 1&quot; width=&quot;560&quot; height=&quot;420&quot; class=&quot;popup_img_730_547&quot; style=&quot;&quot;/&gt;&lt;/div&gt;
&lt;br&gt;
　昨年より、2週間早い開花です。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　この分で行くと桜も早く咲きそうです。&lt;/div&gt;</description>
			<link>https://blogs.yahoo.co.jp/jh7ubc/56438248.html</link>
			<pubDate>Wed, 20 Mar 2019 22:14:10 +0900</pubDate>
			<category>福島県</category>
		</item>
		<item>
			<title>ラズパイ用3.5インチLCD</title>
			<description>&lt;div&gt;　1年半ぶりにRaspberry Pi3 ModelBを引っ張り出してきました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　ネット上で評判が良いQuimatの3.5インチLCDディスプレイを購入しました。Amazonでケース付きで3,320円でした。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　品物が到着して、さっそくラズパイにせつぞくしてみました。ネット上の情報では、そのままラズパイのディスクトップ画面が表示されるとのこと。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　ところが&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;div class=&quot; &quot; style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://blog-001.west.edge.storage-yahoo.jp/res/blog-35-a7/jh7ubc/folder/1688892/23/56431223/img_0_m?1552215242&quot; alt=&quot;&amp;#x0030a4;&amp;#x0030e1;&amp;#x0030fc;&amp;#x0030b8; 1&quot; width=&quot;560&quot; height=&quot;437&quot; class=&quot;popup_img_720_562&quot; style=&quot;&quot;/&gt;&lt;/div&gt;
&lt;br&gt;
&lt;b&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;u&gt;&lt;/u&gt;&lt;sub&gt;&lt;/sub&gt;&lt;sup&gt;&lt;/sup&gt;&lt;strike&gt;&lt;/strike&gt;　虹色の画面になって、立ち上がりません。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　&lt;span style=&#039;display:inline !important;float:none;background-color:transparent;color:rgb(132, 107, 57);font-family:&quot;Hiragino Kaku Gothic Pro&quot;, sans-serif;font-size:12px;font-style:normal;font-variant:normal;font-weight:400;letter-spacing:normal;line-height:16.8px;orphans:2;text-align:left;text-decoration:none;text-indent:0px;text-transform:none;white-space:normal;word-break:break-all;word-spacing:0px;word-wrap:break-word;&#039;&gt;しばらくラズパイを使ってやらなかったので、ラズパイがへそを曲げたのかもしれませんね。Hi&lt;/span&gt;&lt;b&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;u&gt;&lt;/u&gt;&lt;sub&gt;&lt;/sub&gt;&lt;sup&gt;&lt;/sup&gt;&lt;strike&gt;&lt;/strike&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;u&gt;&lt;/u&gt;&lt;sub&gt;&lt;/sub&gt;&lt;sup&gt;&lt;/sup&gt;&lt;strike&gt;&lt;/strike&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　ネットで調べると電源電圧が低いか、Kernel.imgのブートに失敗した場合にこの虹色画面になるようです。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　電源は、5V　2.5Aで、電圧を測定しても問題ありません。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　次にmicroSDカードを調べると読み込みはできますが、書き込み禁止状態になっていて、書き込みもフォーマットもできません。どうやらmicroSDカードの異常のようです。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　そこで、新品のmicroSDカードを購入して、Raspberry の再セットアップを行いました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　2年前にこの作業を行っているのですが、Raspbianのバージョンも上がっていますので、&lt;a href=&quot;https://www.1ft-seabass.jp/memo/2018/07/23/raspbian-install-201807-memo/&quot; target=&quot;_blank&quot;&gt;こちらのサイト&lt;/a&gt;を参考にセットアップを行いました。たいへん参考になりました。ありがとうございました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　RaspbianをmicroSDにコピーしてセットすると無事立ち上がりました。（ホッ）&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　先ほどのサイトを参考に初期設定とupdateをしました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　が・・・・、このアップデートがものすごーーーく時間がかかりました。なんと3時間くらいかかりました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　ラズパイ・オリジナルのサーバーでは、このように時間がかかるので、皆さんミラーサーバーを使っているようです。&lt;/div&gt;
&lt;div&gt;　update WiFi設定が終わり、QuimatのLCDを接続すると無事ディスクトップ画面が表示されました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;div class=&quot; &quot; style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://blog-001.west.edge.storage-yahoo.jp/res/blog-35-a7/jh7ubc/folder/1688892/23/56431223/img_1_m?1552215242&quot; alt=&quot;&amp;#x0030a4;&amp;#x0030e1;&amp;#x0030fc;&amp;#x0030b8; 2&quot; width=&quot;560&quot; height=&quot;420&quot; class=&quot;popup_img_730_547&quot; style=&quot;&quot;/&gt;&lt;/div&gt;
&lt;br&gt;
　解像度の調整とタッチパネルの設定をして一応完了です。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　解像度は最初、800× 600に設定したのですが、「字が小さくて読めない！」ので&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　640×400に設定ました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　これで、重いディスプレイを持ってこなくともラズパイで遊べるようになりました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　思い出すために少しこのまま遊んで、その後SDRソフトを動かして先日実験したSDRフロントエンドと組み合わせて、SDR受信機にする実験をしたいと思っています。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;</description>
			<link>https://blogs.yahoo.co.jp/jh7ubc/56431223.html</link>
			<pubDate>Sun, 10 Mar 2019 19:54:02 +0900</pubDate>
			<category>Linux</category>
		</item>
		<item>
			<title>PIC16F1827 シリアル通信テスト</title>
			<description>&lt;div&gt;　PIC16F1827のシリアル通信のテストをします。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　PIC16F1827では、シリアル通信に使うピンを選ぶことができます。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　TXピンの選択は、APFCON1レジスタのTXCKSELで行い、TXCKSEL=0でRB2が、TXCKSEL=1でRB5が選択されます。&lt;/div&gt;
&lt;div&gt;　RXピンの選択は、APFCON0レジスタのRXDTSELで行い、RXDTSEL=0でRB1が、RXDTSEL=1でRB2が選択されます。&lt;/div&gt;
&lt;div&gt;　今回は、TXCKSEL=0,RXFTSEL=0として、TX=RB2,RX=RB1とします。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　回路です。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;div class=&quot; &quot; style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://blog-001.west.edge.storage-yahoo.jp/res/blog-35-a7/jh7ubc/folder/1699976/60/56428260/img_0_m?1551847898&quot; alt=&quot;&amp;#x0030a4;&amp;#x0030e1;&amp;#x0030fc;&amp;#x0030b8; 1&quot; width=&quot;560&quot; height=&quot;350&quot; class=&quot;popup_img_640_400&quot; style=&quot;&quot;/&gt;&lt;/div&gt;
&lt;br&gt;
　USBシリアル変換モジュールFT234Xを接続して、パソコンの通信ソフトTeraTermとの間での通信をテストします。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　ブレッドボードです。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;div class=&quot; &quot; style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://blog-001.west.edge.storage-yahoo.jp/res/blog-35-a7/jh7ubc/folder/1699976/60/56428260/img_1_m?1551847898&quot; alt=&quot;&amp;#x0030a4;&amp;#x0030e1;&amp;#x0030fc;&amp;#x0030b8; 2&quot; width=&quot;560&quot; height=&quot;370&quot; class=&quot;popup_img_661_437&quot; style=&quot;&quot;/&gt;&lt;/div&gt;
&lt;br&gt;
　クロックは最高速度32MHzで動作させ、Baud Rate Generatorの設定は、BRGH=1,BRG16=1としました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;　TeraTermとの通信テストでは、300bps～230400bpsで通信可能でした。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;div class=&quot; &quot; style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://blog-001.west.edge.storage-yahoo.jp/res/blog-35-a7/jh7ubc/folder/1699976/60/56428260/img_2_m?1551847898&quot; alt=&quot;&amp;#x0030a4;&amp;#x0030e1;&amp;#x0030fc;&amp;#x0030b8; 3&quot; width=&quot;560&quot; height=&quot;414&quot; class=&quot;popup_img_660_488&quot; style=&quot;&quot;/&gt;&lt;/div&gt;
&lt;br&gt;
　プログラムです。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;TeraTermから送られた文字を受信し、同じ文字を送り返す、いわゆるエコーバックのプログラムです。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;-------------------------------------&lt;/div&gt;
&lt;div&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br&gt;
#include &amp;lt;xc.h&amp;gt;&lt;/div&gt;
&lt;div&gt;// CONFIG1&lt;br&gt;
#pragma config FOSC = INTOSC&lt;br&gt;
#pragma config WDTE = OFF&lt;br&gt;
#pragma config PWRTE = ON&lt;br&gt;
#pragma config MCLRE = OFF&lt;br&gt;
#pragma config CP = OFF&lt;br&gt;
#pragma config CPD = OFF&lt;br&gt;
#pragma config BOREN = ON&lt;br&gt;
#pragma config CLKOUTEN = OFF&lt;br&gt;
#pragma config IESO = OFF&lt;br&gt;
#pragma config FCMEN = OFF&lt;/div&gt;
&lt;div&gt;// CONFIG2&lt;br&gt;
#pragma config WRT = OFF&lt;br&gt;
#pragma config PLLEN = ON&lt;br&gt;
#pragma config STVREN = ON&lt;br&gt;
#pragma config BORV = HI&lt;br&gt;
#pragma config LVP = OFF&lt;/div&gt;
&lt;div&gt;#define _XTAL_FREQ 32000000&amp;nbsp;&amp;nbsp; //クロック32MHz&lt;/div&gt;
&lt;div&gt;/*&amp;nbsp; TX=RB2,RX=RB1に設定&lt;br&gt;
&amp;nbsp;* &lt;br&gt;
&amp;nbsp;*/&lt;/div&gt;
&lt;div&gt;void serial_init(unsigned long BR){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TXSTA = 0x24;&amp;nbsp;&amp;nbsp; //SYNC=0 TXEN = 1 BRGH = 1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; BRG16 = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //BRG 16bit mode&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; RCSTA = 0x90;&amp;nbsp;&amp;nbsp; //非同期、継続受信可&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int X= _XTAL_FREQ/BR/4 - 1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SPBRGH = X / 256;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SPBRGL = X % 256;&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;void putch(unsigned char byte){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!TXIF);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TXREG = byte;&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;unsigned char getch(){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!RCIF);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return RCREG;&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;unsigned char getche(){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char c;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; c = getch();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; putch(c);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return c;&lt;br&gt;
}&lt;/div&gt;
&lt;div&gt;void main() {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; OSCCON = 0b01110000 ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 内部クロック８ＭＨｚ PLL ONで8×4=32MHz&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ANSELA = 0b00000000 ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // AN0-AN4は使用しない&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ANSELB = 0b00000000 ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // AN5-AN11は使用しない&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TRISA&amp;nbsp; = 0b00000000 ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // PORTAは全て出力（RA5は入力）&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TRISB&amp;nbsp; = 0b00000010 ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // RB1(RX) 入力　他は出力&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTA&amp;nbsp; = 0b00000000 ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // PORTA初期化&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB&amp;nbsp; = 0b00000000 ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // PORTB初期化&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; /* USARTの設定 */&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TXCKSEL = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // TX=RB2&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; RXDTSEL = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // RX=RB1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; serial_init(9600);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Serial通信初期化とBaud Rateの設定&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1){&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; getche();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;
&lt;div&gt;}&lt;br&gt;
&lt;br&gt;&lt;/div&gt;</description>
			<link>https://blogs.yahoo.co.jp/jh7ubc/56428260.html</link>
			<pubDate>Wed, 06 Mar 2019 13:51:38 +0900</pubDate>
			<category>その他コンピュータ</category>
		</item>
		</channel>
	</rss>