一、目的:
要用单片机实现VGA功能。
二、分析:
VGA需要两根时钟信号线,分别为Hsync和Vsync。
在800*600的显示模式下,Hsync周期为26.4us,Vsync周期为16.579ms。
Hsync同步脉冲时间为3.2us,Vsync同步脉冲时间为0.106ms,而且都是高电平有效。
在AT32F403A里面,主从时钟的可以配置为主时钟输出时钟,从时钟使用主时钟输出的时钟做为计数脉冲。
三、代码
1、主时钟的配置为:
void tmr_primary_mode_select(tmr_type *tmr_x, tmr_primary_select_type primary_mode)
tmr_type可以选择:
TMR1, TMR2, TMR3, TMR4, TMR5, TMR6, TMR7, TMR8
tmr_primary_select_type可以选择:
TMR_PRIMARY_SEL_RESET* - TMR_PRIMARY_SEL_ENABLE* - TMR_PRIMARY_SEL_OVERFLOW* - TMR_PRIMARY_SEL_COMPARE* - TMR_PRIMARY_SEL_C1ORAW* - TMR_PRIMARY_SEL_C2ORAW* - TMR_PRIMARY_SEL_C3ORAW* - TMR_PRIMARY_SEL_C4ORAW
2、从时钟的配置为:
/*先择哪一个主时钟的输出做为输入时钟*/void tmr_trigger_input_select(tmr_type *tmr_x, sub_tmr_input_sel_type trigger_select)/*子时钟模式,可以是编码,挂起,触发等等。这里选择TMR_SUB_EXTERNAL_CLOCK_MODE_A*/void tmr_sub_mode_select(tmr_type *tmr_x, tmr_sub_mode_select_type sub_mode)/*开启同步模式*/void tmr_sub_sync_mode_set(tmr_type *tmr_x, confirm_state new_state)
最后别忘记开起时钟
tmr_counter_enable(TMR3, TRUE);