智能汽车竞赛Infineon_TC264学习笔记

外部中断

GPIO外部中断配置

  1. tc264的GPIO外部中断,分为4组,每组对应上面一个中断函数,每组一次只能使用其中的一个PIN口。
/* GPIO外部中断 */
IFX_INTERRUPT(PIN_INT0_IRQHandler, PIN_INT0_VECTABNUM, PIN_INT0_PRIORITY);
IFX_INTERRUPT(PIN_INT1_IRQHandler, PIN_INT1_VECTABNUM, PIN_INT1_PRIORITY);
IFX_INTERRUPT(PIN_INT2_IRQHandler, PIN_INT2_VECTABNUM, PIN_INT2_PRIORITY);
IFX_INTERRUPT(PIN_INT3_IRQHandler, PIN_INT3_VECTABNUM, PIN_INT3_PRIORITY);
  • PIN_INTx_IRQHandler:中断服务函数名
  • PIN_INTx_VECTABNUM:选择中断的处理者(CPU0、CPU1、DMA)
  • PIN_INTx_PRIORITY:中断优先级(0-255),数字越大优先级越高,优先级0不可用

中断服务函数

void PIN_INTx_IRQHandler(void)
{
	//用户代码
}

初始化外部中断函数

void PIN_Exti(GPIO_Name_t pin, IfxPort_InputMode mode)
  • 配置好以上三个函数,最基本的GPIO中断就配置好了

串口(uart)

  1. ASC异步串行通信,可以作为UART和汽车LIN总线使用。(智能车LIN一般用不到这里主要用到UART)
  2. TC264有4路UART可以使用

串口初始化

  1. 初始化函数void UART_InitConfig(UART_RX_t RxPin, UART_TX_t TxPin, uint32 baudrate)
  • RxPin : 串口接收管脚
  • TxPin : 串口发送管脚
  • baudrate: 波特率
  1. 配置好初始化函数,结合中断、串口收发函数就可以完成基本的串口功能。

STM(系统定时器)

  1. STM作为系统级的全局定时器,可以为系统提供基础时钟,内有两个比较寄存器,可产生两个独立的中断,以满足需求
  2. TC264有两路STM(STM0/STM1),可提供4路中断

STM初始化函数

  1. void STM_InitConfig(STM_t stm, STM_Channel_t channel, uint32 us)
  • stm : STM标号(STM0 、 STM1)
  • channel : STM通道(STM_Channel_0 STM_Channel_1)
  • us : STM定时中断(时间)
  1. 配置好初始化函数就可以调用中断、延时等函数实现相关功能。

ADC

  1. 理论有8个转换器,可同步转换;每个转换8个通道,精度为8/10/12位。
  2. ADC端口AN可以作为输入口,不可作为输出口,与ARM单片机不同!

ADC初始化

  1. void ADC_InitConfig(ADC_Channel_t channel, unsigned long Freq_Hz)
  • channel ADC通道
  • Freq_Hz ADC通道采样频率
  1. 注意:ADC有三个模块,通道0-13、16-25、35-49分别属于这三个通道,
    这里使用扫描采样方式,因此如果一个ADC模块同时初始化了N个通道,则ADC实际采用率 = Freq_Hz / N
  2. 初始化后,结合unsigned short ADC_Read(ADC_Channel_t chn);ADC读取函数就可以实现基本的ADC值读取
  3. 使用这两个宏定义可以便捷获取ADC通道和对应的组
/* 获取ADC对应组 */
#define ADC_GetGroup(ADC_Channel)   ((ADC_Channel & 0xF000)>>12)
/* 获取ADC对应通道 */
#define ADC_GetChannel(ADC_Channel) ((ADC_Channel & 0x0F00)>>8)

编码器正交解码

  1. 通用定时器单元GPT1 和GPT2 模块具有非常灵活的多功能定时器结构,可用作定
    时、事件计数、脉宽测量、脉冲生成、倍频及其它用途。
    它们包括5 个16 位定时器,分到两个定时器GPT1 和GPT2 模块中。每个模块中的各
    个定时器可在许多不同的模式中独立运行,如门控定时器模式、计数模式、或者和同模块
    中其它定时器级联工作。每个模块具有输入/输出功能和与其相关的专用中断。
  • GPT1 模块有三个定时器/计数器:内核定时器T3 和两个辅助定时器T2、T4。最大的分辨
    率为fGPT/4。GPT1 模块的辅助定时器可为内核定时器有选择的配置成重载或捕捉寄存器。
  • GPT2 模块有两个定时器/计数器:内核定时器T6 和辅助定时器T5。最大的分辨率为fGPT/2。

初始化

  1. void ENC_InitConfig(ENC_InputPin_t InputPin, ENC_DirPin_t DirPin)
  • InputPin : ENC脉冲输入管脚 LQ_GPT12_ENC.h 中枚举体
  • DirPin : ENC方向管脚 LQ_GPT12_ENC.h 中枚举体
  1. int16_t ENC_GetCounter(ENC_InputPin_t InputPin),获取脉冲函数,使用前需要先初始化。

PWM(由GTM产生)

  1. 通用定时器模块(GTM)
  • 有4个ATOM子模块,每个子模块有8路可独立配置的通道
  • 有3个TIM子模块,每个子模块有8路可独立配置的通道
  • 有2个TOM子模块,每个子模块有16路可独立配置的通道
  1. 初始化PWMvoid ATOM_PWM_InitConfig(IfxGtm_Atom_ToutMap pin, uint32_t duty, uint32_t pwmFreq_Hz)
  • pin : PWM通道 IfxGtm_PinMap.h中 已经定义了对应的PWM管脚
  • duty : 占空比 * ATOM_PWM_MAX
  • pwmFreq_Hz : 频率
  1. 设置PWMvoid ATOM_PWM_SetDuty(IfxGtm_Atom_ToutMap pin, uint32_t duty, uint32_t pwmFreq_Hz)

TFT屏幕

  1. 初始化TFT:void TFTSPI_Init(unsigned char type);
  • type:0:横屏 1:竖屏
  1. 显示6x8像素点大小的数字void TFTSPI_P6X8NUM(unsigned char x, unsigned char y, unsigned short num, unsigned char num_bit,unsigned short word_color,unsigned short back_color)
  • x: 0 - 20 (行)
  • y: 0 - 19 (列)
  • num: 0 - 65535 要显示的数字
  • num_bit: 0 - 5 数字的位数
  • word_color:字体颜色
  • back_color:字体背景颜色
  1. TFTSPI_P8X16:显示8X16像素点大小单个字符、TFTSPI_P8X16Str:显示8X16像素点大小字符串
  • void TFTSPI_P8X16(unsigned char x, unsigned char y, unsigned char c_dat,unsigned short word_color,unsigned short back_color);
  • void TFTSPI_P8X16Str(unsigned char x, unsigned char y, char *s_dat,unsigned short word_color,unsigned short back_color);
  • 64
    点赞
  • 522
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值