« ピカロード「ホタル君」の製作方法 | トップページ | Arduinoもモールスを打ち始めた(デバック文) »

2020年2月22日 (土)

AVRマイコンがモールスを打ち始めた(デバック文)

Cwa

LCDやデバッカーが付いてない無い状のマイコンで変数の値を知りたくなることがある。

そんなとき、値をCWに変換してはと思いつき簡単なソースを書いてみた。

サンプルソース

今回は、LEDと音(PWM)で実装したが、電子ブザーでも良い。ソースも簡単なので、ライブラリ化せずソースをそのまま公開。

このソースはjh4vaj/1さんの「AFSS01 – AVR最初の一歩セット」用に作成されています。

http://www.jh4vaj.com/afss01_01

※自由に改造・流用していただいて結構。(無保証)

ダウンロード - cwdbg.c

概要説明

【宣言】


#define F_CPU 1000000UL // 1MHz
#define T_DLY 100 // ドットの長さ

#include <avr/io.h>
#include <stdio.h>
#include <string.h>
#include <util/delay.h>

// 関数
void cw(unsigned int dat ); // 0 - 4294967295
void cwh(unsigned int dat ); // 0x0 - 0xffffffff
void cwa(char *ch ); // 0-9 a-z .,:?/@- ※半角小文字
void ccw(char ch); // 0-9 a-z .,:?/@- ※半角小文字を1文字だけ。文字間無し。
void dot();
void dash();

【関数一覧】

関数名 仕様 使用例
void cw(unsigned int dat )

datの値を10進に変換して、CW出力
文字と文字の間は、短点3個分、
出力が終わると短点7個分の時間を空ける。


unsigned int dat;
dat = 10;
cw(dat);
・---- ----- 

void cwh(unsigned int dat ) datの値をHEX変換して、CW出力
データの前に”0x”が自動で付加される。
先頭の0埋めなし。
例、”0xa” ”0xff” ”0x1cd”
文字と文字の間は、短点3個分空ける。
出力が終わると短点7個分の時間を空ける。

unsigned int dat;
dat = 10;
cwh(dat);    //0xa
----- -・・- ・-

void cwa(char *ch );

chに文字列の先頭ポインタを渡すとCW出力文字は半角英数小文字と.,:?/@-およびスペースであること。
それ以外の文字は無視される。
文字と文字の間は、短点3個分空ける。
出力が終わると短点7個分の時間を空ける。


cwa("hello cw.");
・・・・ ・ ・-・・ ・-・・ ---
-・-・ ・-- ・-・-・

void ccw(char c );

cにキャラクタ文字をセットするとCW出力
使用できるキャラクターはcwa()を参照。
文字と文字の間隔を調整しないため、組み合わせによっては、HHやARなど特殊な文字をCW出力できる。


ccw('h');ccw('h');  //HH
・・・・・・・・

ccw('a');ccw('r');  //AR
・-・-・

void dot();

短点1個分のONと短点1個分OFFを行う。
短点1個の長さはT_DLYで定義する。(ミリ秒)
#define T_DLY 100 // ドットの長さ

※環境を変える場合は、PORTBとTCCR0Aを自分の環境に合わせて修正してください。

dot();
void dash();

短点3個分のONと短点1個分OFFを行う。
短点1個の長さはT_DLYで定義する。(ミリ秒)
#define T_DLY 100 // ドットの長さ

※環境を変える場合は、PORTBとTCCR0Aを自分の環境に合わせて修正してください。


dash();

 

 

 

 

« ピカロード「ホタル君」の製作方法 | トップページ | Arduinoもモールスを打ち始めた(デバック文) »

アマチュア無線」カテゴリの記事

AKC」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« ピカロード「ホタル君」の製作方法 | トップページ | Arduinoもモールスを打ち始めた(デバック文) »

無料ブログはココログ
フォト
2020年7月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31