ATXmega128A1笔记

更新时间:2023-09-11 13:44:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

ATXmega128A1笔记

1.CNT=CCABUF时 标志位置位,同时CAA=CAABUF 2.系统时钟设置步骤:

1)选择时钟源,使能OSC。 2)等待时钟稳定。

3)将时钟设为系统时钟。CLK 4)关闭其他时钟源。

3.PLL初始化步骤:

1)选择时钟源,如果选择的是32M的,必须先对其进行4分频,然后把他选定为系统时钟, 2)倍频系数设置 3)PLL使能 4)选择系统时钟

例如: 选择32M内部时钟源,倍频系数为6,系统时钟为48M

CLKSYS_Enable( OSC_RC32MEN_bm );

do {} while ( CLKSYS_IsReady( OSC_RC32MRDY_bm ) == 0 );

CLKSYS_Prescalers_Config( CLK_PSADIV_4_gc, CLK_PSBCDIV_1_1_gc ); CLKSYS_Main_ClockSource_Select(CLK_SCLKSEL_RC32M_gc);

CLKSYS_Disable( OSC_PLLEN_bm );

CLKSYS_PLL_Config( OSC_PLLSRC_RC32M_gc, 6 );

CLKSYS_Enable( OSC_PLLEN_bm );

CLKSYS_Prescalers_Config( CLK_PSADIV_1_gc, CLK_PSBCDIV_1_1_gc ); CLKSYS_Main_ClockSource_Select( CLK_SCLKSEL_PLL_gc );

do {} while ( CLKSYS_IsReady( OSC_PLLRDY_bm ) == 0 );

4. 事件系统

就像人体的条件反射能力般,创新的XMEGA事件系统可在不使用CPU或DMA资源的情况下完成外设之间的通信,这可确保获得100% 可以预计和快速的响应。多达8个在外设中同时发生的事件或中断条件能够自动在其它外设中引发响应。这个事件系统消除了因多中断和/或频繁触发中断造成的瓶颈效应,事件处理无需运用任何软件,而且关键任务的延迟时间保证较任何中断响应时间都要短。

5.定时器中断初始化

1)设置周期,对寄存器PER进行设置。

2)设置分频系数, 对寄存器CTRLA进行设置。

3)溢出中断优先级设置, 对寄存器INTCTRLA进行设置。 4)中断优先级寄存器使能,对寄存器PMIC进行设置。 5)系统总中断使能。 例如:

——by 厦门大学

关公骑木马

TCC0.PER = 0xFFFF; //周期

TCC0.CTRLA =0X01; //分频系数为1

TCC0_INTCTRLA=0x01; //定时器溢出优先级设置,低级

PMIC.CTRL = 0X01; //中断优先级使能,与INTCTRLA寄存器的设置相对应,若INTCTRLA设置为

高优先级,这该处也应该设置为高优先级

Sei(); //系统总中断使能 while(1){}

6.比较器中断初始化

1)设置周期,对寄存器PER进行设置。

2)设置分频系数, 对寄存器CTRLA进行设置。

3)对比较寄存器CCXBUFF赋初值,即为要进行比较的数,该缓冲寄存器的数会更新到相应的CCX

寄存器中,如果CNT计数到该值,则对应标志位置1 4)比较中断优先级设置,对寄存器CTRLB进行设置 5)中断优先级寄存器使能,对寄存器PMIC进行设置。

6)系统总中断使能。 例如:

TCC0.PER = 0xFFFF; TCC0_CCABUF=0XFF00; TCC0.CTRLB |= TC0_CCAEN_bm; TCC0.CTRLA=0x01; TCC0_INTCTRLB=0x03; PMIC.CTRL = 0X04; sei(); while(1){}

——by 厦门大学

关公骑木马

本文来源:https://www.bwwdw.com/article/g64h.html

Top