ラジオ少年の楽しい電子工作、その他

AVRを使った簡単な回路の実験、そして日々のちょっとした出来事を書きます。

VRCON、16F628(2)

2011年03月30日 | 日記

サイン波はちょっと厳しいですが、こんな波形も出せます。

コメント (13)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« VRCON、16F628 | トップ | Mega88でテトリス »
最新の画像もっと見る

13 コメント

コメント日が  古い順  |   新しい順
PDMの補足 (senshu)
2011-04-01 18:08:23
PDMで検索しても見つかりませんでした。

「パルス密度変調」で検索してください。
返信する
Unknown (senshu)
2011-04-01 18:06:44
kawanaさん、ラジオ少年さん、こんばんは。

確かに16組の値で任意の波形を合成するには難しいのですが、
PWMに似たPDMを利用すると、希望することが可能になります。

ただし、その実現はあまり簡単ではないと思います。やって
みたことがないので、詳細は不明です。

PDMで検索すると、面白いページがたくさん見つかります。

返信する
Re.16BitのDot方式でSinらしく (ラジオ少年)
2011-03-31 23:26:34
VRCONは16個の電圧値しか有りません。16bitとは違います。
16個の値ではなかなかサイン波に近い波形は出ません。
VRCONはHigh,Lowの電圧値を持っていますのでこれを組み合わせると32個の値(ダブリも有りますが)になり、この中から値を選んでやってみましたが、やはり三角波のなまった様な波形しか出てきません。
VRCONは目的がコンパレータのRef。ですから無理があると思います。
R-2RDACを使う方が簡単だと思います。
返信する
Unknown (ラジオ少年)
2011-03-31 14:43:02
kawanaさん、senshuさんの云われている事は最もな事だと思いませんか?
私でしたら素直に受け入れます。
kawanaさんのやり方、考え方もそれなりに理解は出来ますが、更に結果が良くなるのであれば、その考え方を取り入れてもいいのでは。
もう少し柔軟に対応して更により良い結果を得る方がベターだと私は考えます。
kawanaさんも私も同年輩、亀の甲より年の功の部分も有るかと思いますが、プログラムについては、歳は若くてもsenshuさんは先輩ですし、私は初心者ですから、アドバイスには耳を傾けることに何ら違和感もありませんし恥とも思いません。
「自分で調べろ」についてはkawanaさんはその様に受け取ったのかもしれませんが、senshuさんは、検索すれば色々出てくるので、調べて見てはどうですか?
こういう調子のコメントだった思います。
kawanaさん、もう少し大らかに行きましょう。
返信する
自分で調べろが、サイト汚しに (kawana)
2011-03-31 12:30:35
senshuさんの、自分で調べろが、サイト汚しに
成っていると私は思うのですが?
ラジオ少年さんのサイトで私の考え方の
批判をしている様に、感じます。
senshuさんが、答える必要が有るか考えて下さい。
私も、以後、考え方、記述しない様にします。
返信する
やつぱり記述方法忘れるか (kawana)
2011-03-31 12:17:17
Senshuさんから、教えて頂いたExor方式がベタ-と思うが、PORTA ^= 1<<PA3;//PA3=3 <<全角にして有ります。

時間計測方でも行ける事が解った。
PORTA |= 0x08;//PA3=1
.
. //処理ル-チン
.
PORTA &= 0x08;//PA3=0
きちんと表示されているかな。
返信する
Unknown (senshu)
2011-03-31 12:05:59
>確かに読み易いProgramを書く事は、自分にも他人にも必要ですが、
>自分でProgram理解の段階で、修正すれば良いと考えるのですが。

ここはラジオ少年さんのブログですから、これ以上の議論は避けます。

以下に私の考えを述べます。

インデントを維持し、プロジェクト全体をまとめて公開する方法が
あります。他に方法がなければ別ですが、プロジェクト全体を共有
して無駄をカットし、短時間に成果を得ることができます。

オシロによるテトリスはその例です。
返信する
LEDに依るDebug補助 (kawana)
2011-03-31 12:01:18
Senshuさんから、教えて頂いたExor方式がベタ-と思うが、(PORTA ^= 1<<PA3;// PA3<--3)

区間時間計測方式でも良い事が理解出来ました

PORTA |= 0x08;//PA3=1
.
.//処理ル-チン
.
PORTA &= ~0x08;//PA3=0


返信する
16BitのDot方式でSinらしく (kawana)
2011-03-31 11:22:22
16BitのDot方式でSinらしく見せる方法は、有るのでしょうか?
例えば、数学的補間を取り入れて、時間軸幅を
変更するなど、Sin波とは相違してくるが、
返信する
Compile出来れば十分では (kawana)
2011-03-31 11:14:01
私は、Compile出来れば初期の目的は、十分達成
出来ていると思います。
確かに読み易いProgramを書く事は、自分にも
他人にも必要ですが、
自分でProgram理解の段階で、修正すれば良いと
考えるのですが。
返信する
Unknown (senshu)
2011-03-31 10:53:30
ラジオ少年さん、おはようございます。

この波形の方がサイン波に近い印象です。何れにせよ、
4ビットの分解能では表現も限られます。

kawanaさんへ

私の場合は、インデントもソースの一部と考えており、
インデントには書き手の思いの一部が込められている
と考えます。

そのため、インデントが失われるのは大きな痛手です。
そうした理由から、AStyleというツールを紹介しました。

私はインデントが適切に書かれていないソースは読めません。
(読み気になれない、という方が適切かもしれませんが)

こう考えている者もいることを考慮していただければと
思います。

返信する
ERRORに成る事無くCompile (kawana)
2011-03-31 08:24:42
ERRORに成る事無くCompile出来ました。
返信する
外部File利用について (kawana)
2011-03-31 07:46:17
外部File利用する事はメリットのある事は、認めますが、ラジオ少年さんの所にUPする事も
メリットが有ると思います。
ラジオ少年さんが消さない限り残っている点。
状況は、Programと関連ずけ説明されるので
身近に有っても良いと考えます。
そうしておけば、第三者があえて、コメントする事無く、共通の認識にたち、議論する事が
可能と思います。
参考までに、即Compile可能か、試してみたいと
思います。

/*PIC16F628A
VRCON TEST program by Radio boy,2011/3/30
CPU CLK = 16MHz
*/

const unsigned char sin_data[] ={0xe7,0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,0xee,0xed,0xec,0xeb,0xea,0xe9,0xe8,
0xe7,0xe6,0xe5,0xe4,0xe3,0xe2,0xe1,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7};
unsigned int i = 0;

/* main entry */
void main()
{
VRCON = 0xe0;
TRISA = 0b111 ;// PORTA directionregister
PORTA = 0 ;
CMCON = 7 ;

for (;;) {

if ( i < 30){
VRCON = sin_data[i];
//PORTA = VRCON;
i++;
}
else
i = 0;
}
}
返信する

コメントを投稿

日記」カテゴリの最新記事