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

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

春の大雪

2012年02月29日 | 日記

関東地方は朝から大雪です。気温は室内で16.5℃。

予報では5センチくらいは積もりそうです。

午後には止むと思われますが、しばらく道は雪と氷で滑りやすくなりそうです。

  

明日から3月、あと何回雪が降るのかなー。早く暖かくなって欲しいですね。

 

コメント (2)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

計算結果

2012年02月25日 | 日記

あるHPに面白そうな計算結果が出ていました。

小数以下24桁も表示しています。こんな計算どうやってやるのだろうと自分でもやって見ました。

EXCELでは小数以下16桁までしか出ません。

取りあえず以下のプログラムを使い最初はmingw、次にcygwinで計算させ結果を比較してみました。

以外とこのような計算をする例がなくちょっと苦労しましたが。

#include

main(void)
{
double  x, y, z, w;
x = 180000000.0 / 4294967296.0;
y = 10.0 /0.041909515857696533203125;
z = 0.041909515857696533203125 * 238;
w = 0.041909515857696533203125 * 239;
printf("%.24f \n",x);
printf("%.24f \n",y);
printf("%.24f \n",z);
printf("%.24f \n",w);
}

mingwの結果:

$ ./a
0.041909515857696533000000
238.609294222222220000000000
9.974464774131774900000000
10.016374289989471000000000

cygwinの結果:

0.041909515857696533203125
238.6092942222222217740636552
9.974464774131774902343750
10.016374289989471435546875

gccのversionは異なりますが、この違いはどうして出てくるのでしょうね。

?????

bcc32の結果:

C:\bcc_work>calc2.exe
0.041909515857696533200000
238.609294222222217800000000
9.974464774131774902000000
10.016374289989471436000000

 

コメント (4)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

梅の花が咲きました。

2012年02月24日 | 日記

今年は厳冬のせいでしょうか梅の開花が遅れています。

我が家のベランダは日が当たり比較的暖かい環境のせいでしょうか、紅白の花が

咲きました。

しかし、この辺の梅の木は未だ蕾の状態で開花までには少し時間がかかりそうです。

そろそろ寒さも峠を越した様ですので、暖かい日が続けば一気に開花するのかも知れません。

暦の上では既に春ですが、実感としてやっと春の息吹を感じられる様になったかなと。

例年の冬は比較的暖かったので部屋の気温も19℃くらいで何とか寒さをしのげたのですが、

今年は15℃くらいまで下がり暖房のお世話になりました。

もう少しの辛抱が要りそうです。

春よ来い、はーやく来い!

 

 

コメント (4)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

SG12864ASLB-G と I/O Expander 接続

2012年02月23日 | 日記

I/O Expander経由でグラフィックLCD(SG12864)を動かして見ようと取りあえず

つないでみました。

プログラムは適当に(本当はどう作ったら良いのか分からない)作りやって見ましたが

全く反応なし。

LCDの左半分にドットを出す事を目指しています。

全く反応なしと書きましたが、2回ほど左半分にドットが表示されましたが、それっきり出ません。

ちょっと調べてみるとI/O Expander側のresetがLowになったまま、これではうまくありません。

TWIとSG12864の両方のコマンドを考えないといけません、何が何やら頭が混乱して、

しばらくこれで時間がつぶせます。

先は遠いなーー。 放り出すかも知れません。 FMラジオのプログラムの書き直しも全く進展せず

成果なし。

プログラムは難しい!

コメント (2)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

WSN176 I2C 16ビット I/Oエクスパンダ(3)

2012年02月16日 | 日記

色々やってみて取りあえずこうすればプログラムで書いた順番通りに動く様になりました。

先ずconfiguration reg.を以下の様に設定します。BANK=1,disable sequential Operation

    //CONFIGURATION REGISTERの設定
    i2c_start(SLAVE_ADR, TW_WRITE);
    i2c_write(0x05);// reg-adrs IOCON(A)選択
    i2c_write(0xA0);// BANK=1, Sequencial operation = disable
    i2c_stop();// ストップ・コンディション発行
   
    i2c_start(SLAVE_ADR, TW_WRITE);
    i2c_write(0x15);// reg-adrs IOCON(B)選択
    i2c_write(0xA0);// BANK=1, Sequencial operation = disable
    i2c_stop();// ストップ・コンディション発行

PORTA,Bを出力に設定

    // GPA0~GPA7の全ポートを出力ポートに設定
    i2c_start(SLAVE_ADR, TW_WRITE);// スタート・コンディション発行
    i2c_write(0x00);// reg-adrs IODIRA選択
    i2c_write(0x00);// 設定値 0x00, output
    i2c_stop();// ストップ・コンディション発行
   
    // GPB0~GPB7の全ポートを出力ポートに設定
    i2c_start(SLAVE_ADR, TW_WRITE);// スタート・コンディション発行
    i2c_write(0x10);// reg-adrs IODIRB選択
    i2c_write(0x00);// 設定値 0x00, output
    i2c_stop();// ストップ・コンディション発行

PORTに以下のようにデータを書き込みます。

    // GPAポートに"0" or "1"を出力
        i2c_start(SLAVE_ADR, TW_WRITE);// スタート・コンディション発行
        i2c_write(0x09);// reg-adrs GPIOA選択
        i2c_write(0xff);// LED Off、 1番
        delay_ms(500);
        i2c_write(0xfe);// LED0 On、2番
        delay_ms(500);
        i2c_write(0xfc);// LED1 ON、3番
        delay_ms(500);
        i2c_write(0xff);// LED0,1 OFF、4番
        delay_ms(500);
        i2c_stop();
       
        // GPBポートに"0" or "1"を出力
        i2c_start(SLAVE_ADR, TW_WRITE);
            i2c_write(0x19);// reg-adrs GPIOB選択
        i2c_write(0xff);// LED Off、5番
            delay_ms(500);
        i2c_write(0xfc);// LED0,1 On、6番
            delay_ms(500);
            i2c_write(0xff);//LED0,1 Off、7番
            delay_ms(500);
            i2c_stop();// ストップ・コンディション発行

この結果はプログラムの順番に(1番~7番)のLEDがオン、オフします。

MCP23017のresetを出すとデフォルトに戻ってしまうので注意が必要です。

このI/OエキスパンダにグラフィックLCDをつなごうと考えているのですが、直にmega328に

つないだ方が良さそうな気がします。

 

コメント (2)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする