PEC 代码简短参考 (简化摘录)

PEC( Portable Embedded Classes) 代表便携式嵌入式类,是微控制器应用程序的类库。

供应用程序开发人员使用的所有类和模板都以 前缀 Pec … 开头。这些库模块的专有使用确保了所创建应用程序的可移植性。以下简短参考显示了最重要的 PEC 库模块及其基本功能。可以从相应的类模型自动生成所有 PEC 模块的完整文档。.

PEC 库模块的使用始终遵循以下模式:

  1. 为每个系统组件创建一个单独的类
  2. 搜索并分配合适的PEC库块
  3. 分配或配置使用的特定硬件
  4. 创建系统块的实例

示例 1: 在引脚 B0 上提供用于错误显示的指示灯 LED。

  1. 定义系统块的名称并创建类: ErrorLED
  2. 对于此类应用程序,库提供了高级类模板 PecLed,可以将其分配
  3. 模板必须补充资源pinB0
  4. 应用程序需要块的实例,例如作为控制器(Controller)类中的聚合

示例2: 控制器UART0 上提供RS232 端口,用于嵌入式系统的配置

  1. 定义系统模块的名称并创建一个类:终端 Terminal
  2. 该库为此类用例提供了类模板 PecUart 来分配它们
  3. 模板必须补充资源uart0xxx
  4. 应用程序需要块的实例,例如作为控制器( Controller)类中的聚合

注意: 所用硬件的名称是特定于控制器的!!

PecPinInput «template» 需要 pinXn 作为参数, [pullUp]
bool getState()     // 从引脚 0/1 读取当前状态
PecPinOutput «template» 需要 pinXn 作为参数
bool getState()     // 从引脚 0/1 读取当前状态
void setState(bool) // 设置引脚 0/1 的新状态
void on()           // 打开引脚 1
void off()          // 关闭引脚 0
void toggle()       // 引脚切换0->1 / 1->0
PecPinInterrupt «template» 需要 pinXn 作为参数, [pullUp]
bool getState()           // 从引脚 0/1 读取当前状态
virtual void onPinEvent() // 用于覆盖,事件处理功能
pinXn «parameter» 模板的«参数»
#define %port% X
#define %pin% n
pinPullUp «parameter» 模板的«参数»
#define %pinLevel% 1!
PecPinOutputTimed «template» 需要 pinXn 作为参数
void on(delay)     // x 毫秒. 延迟开启(10 ms 网格)
void off(delay)    // x 毫秒. 延迟关闭(10 ms 网格)
void toggle(delay) // x 毫秒. 延迟切换(10 ms 网格)
void pulse(delay,pulseMs)  // ______|-------|
void pulse(delay,hiMs,loMs,count) // ______|-------|_______|------| ...
bool isBusy()      // 提供状态,true = 仍然忙
PecLED «template» 需要 pinXn 作为参数
void on()               // LED 打开
void off()              // LED 关闭
void toggle()           // LED 切换
void flash()            // LED 短暂闪烁
void blink(code)        // 在代码上切换闪烁代码 = 3 |||_|||_|||_... 
uint8_t getBlinkCode()  // 提供当前闪烁代码
void nextBlinkCode()    // 当前闪烁代码 +1
void slowBlink()        // 缓慢闪烁 ... |__|__|__|__...
void flicker()          // 快速闪烁 ... ||||||||||||... 
void dim()              // 亮度降低 50% 
PecButtonClickAndHold «template» 需要 pinXn 作为参数
bool isPressed()            // 提供按钮的当前状态, true = 按下
virtual void onClick()      // 覆盖,点击事件函数
virtual void onHoldStart()  // 覆盖,  在开始时保持事件
virtual void onHolding()    // 覆盖,  事件每 10 毫秒保持一次 
virtual void onHoldEnd()    // 覆盖,  事件保持结束

PecUart «template» 需要参数 baudrateXXX, uartN

void writeByte(byte)          // 发送一个 8 位值(字节)(Byte)
void writeString("String")    // 发送文本
bool dataAviable()            // 检查数据是否存在
uint8_t readByte()            // 读取一个字节Byte
void write(WORD)              // 发送一个 16 位值
void write(DWORD)             // 发送一个 32 位值
void writeData(buffer,count)  // 从缓冲区发送 n 个字节

uartEventRx «template» 扩展模板 PecUart

void onEventRx(data)  // 接收事件
                      // 必须覆盖

baudrateXXXX «参数» 用于模板 PecUart

#define %baud% xxx
PecAdcSingle «template» 需要参数 adcX, resolutionX, channelN,
unsigned int getValue()   // 提供当前模拟值
PecAdcChannel «template» 需要参数 adcX, resolutionX, channelN,
unsigned int getValue()   //  提供通道的最后一个模拟值
adcX «parameter» PecAdc …需要 adcX «参数»
#define %adc% X  // 0, 1, 2, ...
channelN «parameter» PecAdc …需要 channelN «参数»
#define %channel% N  // 0, 1, 2, ...
adcResolutionX «parameter» PecAdc …需要 adcResolutionX «参数»
#define %resolution% X  // 8, 10, 12
PecTimer «template» 需要参数 timerN
// 自定义定时器的类模板
void configHz(hz)       // 初始化并以 x Hz启动计时器 
void configMs(ms)       // 初始化并以 x mS启动计时器
void configUs(us)       // 初始化并用 x µS启动计时器
void stop()             // 停止计时器
virtual onTimerEvent()  // 覆盖,定时器事件功能
// 如果需要,也可以直接在中断中处理
PecCounterMs «template» 需要参数 timerN
// 秒表模板,实现毫秒计时
void start()            // 从 0 开始秒表
unsigned int stop()     // 停止秒表并提供测量值
unsigned int getCount() // 提供当前值,秒表继续运行
unsigned int reStart()  // 秒表从 0 开始重新启动,执行当前值
PecCounterUs «template» 需要参数 timerN
// 秒表模板,实现微秒级计时
void start()            // 从 0 开始秒表
unsigned int stop()     // 停止秒表并提供测量值
unsigned int getCount() // 提供当前值,秒表继续运行
unsigned int reStart()  // 秒表从 0 开始重新启动,执行操作.当前值
PecPwmChannel «template» 需要参数 timerN 和 channelX
void configHz()     // 配置PWM频率
void setDuty(duty)  // 设置伪模拟值 0 ... 1000
void start()        // 启动 PWM 输出
void stop()         // 停止 PWM 输出      
PecFrequencyChannel «template» benötigt Para. timerN und channelX
void setHz(hz)     // 配置输出频率
void on()          //  启动频率输出
void off()         // 停止频率输出  
timerN «parameter» 用于 PecTimer…
#define %timer% n // 0, 1, 2, ...
channelX «parameter» 用于 Pec…Channel
#define %channel% X  // A, B, C, ...
PecSimpleSound «template» 需要参数 timerN, channelX
void play("SoundCode")  // 播放字符串中编码的音调序列(旋律))
void stop()             // 停止当前声音输出
bool isPlaying()        // 检查是否还有声音输出
// --------------------------------------------------------------
// 声音代码: 
// 	音调 = 字母,大写字母高八度
//		cdefgah = ton
//		c´ = cis (des) =w
//		e´ = es (dis)  =x
//		f´ = fis (ges) =y
//		a´ = as (gis)  =z
//		b  = (ais)
//	音调 = 字母,大写字母高八度
//		k...v = c...h inclusive cis,es,fis,as,b
//	/  从现在开始高 1 个八度
//	\  从现在开始低 1 个八度
//	,  短停顿 1/4 音符长度
//	.  长停顿 1/1 音符长度
//	标准 = 1/8 音符
//	^  从现在开始快 2 倍(例如 1/16 音符)
//	v  从现在开始减慢 1/2(例如 1/4 音符)
//	空格 = 没有意义也没有效果
//-----------------------------------------------------------------
// 例子:一首童谣:
speaker.play( "v d,e,f,g,aa,aa, h,h,h,h,aa,.. h,h,h,h,aa,.. g,g,g,g,ff,ff, a,a,a,a,dd" );

返回