test interruptIn feature with 555 timer

Dependencies:   ClockControl PowerControl mbed

Fork of Frequency_counter by Satoru Yoshida

Test interruptIn function with using LMC555 timer IC

LPC 1768 自身が持つタイマー割り込み機能を使わずに、 あえて外部のタイマー IC 555 からの信号で周期的に割り込みするテスト。

下記の回路例では、555 の output 端子が 約 10 秒周期のうち、0.3 秒間 Low になるはず。 ただし、コンデンサーおよび抵抗の誤差の影響があり、実測値は約7秒周期

C を 47μ から 330 μ に変えると約1分前後で周期的に割り込みがかかります。

/media/uploads/strysd/int555_10s.png

なるべく配線が交差しないように部品配置してみた例

/media/uploads/strysd/555test.jpg

main.cpp

Committer:
strysd
Date:
2014-05-11
Revision:
8:cb966096a916
Parent:
7:42e7f18361c8

File content as of revision 8:cb966096a916:

#include "mbed.h"
#include "PowerControl/EthernetPowerControl.h"
#include "ClockControl/ClockControl.h"

InterruptIn in(p8);   //Connect from output of 555
DigitalOut led1(LED1);//running 555

/* stop USB Interface */
#define USR_POWERDOWN (0x104)
int semihost_powerdown() {
    uint32_t arg;
    return __semihost(USR_POWERDOWN, &arg);
}

void flip(void)
{
    led1 = !led1; 
}

int main() {
    led1 = 0;

    setSystemFrequency(0x3, 0x1, 6, 1);//clock down from 96MHz to 48MHz

    semihost_powerdown();//Stop also USB Interface
    PHY_PowerDown();//net

    // Set up the interrupt
    in.mode(PullNone);
    in.rise(&flip);
    
    while(1){
        wait(1);
    }
      
}