goo blog サービス終了のお知らせ 

JH7UBCブログ

アマチュア無線 電子工作 家庭菜園など趣味のブログです

100万PV ありがとうございます

2025-03-16 07:52:11 | お知らせ
 当ブログが本日100万PV(Page View)を超えました。いつも閲覧ありがとうございます。

 私が最初にブログを始めたのは2006年で、Yahooブログに「JH7UBCブログ」というタイトルで現在のブログとほぼ同じ内容でした。

 Yahooブログと並行して、Gooブログに2011年に「夢の森」というブログを開設しました。内容は主に自分が住んでいる地域の情報でした。

 ところが、2019年に突然Yahooブログのサービス終了がアナウンスされ、Yahooの「JH7UBCブログ」をこちらのGooブログに移行することにしました。内容を完全に移行することはできませんでしたが、2020年からはGooブログの「JH7UBCブログ」に一本化しました。

 当ブログのアクセス数は、一日当たり600PV程度です。つたないブログにもかかわらず閲覧をいただきありがとうございます。また時々記事に関する問い合わせやコメントをいただき励みになっています。

 マイコン(PIC Arduino Raspberry Pi Micro:bit IchigoJamなど)やアマチュア無線などの記事はJH7UBCホームページにも掲載しています。併せて閲覧いただきたいと思います。どうぞ今後とも「JH7UBCブログ」をよろしくお願いします。



最新の画像もっと見る

5 コメント(10/1 コメント投稿終了予定)

コメント日が  古い順  |   新しい順
Unknown (TR)
2025-03-25 08:03:30
此方から失礼します。

過日、℃の表示方法有難うございます。
実は、管理人さんの「PIC16F883 I2Cインターフェース付きLCD表示テスト」をもとに、外字登録をしたくて色々と調べましたが、上手く動作しません。
若し、ご負担をかけない範囲でお分かりの様でいたら、自作プログラムから抜粋した下記の関数をご指摘ください。宜しくお願いします。
   記
//配列初期化(外字登録データ)
// 「-」の文字パターン
const unsigned char minus_pattern[8] = {0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00};


// CGRAMに文字パターンを登録

void lcd_send_byte(unsigned char data) {
I2C_start();
I2C_write(LCD_addr);
I2C_write(data | LCD_BL);
I2C_stop();
__delay_us(70);
}

void lcd_create_char(unsigned char code, const unsigned char *pattern) {
LCD_write(LCD_CGRAM | (code << 3), LCD_CMD);
for (int i = 0; i < 8; i++) {
lcd_send_byte(pattern[i]);
}
}

後は、

// CGRAMに「-」を登録
lcd_create_char(0x00, minus_pattern);

// LCDに「-」を表示
printf("\x00");
返信する
外字登録 (JH7UBC)
2025-03-25 21:45:05
TRさん こんばんは

私自身は、LCD1602で外字登録をしたことがありませんので、即答できませんが、プログラムで気になる部分があります。

// CGRAMに文字パターンを登録
void lcd_send_byte(unsigned char data) {
I2C_start();
I2C_write(LCD_addr);
I2C_write(data | LCD_BL);
I2C_stop();
__delay_us(70);
}

の部分です。
これでは、I2C LCD1602への書き込みはできません。
BL(バックライト)は点灯しますが、シリアルパラレルインターフェースのデータをLCDに書き込むためのENABLE信号が出ません。
I2C_write(data | LCD_BL);の前に
I2C_write(data | LCD_EN |LCD_BL);
が必要です。
返信する
Unknown (TR)
2025-03-26 11:05:26
こんにちは。

>書き込むためのENABLE信号が出ません

上記の件を拝見しまして、これだと思って、CGRAMに文字パターンを登録を下の様に直したら、、、
惜しいことに文字が出ましたが、文字化けでした。もうちょっとだと思うのですが、、難しいです。

// CGRAMに文字パターンを登録
void lcd_create_char(unsigned char code, const unsigned char *pattern) {
LCD_write(LCD_CGRAM | (code << 3), LCD_CMD);
for (int i = 0; i < 8; i++) {
Write_data(pattern[i]);
}
}
返信する
Unknown (TR)
2025-03-30 22:02:55
管理人さんこんばんわ。
外字作成方法ですが、何とかなりました。
有難うございました。

今度は、「PIC16F1827 MCC RTC(DS1307)テストその1・2」を見て、自分も、時計を作りたくなりました。
で、記事を見たのですが、
main関数内の下記の関数3つが見えませんでした。
何処を見たらよいのか教えて頂けませんか?


void main(){
// initialize the device
SYSTEM_Initialize();
// Enable the Global Interrupts
INTERRUPT_GlobalInterruptEnable();
// Enable the Peripheral Interrupts
INTERRUPT_PeripheralInterruptEnable();
返信する
返信 (JH7UBC)
2025-04-01 20:02:49
TRさん こんばんは
返信が遅れました。

外字作成うまくいったようで、良かったですね。
さて、お尋ねの件ですが
例えば、SYSTEM_Initialize();は
Projectsの中のSource Fileの中のMCC Genetated Fileの中のsystem\src\system.cで定義されています。

他もMCC Genetated Fileの中のに記載されています。
返信する

コメントを投稿

サービス終了に伴い、10月1日にコメント投稿機能を終了させていただく予定です。