第三代测试机编程手册  1.0
载入中...
搜索中...
未找到
example_tio.c

该实例介绍如何使用TIO模块进行 IO 输出, 或连接PMU使用模拟功能, 或测量输入的周期信号的周期, 或输出时钟信号

1
6#include "lpxsdk.h"
7
8//配置TIO的输出电平和输入电平阈值
9void example_tio_config(void)
10{
11 //配置TIO的输出电平
12 TIOPort_SetOutLevel(TIO_PORTA,5000);
13 //配置TIO的输入电平阈值
14 TIOPort_SetCompareVol(TIO_PORTA,2500,5000);
15}
16
17//tio使用数字的io功能
18void example_tio_io()
19{
20 //使能IO数字功能
21 TIO_OnlyEnIO(TIO_PIN0);
22
23 //输出模式
24 TIO_AsOutputMode(TIO_PIN0,TIO_OUT_H);
25 TIO_AsOutputMode(TIO_PIN0,TIO_OUT_L);
26
27 //输入模式
28 TIO_AsInputMode(TIO_PIN0);
29 uint8_t input = TIO_ReadInputValue(TIO_PIN0);
30}
31
32//tio使用模拟功能
33void example_tio_analog()
34{
35 //使能IO模拟功能
36 TIO_OnlyToPMU(TIO_PIN0);
37
38 //输出模式
39 PMU_SetOutputPort(PMU_PORT_INT);
40 PMU_SetOut(PMU_MODE_FVCI, 0, PMU_RNGV_5V, PMU_RNGI_20MA); //使用该函数内部自动使用 PMU_Enable() 所以无需手动调用
41 PMU_SetClamp(-1, 1); //该函数和 PMU_SetOut 的调用前后顺序无关. 如果钳位不变,可以只设置一次.
42}
43
44//tio使用频率测量功能
45void example_tio_frequency()
46{
47 //配置TIO为输入模式
48 TIO_AsInputMode(TIO_PIN0);
49 //配置通道
50 TIOFreq_CHConfig(TIO_PIN0,FRE_CH0);
51 //读取频率, 是以周期时间返回的
52 uint32_t freq = TIOFreq_ReadPeriod(FRE_CH0,1000000,TUNIT_US,NULL);
53 //频率测量功能可以和TIO的其他功能共存
54 //因此没有关闭频率测量功能的用法
55}
56
57//tio使用时钟输出功能
58void example_tio_clock()
59{
60 //设置时钟输出的分频值
62 //设置时钟输出的引脚
63 TIO_ClkEnable(TIO_PIN0);
64 //取消时钟输出的引脚, 必须取消之后, TIO才能用于其他的功能
65 TIO_ClkDisable(TIO_PIN0);
66}
67
68//tio使用向量功能
69void example_tio_vector()
70{
71 //用于跑向量的引脚需要手动解锁,否则无法跑向量
72 TIO_UnlockIoFunction(TIO_PIN0);
73 //不用于跑向量的引脚, 可以锁定,避免被向量影响状态
74 TIO_LockIoFunction(TIO_PIN1);
75}
76
77
void PMU_SetClamp(float clamplRatio, float clamphRatio)
设置钳位. 该函数设置比例之后,根据输出模式和档位自动设置钳位值.
void PMU_SetOutputPort(uint8_t outport)
设置PMU输出端口. 内置500us延时
void PMU_SetOut(uint8_t mode, float set_mv_ua, uint8_t rangeV, uint8_t rangeI)
PMU输出.使用该函数自动 Enable PMU
void TIO_ClkSetDiv(uint8_t div)
设置使用TIO持续输出clk信号时的分频值
void TIO_OnlyToPMU(uint8_t pin)
断开 pin 的数字IO功能.使能PMU连接(即使能模拟功能). 同时只能有一个pin使能PMU功能. 当重复调用该函数时,只有最后一次设置的pin脚模拟功能使能....
void TIO_ClkDisable(uint8_t ch)
关闭TIO_CH作为时钟输出的功能
void TIO_LockIoFunction(uint8_t pin)
锁定 pin 脚. 向量系统无法操作锁定后的 pin 脚. 不用于跑向量的引脚需要锁定.跑了向量之后要用于其他操作的引脚需要锁定. 系统开机会锁定所有引脚.
float TIOFreq_ReadPeriod(uint8_t freq_ch, uint32_t timeout_us, uint8_t unit, uint8_t *error)
读取 freq_ch 中测量的频率值.该函数回进入阻塞状态.直到读取到测量结果,或者超过 timeout
void TIOPort_SetOutLevel(uint8_t port, float level)
设置端口的高电平输出电压
void TIO_AsInputMode(uint8_t pin)
设置TIO为输入模式
void TIOFreq_CHConfig(uint8_t pin, uint8_t freq_ch)
测频率通道配置
void TIO_OnlyEnIO(uint8_t pin)
使能 pin 的数字IO功能,断开和PMU的链接(即关闭模拟功能) 该函数内置500us延时!
void TIOPort_SetCompareVol(uint8_t port, float cmpL_mv, float cmpH_mv)
设置TIO端口的输入比较电压. 设置输出比较电压时, 是将TIO的32个引脚分为4组端口. 每个端口设置8个引脚的输入比较电压
void TIO_ClkEnable(uint8_t ch)
设置启用那个TIO引脚的时钟输出,可设置多个TIO_CH. 设置为时钟输出的引脚,将不能用于普通的TIO输入输出功能,或者向量功能. 可使用 TIO_ClkDisable 取消作为时钟输出的功能....
void TIO_AsOutputMode(uint8_t pin, uint8_t output)
设置TIO为输出模式,并且指定输出状态
uint8_t TIO_ReadInputValue(uint8_t pin)
读取 pin 脚输入电平
void TIO_UnlockIoFunction(uint8_t pin)
解锁 pin 脚.用于跑向量的引脚需要解锁.否则无法跑向量.