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

Revision:
5:9be3080ca8ba
Parent:
4:64d9c0bed75b
Child:
6:7f90a61e1a69
--- a/main.cpp	Mon Jun 03 15:04:08 2013 +0000
+++ b/main.cpp	Tue Jun 04 06:14:19 2013 +0000
@@ -4,14 +4,14 @@
 #define CONV_KILO_OHM 0.0072 //if use 0.1 micro F
 #define IN_TIMES  10 //interrupt times
 #define READ_TIMER 3 //rest times when reads timer
-#define WAIT_IN 200 //wait interrupts in msec
-#define WAIT_NEXT 4800 //wait next measurement in msec
+#define WAIT_IN   1000 //wait interrupts       in msec
+#define WAIT_NEXT 4000 //wait next measurement in msec
 #define MAX_INTERVAL 100000 //  > 0.1 sec ( < 10 Hz)  in microseconds
 #define MIN_INTERVAL 20 // < 20 micro sec ( > 50 kHz) in microseconds
 #define ONESEC_BY_MICRO 1000000//   1 sec             in microseconds
 
 InterruptIn in(p8);   //connect to the Discharge of 555
-DigitalOut run555(p9);//connect to the Reset of 555
+DigitalOut run555(p9);//connect to the Reset     of 555
 DigitalOut led(LED1);
 Timer t1;
 
@@ -29,7 +29,7 @@
         t1.reset();// Reset timer and wait for next interrupt
         rest_in--;
     }
-    
+
     if(rest_in == 0){
         //No use interrupt
         run555 = led = 0;
@@ -39,11 +39,12 @@
 
 int main() {
     run555 = led = 0;
+    // Set up the interrupt
     in.mode(PullUp);
-    in.rise(&flip);// Set up the interrupt for rising edge
+    in.fall(&flip);
 
     printf("\rStarting measure\n");
-      
+
     while (1) {
         //Use interrupt
         my_interval = 0;