Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Scope.h
00001 /* 00002 * BreathLed.h 00003 * 00004 * Created on: 2015/4/6 00005 * Author: steeven@gmail.com 00006 */ 00007 00008 #ifndef SCOPE_H_ 00009 #define SCOPE_H_ 00010 00011 #include "mbed.h" 00012 #include "BufferedSerial/BufferedSerial.h" 00013 00014 #define SCOPE_PINS 16 00015 00016 namespace steeven { 00017 00018 /** A simple Oscilloscope that log each pin's data change 00019 * Please dump log and analyze using excel x-y chart type! 00020 */ 00021 00022 typedef struct { 00023 char id; //bit 7: val, bit 0-6:id 00024 float time; 00025 } ScopeData; 00026 00027 class Scope { 00028 public: 00029 Scope(int buf_len); 00030 00031 void add(PinName pin, const char *name); 00032 00033 void log(char id, int v); 00034 00035 void dump( BufferedSerial *logger); 00036 00037 protected: 00038 const char *_names[SCOPE_PINS]; 00039 int _cnt; 00040 00041 Timer _timer; 00042 00043 ScopeData *_buf; 00044 int _buf_len; 00045 int _buf_cnt; 00046 }; 00047 00048 class ScopePin { 00049 00050 public: 00051 ScopePin(PinName pin, char id, Scope *scope); 00052 00053 protected: 00054 void on_fall(); 00055 void on_rise(); 00056 00057 InterruptIn _pin; 00058 char _id; 00059 Scope *_scope; 00060 }; 00061 00062 } 00063 ; 00064 00065 #endif
Generated on Wed Jul 27 2022 10:47:02 by
1.7.2