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

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

12B4A

2017年05月30日 | 日記

真空管アンプが、未だ頭の中でくすぶっています。

中古12B4A、4本がオークションに出ていましたので価格も2000円とありましたので、つい、購入してしまいました。

多分使えるのではと思うのですが、取り合えず、ヒータは4本とも切れては居ません。取り合えず1本だけ直流の10Vで

点灯させてみました。適当な電源がないのです。

12B4Aはテレビ球です、多分、垂直偏向管だと思います。

鉄と銅の塊がネックダナー、、、、。

 

 

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

一人卓球?

2017年05月24日 | 日記

先日、電子工作も行き詰まりで、海外のyoutubeを見ていました。そしたら、一人卓球?の画像が出てきました。見て思わず笑ってしまいました。

ユニークな発想です。簡単に作れそうなので、私も作ってしまいました。

画像の様な簡単なものですが、ねっと代わりの板の両側でピンポン球を打つわけです。これが、慣れないと意外と難しく継続して打てません。台を水平にしてピンポン玉がうまく台の上に落ちるようにするのが大変です。

なるべく高く上げると落ちてくるまで時間がありますので次の打つ体制がとりやすくなります。

ベニヤ板、ピンポン玉の跳ね返りが結構いいのです、ちょっと跳ね返りすぎかと、コルクのシートを上に置いたのですが、これはNG。

全く跳ね返りません。やはり、ベニヤのままが良さそうです。でもピンポン球が当たる音が意外とうるさく、夜は家族の顰蹙を買いそうです。

でも、30分もやればちょっとした運動にはなりますよ。

発想力を養わないと、、、、、。

 

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

MSP430 LaunchPad(7)

2017年05月20日 | 日記

Timer 割り込みがどの程度 __delay_cycle(x)の時間に影響するか?調べて見ました。

上の画像は割り込み無しの時のタイミングです。 Highの期間とLowの期間もわずかですが違っています。CPU CLKがCR発振器に依るDCOですので、この影響もあるのかなと?、、、、

 

割り込みが入った時のタイミングです。割り込みが入りますと __delay_cycle(x)の時間が長くなります。これは当然のことですが、ある程度正確なdelay timeを得たい場合は、タイマー割り込みを使う方がベターと云う事でしょうか。

ラフな時間の場合は __delay_cycle(x) が使えます。

 

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

MSP430 LaunchPad(6)

2017年05月14日 | 日記

タイマー割り込みと、__delay_cycles()の動作状態をロジアナで見ました。

プログラムは下記です。

#include "msp430g2553.h"

volatile int n = 0;
int main(void) {
    WDTCTL = WDTPW | WDTHOLD;   // Stop watchdog timer
    BCSCTL1 = CALBC1_1MHZ; // Set DCO to 1MHz
    DCOCTL = CALDCO_1MHZ; // Set DCO to 1MHz

    P1DIR |= BIT6 + BIT0;
    //P1SEL |= BIT6;
    //P1SEL2  &= ~BIT6;
       TA1CCTL0 = OUTMOD_7 + CCIE;
       TA1CTL = TASSEL_2 + ID_3 + MC_1;    // SMCLK/8, Up, clr, interrupt enable
       TA1CCR0 = 62500;

        __bis_SR_register(/*LPM0_bits +*/ GIE);
       // __no_operation();
        while(1){

         P1OUT |= BIT6;
         //__no_operation();
         //__no_operation();
         __delay_cycles(500000);
         __delay_cycles(500000);
         P1OUT &= ~BIT6;
         //__no_operation();
         __delay_cycles(500000);
         __delay_cycles(500000);
       }

    }

    #pragma vector=TIMER1_A0_VECTOR
    __interrupt void BP1(void) {
        n++;
        if(n==1)
        {
        P1OUT ^= BIT0;
        n = 0;
        }
    }

ロジアナのPulseView.exeは色々便利な機能がありそうですが、取り合えず、タイミングを見るだけの操作で、より詳しい使い方はこれからです。と云っても、そんなに複雑な波形を見るハードもプログラムもありません。

 

 

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

MSP430 LaunchPad(5)

2017年05月14日 | 日記

__NO_OPERATION(); に要する時間を調べて見ました。

プログラムは下記の簡単なものです。

#include "msp430g2553.h"
int main(void) {
    WDTCTL = WDTPW | WDTHOLD;   // Stop watchdog timer
    BCSCTL1 = CALBC1_1MHZ; // Set DCO to 1MHz
    DCOCTL = CALDCO_1MHZ; // Set DCO to 1MHz

    P1DIR |= BIT6; // + BIT0;

        while(1){

         P1OUT |= BIT6;
         __no_operation();
         __no_operation();
         //__delay_cycles(500000);
         //__delay_cycles(500000);
         P1OUT &= ~BIT6;
         __no_operation();
         //__delay_cycles(500000);
         //__delay_cycles(500000);
       }
    }

MCKは1MHzです。

上の画像は  __no_operation(); 無しの状態のP1_BIT6の状態です。

__no_operation();を1個追加したのが上の画像です。 1uS delayが認められます。

次にBit6がLowに__no_operation();を1個追加して見ました。

1uS low レベルが伸びました。

因みに__no_operation();を2個にすると2uSのdelayになる事を確認しました。

このことから、MCLK=DCO=1MHzですから、1uSのdelayの結果から__no_operation();の実行サイクルはOne Clockであることが分ります。

ここで、大活躍のtoolは中国製のチープなLogic Analyzer、saleae(800円、正確には750円でしたか、、、)十分使えます。

P1OUT |= BIT6;   5uS
        
P1OUT &= ~BIT6;  7uS

上記の様な__no_operation(); 無しの場合、   highとlowの時間は異なります。何故かな?対象にはなっていません。

Timer 割り込みをロジアナで捉えてみました。

P1OUT_BIT0が500m high、500ms lowで変化しています。

 

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