机器人创新设计 机器人创新设计机器人创新设计
端口名称 端口号 端口功能 功能说明
输出指示灯5 P0.6 MOSI0 SPI0 主机输出从机输入端
CAP0.2 定时器0 的捕获输入通道2
输出指示灯6 P1.24 TRACECLK 跟踪时钟带内部上拉的标准I/O 口 输出指示灯7 P1.23 PIPESTAT2 流水线状态位2
输出指示灯8 P0.11 CAP1.1 定时器1 的捕获输入通道1
SCL1 I2C1 时钟输入/输出
输入端口1 P0.22 CAP0.0 定时器0 的捕获输入通道0
MAT0.0 定时器0 的匹配输出通道0
输入端口1 P1.19 TRACEPKT3 跟踪包位3 带内部上拉标准I/O 口 输入端口2 P0.23 通用数字输入/输出引脚 输入端口2 P1.28 TDI JTAG 接口的测试数据输入
MAT1.2 定时器1 的匹配输出通道2
输入端口3 P0.19 MOSI1 SPI1 主机输出从机输入端
CAP1.2 定时器1 的捕获输入通道2
输入端口3 P1.30 TMS JTAG 接口的测试方式
CAP1.2 定时器1 的捕获输入通道2
输入端口4 P0.17 SCK1 SPI1 串行时钟
MAT1.2 定时器1 的匹配输出通道2
输入端口4 P1.21 PIPESTAT0 流水线状态位0 输入指示灯1 P0.25 AD0.4 A/D 转换器0 输入4
输入指示灯1 P1.18 TRACEPKT2 跟踪包位2 带内部上拉标准I/O 口
MAT1.3 定时器1 的匹配输出通道3
输入指示灯2 P0.20 SSEL1 SPI1 从机选择SPI1 接口用作从机
EINT3 外部中断3 输入
输入指示灯2 P1.27 TDO JTAG 接口的测试数据输出
CAP1.3 定时器1 的捕获输入通道3
输入指示灯3 P0.18 MISO1 SPI1 主机输入从机输出端
MAT1.3 定时器1 的匹配输出通道3
输入指示灯3 P1.29 TCK JTAG 接口的测试时钟 输入指示灯4 P0.15 EINT2 外部中断2 输入
输入指示灯4 P1.20 TRACESYNC 跟踪同步带内部上拉的标准I/O 口 通道选择键A GND
通道选择键B P1.17 TRACEPTK1 跟踪包位1 带内部上拉标准I/O 口 通道选择键C P0.26 AD0.5 A/D 转换器0 输入5 串口通信1 P0.0 TxD0 UART0 发送输出端
PWM1 脉宽调制器输出1 RxD0 UART0 接收输入端
串口通信2 P0.1 PWM3 脉宽调制器输出3
EINT0 外部中断0 输入
24
机器人创新设计 机器人创新设计机器人创新设计
9.5 库函数
访问http://code.google.com/p/robotway/source/browse/。导入库函数到工程:
在工程窗口新增所有*.c 到“Source Files”目录下, *.h 到“Head Files”目录下。
lib_io.c
通用参数:
PortSe:端口序列号,值为0、1; PortNo:端口号,值为0~31;
函数名 函数原型 功能 返回值 说明
【DelayNS】 void DelayNS(uint32 dly) 长软件延时 无
【GPIO_In】 uint8 GPIO_In(uint8 PortSe, 检测电平 1-成功 Level:检测电平
uint8 PortNo,uint8 Level) 输入函数 0-失败 1-高,0-低;
【GPIO_Out】 void GPIO_Out(uint8 PortSe, 电平输出 无 Level:输出电平
uint8 PortNo,uint8 Level) 函数 1-高,0-低
【PWM】 void PWM(uint8 PortSe,uint8 pwm 控制 无 PW:脉宽
PortNo,uint32 PW,uint32 Tpwm) 串行发 Tpwm:输出周期
void UART_Out(uint8 PortSe, 送数据 data:需要发送的数据
【UART_Out】 uint8 PortNo,uint8 data,uint32 串行发送 无 bps:波特率
bps,uint32 xtal) 数据 xtal:晶振
【IRQ_End】 void IRQ_End(uint32 priority) 中断处理结束 无 无
25
机器人创新设计 机器人创新设计机器人创新设计
函数名 函数原型 功能 返回值 说明
【UART_In】 uint8 UART_In(uint8 type) 接收串行 返回串行 type:串口类
中断数据 中断数据 型,0 或1
打开或关 Stat:状态,0 关闭,1 开启
void UART_irq(uint8 PortSe, 闭串行接 无 bps:波特率
【UART_irq】 uint8 PortNo, uint8 stat, uint32 收数据 xtal:晶振
bps, uint32 xtal, uint32 priority) 中断 priority:中断优先级
【Delay】 void Delay(uint32 count) 精确延时函数 无 单位:ms
void Time_irq(uint8 PortSe,uint8 type:定时器类型
【Time_irq】 PortNo,uint8 type,uint32 count, 定时中断 无 count:定时时间
uint32 xtal,uint8 priority) xtal:晶振
priority:中断优先级
【AD_In】 uint16 AD_In(uint8 PortSe,uint8 读取 成比例 Min:数模转换最小值
PortNo,uint8 Min,uint16 Max) 模拟量 返回 Max:数模转换最大值
函数名函数 void EINT_irq(uint8 PortSe,uint8 irmod:中断方式,1-边沿 【EINT_irq】 PortNo,uint8 irmod,uint8 polar,外部中断 无 polar: 0-下降沿1-上升沿;
uint8 priority) priority: 中断优先级
【DA_Out】 void DA_Out(uint8 PortSe,uint8 DA 输出函数 无 DaData:输出模拟电压
PortNo,uint16 DaData) 范围0~1023
26
机器人创新设计 机器人创新设计机器人创新设计
函数名 函数原型 功能 返回值 说明
void I2cInit(uint8 PortSe,uint8
【I2cInit】 PortNo,uint8 PortNo1,uint32 I2C 初始化 无 Fi2c:传输速率100000
Fi2c,uint8 priority)priority: 优先级
sla:器件从地址
【I2C_Read uint8 I2C_ReadNByte (uint8 sla, 从有子地 suba_type:从器件物理存 NByte】 uint32 suba_type, uint32 suba, 址器件读 读取的 储地址;
uint8 num) 取1 字节 数据 suba: 器件内部物理地址
数据 num: 1;
uint8 I2C_WriteNByte(uint8 sla, 向有子地 sla 器件从地址0xAo 【I2C_Write uint8 suba_type, uint32 suba, 址器件写 无 suba_type 子地址结构 NByte】 uint8 s, uint32 num) 入1 字节 suba 器件内部物理地址s:
数据 将要写入的数据
num:1
lib_irq.c
void __irq IRQ_UART0 (void) {
uint8 a=0; a=ReadPC();
/*启动串口中断后,在此编写串口中断程序,可调用串口接收数据a*/ IRQ_End(0x00000000); }
void __irq IRQ_Time0(void) {
/*启动定时器中断后,在此编写定时中断程序*/ }
void __irq IRQ_Time1(void) {
/*启动外部中断后,在此编写外部中断程序*/ }
27
机器人创新设计 机器人创新设计机器人创新设计
lib_arm.c
通用参数:
Num:序号
函数名 函数原型 功能 返回值 说明
【Initial_ARM】void Initial_ARM() 初始化 无 ARM 主控板端口初始化
【LedIn】 void LedIn(uint8 Num,uint8 Color) 输入 无 Color:0-灭,1-红色,2-蓝色
指示灯
【Input】 int Input(uint8 Num,uint8 Pin) 检测输入 0-失败 Pin:引脚号,1-s1,2-s2
1- 成功
【LedOut】 void LedOut(uint8 Num,uint8 Stat) 输出 无 Stat: 0-灭,1-亮
指示灯
【Servo】 void Servo(uint8 Num,uint16 Ang) 控制舵机 无 Ang:角度,0~180
【SendPC】 void SendPC(uint8 data) 发送串口数据 无 data:发送的数据值
【SetReadPC】 void SetReadPC(uint8 stat,uint8 设置接受 无 stat:状态,0-关闭,1-开启
priority) 串口数据 priority: 中断优先级
【ReadPC()】 uint8 ReadPC() 读取串口数据 无
【SetTimer】 void SetTimer(uint32 Timer) 设置定时中断 无 Timer:定时周期
【TimerOpen】 void TimerOpen() 定时中断初始化 无
【SetMemory】 void SetMemory(uint8 priority)启动存储芯片 无
【SaveData】 void SaveData(uint32 address, 存储数据 无 Address:地址(0~65535)
uint8 data) data:数据(0~255)
【LoadData】 uint8 LoadData(uint32 address) 读取数据 无 address:地址(0~65535)
28