5MHz OSC. output (using p21) with self frequency counter(using p30).

Dependencies:   mbed

LPC1768 mbed を使った矩形波発生/カウンタプログラムです。

  • PWM ライブラリでは出力の難しい高速の矩形波(1MHz over)を作れます
  • 確認用に内蔵カウンタを利用した周波数カウンタも付属です。こちらも高速なパルスを計測できます。

Rectangular wave generator / counter program using LPC1768 mbed.

  • High-speed rectangular wave (1MHz over) can be made.
  • The frequency counter which uses the 1768 built-in counter, can measure high-rate pulse.
Revision:
3:603f4efe3985
Parent:
2:bff82681a822
Child:
4:e7d16ef216d4
--- a/main.cpp	Sun May 26 05:42:36 2013 +0000
+++ b/main.cpp	Tue Jun 18 14:15:38 2013 +0000
@@ -2,7 +2,7 @@
 //  CLOCK OUT to PWM1[6] Sample with Freq Counter using Cap2.0 
 //  For LPC1768-mbed
 //
-//  Reference: 5MHz Clock Out Code and Comment - http://mbed.org/forum/mbed/topic/733/
+//  Reference: 1MHz Clock Out Code and Comment - http://mbed.org/forum/mbed/topic/733/
 //
 //  !! To Self Measurement Output Clock, Connect p21 <-> p30 with jumper wire.
 //
@@ -45,13 +45,13 @@
     LPC_SC->PCLKSEL0 &= ~(0x3 << 12);  
     LPC_SC->PCLKSEL0 |= (1 << 12);          // 2)Set peripheral clock divider to /1, i.e. system clock
     LPC_PWM1->MR0 = div - 1;                // 3)Match Register 0 is shared period counter for all PWM1
-    LPC_PWM1->MR6 = 9;                      // 3)Pin 21 is PWM1[6], so Match Register 6
+    LPC_PWM1->MR6 = (div + 1)>> 1;          // 
     LPC_PWM1->LER |= 1;                     // 4)Start updating at next period start
     LPC_PWM1->TCR = (1 << 0) || (1 << 3);   // 5)Enable counter and PWM    
 }
 
 int main() {        
-    PWM6_SETCLK(96) ; // Outout mbed's "PWM6" pin to 96MHZ/19 = 5.052MHz (Approx)
+    PWM6_SETCLK(96*5) ; // Outout mbed's "PWM6" pin to 96MHZ/19 = 5.052MHz (Approx)
     P30_INIT_CTR();
     while(1){
         P30_RESET_CTR();