资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,#,4.2 AVR单片机的,SPI接口,一、SPI接口:串行外设接口SPI 允许ATmega16 和外设或其他AVR 器件进行高速的同步数据传输。,1、ATmega16 SPI 的特点如下:,全双工,,3,线同步数据传输,SS#,SCK,MISO,MOSI;,主机或从机操作,LSB,首先发送或,MSB,首先发送,7,种可编程的比特率,传输结束中断标志,写碰撞标志检测,可以从闲置模式唤醒,2、SPI工,作,作过程,主机和,从,从机之,间,间的SPI,连,连接如,下,下图,所,所示。,系,系统,包,包括两,个,个移位,寄,寄存器,和,和一个,主,主机时,钟,钟发生,器,器。通,过,过将需,要,要的从,机,机的SS#,引,引脚,拉,拉低,,主,主机启,动,动一次,通,通讯过,程,程。主,机,机和从,机,机将需,要,要发送,的,的数据,放,放入相,应,应的移,位,位寄存,器,器。主,机,机在SCK,引,引脚上,产,产生时,钟,钟脉冲,以,以交换,数,数据。,主,主机的,数,数据从,主,主机的MOSI 移,出,出,从,从,从机的MOSI 移,入,入;从,机,机的数,据,据从从,机,机的MISO,移,移出,,,,从主,机,机的MISO,移,移入,。,。主机,通,通过将,从,从机的SS#,拉,拉高,实,实现与,从,从机的,同,同步。,配置为SPI,主,主机,时,时,SPI,接,接口,不,不自动,控,控制SS#,引,引脚,,,,必须,由,由用户,软,软件来,处,处理。,对,对SPI,数,数据,寄,寄存器,写,写入数,据,据即启,动,动SPI 时,钟,钟,将8 比,特,特的数,据,据移入,从,从机。,传,传输结,束,束后SPI,时,时钟停,止,止,传,输,输结束,标,标志SPIF,置,置位,。,。如果,此,此时SPCR,寄,寄存,器,器的SPI,中,中断使,能,能位SPIE,置,置位,,,,中断,就,就会发,生,生。主,机,机可以,继,继续往SPDR 写,入,入数据,以,以移位,到,到从机,中,中去,,或,或者是,将,将从机,的,的SS,#,# 拉,高,高以说,明,明数据,包,包发送,完,完成。,最,最后进,来,来的数,据,据将一,直,直保存,于,于缓冲,寄,寄存器,里,里。,配置为,从,从机时,,,,只要SS#,为,为高,SPI,接,接口,将,将一直,保,保持睡,眠,眠状态,,,,并保,持,持MISO,为,为三态,。,。在这,个,个状态,下,下软件,可,可以更,新,新SPI 数,据,据寄存,器,器SPDR,的,的内容,。,。即使,此,此时SCK,引,引脚有,输,输入时,钟,钟,SPDR,的,的数,据,据也不,会,会移出,,,,直至SS,被,被拉低,。,。一个,字,字节完,全,全移出,之,之后,,传,传输结,束,束标志SPIF置位,。,。如果,此,此时SPCR,寄,寄存器,的,的SPI中断,使,使能位SPIE置位,,,,就会,产,产生中,断,断请求,。,。在读,取,取移入,的,的数据,之,之前从,机,机可以,继,继续往SPDR 写,入,入数据,。,。最后,进,进来的,数,数据将,一,一直保,存,存于缓,冲,冲寄存,器,器里。,SPI,系,系统,的,的发送,方,方向只,有,有一个,缓,缓冲器,,,,而在,接,接收方,向,向有两,个,个缓冲,器,器。也,就,就是说,,,,在发,送,送时一,定,定要等,到,到移位,过,过程全,部,部结束,后,后才能,对,对SPI 数,据,据寄存,器,器执行,写,写操作,。,。而在,接,接收数,据,据时,,需,需要在,下,下一个,字,字符移,位,位过程,结,结束之,前,前通过,访,访问SPI,数,数据寄,存,存器读,取,取当前,接,接收到,的,的字符,。,。否则,第,第一个,字,字节将,丢,丢失。,工作于SPI,从,从机,模,模式时,,,,控制,逻,逻辑对SCK,引,引脚,的,的输入,信,信号进,行,行采样,。,。为了,保,保证对,时,时钟信,号,号的正,确,确采样,,,, SPI,时,时钟不,能,能超过fosc/4,。,。,SPI,使,使能,后,后,MOSI,、,、MISO、SCK,和,和SS#引,脚,脚的数,据,据方向,将,将按照,下,下表,所,所示自,动,动进行,配,配置。,3、SPI,控,控制寄,存,存器SPCR,(1)SPIE:使能SPI中断。,置,置位后,,,,只要SPI,状,状态,寄,寄存器SPSR 的SPIF位和,状,状态寄,存,存器SREG,的,的全,局,局中断,使,使能位I置位,,,,就会,引,引发SPI,中,中断。,(2)SPE:,使,使能SPI。SPE,置,置位将,使,使能SPI。,进,进行任,何,何SPI 操,作,作之前,必,必须置,位,位SPE。,(3)DORD:,数,数据,次,次序。DORD 置,位,位时数,据,据的LSB,首,首先发,送,送;否,则,则数据,的,的MSB 首,先,先发送,。,。,(4)MSTR:,主,主/,从,从选,择,择。MSTR,置,置位时,选,选择主,机,机模式,,,,否则,为,为从机,。,。如果MSTR,为,为“1,”,”,SS#配,置,置为输,入,入,但,被,被拉低,,,,则MSTR,被,被清,零,零,SPSR,的,的SPIF,置,置位,。,。用户,必,必须重,新,新设置MSTR 进,入,入主机,模,模式。,所,所以,,主,主机模,式,式下,,常,常用主,机,机的SS#控,制,制从机,的,的SS,#,#.,CPOL:时钟极,性,性。CPOL=0,,,,起始沿,:,:上升,沿,沿,结,束,束沿:,下,下降沿,;,;CPOL=1,,,,起始沿,:,:下升,沿,沿,结,束,束沿:,上,上降沿,;,;,CPHA:时钟相,位,位。,SPR1,SPR0:SPI时钟速,率,率选择。确定主,机,机的SCK,速,速率,,对,对从,机,机没有,影,影响。,4、SPI,状,状态寄,存,存器SPSR,SPIF:SPI中断标,志,志。串,行,行发送,结,结束后,,,,SPIF,置,置位。,。进入,中,中断服,务,务程序,后,后SPIF自,动,动清零,。,。或者,可,可以通,过,过先读SPSR,紧,接,接着访,问,问SPDR来,对,对SPIF清,零,零。,WCOL:,写,写碰撞,标,标志。,在,在发送,当,当中对SPI,数,数据,寄,寄存器SPDR写数,据,据将置,位,位WCOL。WCOL可以,通,通过先,读,读SPSR,,紧,紧接着,访,访问SPDR,来,来清,零,零。,SPI2X:SPI 倍,速,速。置,位,位后SPI,的,的速度,加,加倍。,若,若为主,机,机则SCK,频,频率可,达,达CPU 频,率,率的一,半,半。若,为,为从机,,,,最高,只,只能保,证,证fosc,/,/4。,数据寄,存,存器SPDR(,八,八位),:,:读/,写,写寄存,器,器,用,来,来在寄,存,存器文,件,件和SPI移,位,位寄存,器,器之间,传,传输数,据,据。写,寄,寄存器,将,将启动,数,数据传,输,输,读,寄,寄存器,将,将读取,寄,寄存器,的,的接收,缓,缓冲器,。,。,数据模,式,式:相,对,对于串,行,行数据,,,, SCK,的,的相位CPHA和极,性,性CPOL有4 种,组,组合。,每,每一位,数,数据的,移,移出和,移,移入发,生,生于SCK不,同,同的信,号,号跳变,沿,沿,以,保,保证有,足,足够的,时,时间使,数,数据稳,定,定。,设置,设置,设置,SPI,主,主机模,式,式下的,写,写、读,数,数据程,序,序:,.include,m16def.inc,.org,$,$00,rjmpmain,.org,$,$20,main:ldir16,high(ramend),outsph,r16,ldir16,low(ramend),outspl,r16,cli,sbiddrb,4,;,;ss#_pb4,sbiddrb,5,;,;mosi,_,_pb5,sbiddrb,7,;,;sck_pb7,cbiddrb,6,;,;miso,_,_pb6,cbiportb,4,sbiportb,6,ldir16,0,outspsr,r16,;,;SPI,速,速度不,倍,倍增,ldir16,0b01010001,;,;0x51,or,$,$51,outspcr,r16,ldir16,0b10101010,;,;0x55or,$,$55,SPI要发,送,送的数,据,据,outspdr,r16,loop:inr16,spsr,;,;读取,发,发送状,态,态,sbrsr16,7,;,;判断,发,发送是,否,否完成,rjmploop,inr16,spdr,loop1:sbrsr16,7,;,;,判,判断接,收,收是否,完,完成,rjmploop1,inr16,spdr,;,;读取,数,数据,wait:rjmpwait,二、16位定,时,时/计数器1(定,时,时(,事,事件管,理,理)、,波,波形产,生,生和信,号,号测量,),),1特点,:,:,真正的16位设计(即允许16位的PWM,),),2 个,独,独立的,输,输出比,较,较单元,双缓冲,的,的输出,比,比较寄,存,存器,一个输,入,入捕捉,单,单元,输入捕,捉,捉噪声,抑,抑制器,比较匹,配,配发生,时,时清除,寄,寄存器(自动重,载,载),无干扰,脉,脉冲,,相,相位正,确,确的PWM,可变的PWM周期,频率发,生,生器,外部事,件,件计数,器,器,4个独立,的,的中断,源,源(TOV1、OCF1A、OCF1B与ICF1),2、C,/,/T主,要,要功能,介,介绍,(1)T/C,时,时钟,源,源:可以来,自,自内部,,,,也可,来,来自外,部,部,由,位,位于T,/,/C控,制,制寄存,器,器B(TCCR1B,),) 的,时,时钟选,择,择位(CS12:0,),) 决,定,定。,(2),计,计数器,单,单元:16,位,位T/C 的,主,主要部,分,分是可,编,编程的16,位,位双向,计,计数器,单,单元。,(3),输,输入捕,捉,捉单元,:,:可用来,捕,捕获外,部,部事件,,,,并为,其,其赋予,时,时间标,记,记以说,明,明此时,间,间的发,生,生时刻,。,。外部,事,事件发,生,生的触,发,发信号,由,由引脚ICP1 输,入,入,也,可,可通过,模,模拟比,较,较器单,元,元来实,现,现。时,间,间标记,可,可用来,计,计算频,率,率、占,空,空比及,信,信号的,其,其它特,征,征,以,及,及为事,件,件创建,日,日志。,(,4)输,入,入捕捉,触,触发源,:,:输入捕,捉,捉单元,的,的主要,触,触发源,是,是ICP1。T/C1 还,可,可用模,拟,拟比较,输,输出作,为,为输入,捕,捕捉单,元,元的触,发,发源。,用,用户必,须,须通过,设,设置模,拟,拟比较,控,控制与,状,状态寄,存,存器ACSR,的,的模,拟,拟比较,输,输入捕,捉,捉位ACIC,来,来做,到,到这一,点,点。要,注,注意的,是,是,改,变,变触发,源,源有可,能,能造成,一,一次输,入,入捕捉,。,。因此,在,在改变,触,触发源,后,后必须,对,对输入,捕,捕捉标,志,志执行,一,一次清,零,零操作,以,以避免,出,出现错,误,误的结,果,果。,(5),噪,噪声抑,制,制器:通过一,个,个简单,的,的数字,滤,滤波方,案,案提高,系,系统抗,噪,噪性。,它,它对输,入,入触发,信,信号进,行,行4,次,次采样,。,。只有,当,当4,次,次采样,值,值相等,时,时其输,出,出才会,送,送入边,沿,沿检测,器,器。,(6),输,输出比,较,较单元,:,:16位,比,比较器,持,持续比,较,较TCNT1,与,与OCR1x,的,的内容,,,,一旦,发,发现它,们,们相等,,,,比较,器,器立即,产,产生一,个,个匹配,信,信号。,然,然后OCF1x 在,下,下一个,定,定时器,时,时钟置,位,位。如,果,果此时OCIE1x,=,=1,OCF1x,置,置位将,引,引发输,出,出比较,中,中断。,中,中断执,行,行时OCF1x 标,志,志自动,清,清零,,或,或者通,过,过软件,在,在其相,应,应的I,/,/O位,置,置写入,逻,逻辑1”,也,也可以,清,清零。,根,根据WGM13:0,与,与COM1x1:0 的,不,不同设,置,置,波,形,形发生,器,器用匹,配,配信号,生,生成不,同,同的波,形,形。波,形,形发生,器,器利用TOP,和,和BOTTOM,信,信号处,理,理在某,些,些模式,下,下对极,值,值的操,作,作。,输出比,较,较单元A 的,一,一个特,质,质是定,义,义T/C 的TOP,值,值(,即,即计,数,数器的,分,分辨率,),)。此,外,外,TOP,值,值还,用,用来定,义,义通过,波,波形发,生,生器产,生,生的波,形,形的周,期,期。,(7),强,强制输,出,出比较,:,:工作于,非,非PWM 模,式,式时,,可,可以通,过,过对强,制,制输出,比,比较位FOC1x,写,写”1,”,” 的,方,方式来,产,产生比,较,较匹配,。,。强制,比,比较匹,配,配不会,置,置位OCF1x,标,标志,,也,也不会,重,重载/,清,清零,定,定时器,,,,但是OC1x 引,脚,脚将被,更,更新,,好,好象真,的,的发生,了,了比较,匹,匹配一,样,样(COMx1:0,决,决定OC1x 是,置,置位、,清,清零,,还,还是交,替,替变化,),)。,(8),写,写TCNT1,操,操作,阻,阻止比,较,较匹配,:,:CPU,对,对TCNT1,寄,寄存器,的,的写操,作,作会阻,止,止比较,匹,匹配的,发,发生。,这,这个特,性,性可以,用,用来将OCR1x初,始,始化为,与,与TCNT1,相,相同,的,的数值,而,而不触,发,发中断,。,。,(9),比,比较匹,配,配输出,单,单元:比较匹,配,配模式,控,控制位COM1x1,:,:0,具,具有双,重,重功能,。,。波形,发,发生器,利,利用COM1x1:0 来,确,确定下,一,一次比,较,较匹配,发,发生时,的,的输出,比,比较OC1x,状,状态,;,; COM1x1:0 还,控,控制OC1x,引,引脚,输,输出的,来,来源。,(10,),)比较,输,输出模,式,式和波,形,形产生,:,:波形发,生,生器利,用,用COM1x1:0,的,的方,法,法在普,通,通模式,、,、CTC 模,式,式和PWM,模,模式下,有,有所区,别,别。对,于,于所有,的,的模式,,,,设置COM1x1,:,:0,=,= 0,表,表明,比,比较匹,配,配发生,时,时波形,发,发生器,不,不会操,作,作OC1x,寄,寄存器,。,。,(11,),)工作,模,模式工,作,作模式,:,:- T,/,/C,和,和输出,比,比较引,脚,脚的行,为,为-,由,由波形,发,发生模,式,式(WGM13:0,),) 及,比,比较输,出,出模式,(,(COM1x1:0,),) 的,控,控制位,决,决定。,比,比较输,出,出模式,对,对计数,序,序列没,有,有影响,,,,而波,形,形产生,模,模式对,计,计数序,列,列则有,影,影响。COM1x1,:,:0,控,控制PWM,输,输出是,否,否为反,极,极性。,非,非PWM 模,式,式时COM1x1:0控制,输,输出是,否,否应该,在,在比较,匹,匹配发,生,生时置,位,位、清,零,零,或,是,是电平,取,取反。,(12,),)普通,模,模式:为最简,单,单的工,作,作模式,。,。在此,模,模式下,计,计数器,不,不停地,累,累加。,计,计到最,大,大值后,(,(TOP =0xFFFF),由,由于数,值,值溢出,计,计数器,简,简单地,返,返回到,最,最小值0x0000,重,重新,开,开始。,在,在TCNT1,为,为零的,同,同一个,定,定时器,时,时钟里T/C,溢,溢出标,志,志TOV1置,位,位。此,时,时TOV1有,点,点象第17位,,,,只是,只,只能置,位,位,不,会,会清零,。,。但由,于,于定时,器,器中断,服,服务程,序,序能够,自,自动清,零,零TOV1,,因,因此可,以,以通过,软,软件提,高,高定时,器,器的分,辨,辨率。,在,在普通,模,模式下,没,没有什,么,么需要,特,特殊考,虑,虑的,,用,用户可,以,以随时,写,写入新,的,的计数,器,器数值,。,。,(13,),)CTC(,比,比较匹,配,配时清,零,零定时,器,器)模,式,式:在CTC 模,式,式里OCR1A 或ICR1 寄,存,存器用,于,于调节,计,计数器,的,的分辨,率,率。当,计,计数器,的,的数值TCNT1,等,等于OCR1A(WGM13:0,=,=4),或,或等于ICR1 (WGM13:0 =12,),) 时,计,计数器,清,清零。OCR1A,或,或ICR1,定,定义了,计,计数器,的,的TOP 值,,,,亦即,计,计数器,的,的分辨,率,率。这,个,个模式,使,使得用,户,户可以,很,很容易,地,地控制,比,比较匹,配,配输出,的,的频率,,,,也简,化,化了外,部,部事件,计,计数的,操,操作。,(14),快,快速PWM,模,模式:可用来,产,产生高,频,频的PWM,波,波形。,快,快速PWM模,式,式与其,他,他PWM模式,的,的不同,之,之处是,其,其单边,斜,斜坡工,作,作方式,。,。计数,器,器从BOTTOM计,到,到TOP,然,后,后立即,回,回到BOTTOM,重,重新开,始,始。对,于,于普通,的,的比较,输,输出模,式,式,输,出,出比较,引,引脚OC1x,在,在TCNT1,与,与OCR1x 匹,配,配时置,位,位,在TOP,时,时清,零,零;对,于,于反向,比,比较输,出,出模式,,,,OCR1x,的,的动,作,作正好,相,相反。,由,由于使,用,用了单,边,边斜坡,模,模式,,快,快速PWM,模,模式的,工,工作频,率,率比使,用,用双斜,坡,坡的相,位,位修正PWM,模,模式,高,高一倍,。,。此高,频,频操作,特,特性使,得,得快速PWM,模,模式,十,十分适,合,合于功,率,率调节,,,,整流,和,和DAC应用,。,。高频,可,可以减,小,小外部,元,元器件,(,( 电,感,感,电,容,容),的,的物理,尺,尺寸,,从,从而降,低,低系统,成,成本。,(15,),)输出,的,的PWM 频,率,率可以,通,通过如,下,下公式,计,计算得,到,到:,变量N,代,代表,分,分频因,子,子 (1、8、64、256,或,或1024,),)。,3.定,时,时器/,计,计数,器,器1寄,存,存器的,说,说明,(1),控,控制寄,存,存器A,TCCR1A,Bit7:6 COM1A1:0,:,:通道A的比较,输,输出模,式,式,Bit5:4 COM1B1:0,:,:通道B的比较,输,输出模,式,式,COM1A1,:,:0与COM1B1,:,:0分,别,别控制OC1A 与OC1B状态,。,。如果COM1A1,:,:0(COM1B1,:,:0),的,的一位,或,或两位,被,被写入,1”,,,,OC1A(OC1B),输,输出功,能,能将取,代,代I/O 端,口,口功能,。,。此时OC1A(OC1B,),)相应,的,的输出,引,引脚数,据,据方向,控,控制必,须,须置位,以,以使能,输,输出驱,动,动器。OC1A(OC1B,),) 与,物,物理引,脚,脚相连,时,时,COM1x1:0 的,功,功能由WGM13:0 的,设,设置决,定,定。,Bit3, FOC1A:通道A强制输,出,出比较,Bit2, FOC1B:通道B强制输,出,出比较,FOC1A/FOC1B只,有,有当WGM13:0,指,指定为,非,非PWM模式,时,时被激,活,活。为,与,与未来,器,器件兼,容,容,工,作,作在PWM,模,模式下,对,对TCCR1A 写,入,入时,,这,这两位,必,必须清,零,零。当FOC1A/FOC1B,位,位置1,,,,立,即,即强制,波,波形产,生,生单元,进,进行比,较,较匹配,。,。COM1x1:0,的,的设,置,置改变OC1A/OC1B 的,输,输出。,注,注意,FOC1A/FOC1B,位,位作为,选,选通信,号,号。COM1x1:0 位,的,的值决,定,定强制,比,比较的,效,效果。,在,在CTC 模,式,式下使,用,用OCR1A,作,作为TOP,值,值,FOC1A,/,/FOC1B,选,选通,即,即不会,产,产生中,断,断也不,好,好清除,定,定时器,。,。FOC1A,/,/FOC1B,位,位总,是,是读为0。,Bit1:0 WGM11,:,:0:波形发,生,生模式,这两位,与,与位于TCCR1B,寄,寄存,器,器的WGM13:2,相,相结,合,合,用,于,于控制,计,计数器,的,的计数,序,序列,计,数器计,数,数的上,限,限值和,确,确定波,形,形发生,器,器的工,作,作模式,(,( 见Table47),。,。T/C 支,持,持的工,作,作模式,有,有:普,通,通模式,(,( 计,数,数器),,,,比较,匹,匹配时,清,清零定,时,时器(CTC,),) 模,式,式,及,三,三种脉,宽,宽调制,(,(PWM),模,模式。,控制寄,存,存器TCCR1B:,Bit7, ICNC1:,入,入捕捉,噪,噪声抑,制,制器。置位将,使,使能输,入,入捕捉,噪,噪声抑,制,制功能,。,。此时,外,外部引,脚,脚ICP1,的,的输入,被,被滤波,。,。其作,用,用是从ICP1 引,脚,脚连续,进,进行4,次,次采,样,样。如,果,果4,个,个采样,值,值都相,等,等,那,么,么信号,送,送入边,沿,沿检测,器,器。因,此,此使能,该,该功能,使,使得输,入,入捕捉,被,被延迟,了,了4,个,个时钟,周,周期。,Bit6, ICES1:,输,输入捕,捉,捉触发,沿,沿选择,。,。该位选,择,择使用ICP1 上,的,的哪个,边,边沿触,发,发捕获,事,事件。ICES 为,0”,选,选择,的,的是下,降,降沿触,发,发输入,捕,捕捉;ICES1,为,为1”,选,选择的,是,是逻辑,电,电平的,上,上升沿,触,触发输,入,入捕捉,。,。按照ICES1,的,的设置,捕,捕获到,一,一个事,件,件后,,计,计数器,的,的数值,被,被复制,到,到ICR1,寄,寄存器,。,。捕获,事,事件还,会,会置为ICF1。如,果,果此时,中,中断使,能,能,输,入,入捕捉,事,事件即,被,被触发,。,。,当ICR1,用,用作TOP,值,值(,见,见TCCR1A 与TCCR1B,寄,寄存,器,器中WGM13:0,位,位的,描,描述),时,时,ICP1与输,入,入捕捉,功,功能脱,开,开,从,而,而输入,捕,捕捉功,能,能被禁,用,用。,Bit5, 保,留,留位。为保证,与,与将来,器,器件的,兼,兼容性,,,,写TCCR1B,时,时,该,位,位必须,写,写入0”。,Bit4:3 WGM13,:,:2:,波,波形,发,发生模,式,式。,Bit2:0 CS12:0:T/C,的,的时,钟,钟源选,择,择。,TCNT1H,与,与TCNT1L:TCNT1H,与,与TCNT1L组成,了,了T/C1的,数,数据寄,存,存器TCNT1。通,过,过它们,可,可以直,接,接对定,时,时器/,计,计数器,单,单元的16,位,位计数,器,器进行,读,读写访,问,问。,输出比,较,较寄存,器,器1A,OCR1AH,与,与 OCR1AL,输出比,较,较寄存,器,器1B,OCR1BH,与,与OCR1BL,该寄存,器,器中的16,位,位数据,与,与TCNT1,寄,寄存,器,器中的,计,计数值,进,进行连,续,续的比,较,较,一,旦,旦数据,匹,匹配,,将,将产生,一,一个输,出,出比较,中,中断,,或,或改变OC1x 的,输,输出逻,辑,辑电平,。,。,输入捕,捉,捉寄存,器,器1, ICR1H 与ICR1L:,当外部,引,引脚ICP1,(,(或T,/,/C1,的,的模拟,比,比较器,),)有输,入,入捕捉,触,触发信,号,号产生,时,时,计,数,数器TCNT1中的,值,值写入ICR1 中,。,。ICR1,的,的设定,值,值可作,为,为计数,器,器的TOP,值,值。,注意:,TCNT1、OCR1A/B与ICR1,是AVR CPU,通,通过8,位,位数据,总,总线可,以,以访问,的,的16,位,位寄存,器,器。读,写,写16,位,位寄存,器,器需要,两,两次操,作,作。,写16,位,位寄,存,存器时,,,,应先,写,写入该,寄,寄存器,的,的高位,字,字节;,而,而读16 位,寄,寄存器,时,时应先,读,读取该,寄,寄存器,的,的低位,字,字节。,中断屏,蔽,蔽寄存,器,器TIMSK:,Bit5, TICIE1:T/C1,输,输入捕,捉,捉中断,使,使能。当该位,被,被设为,1”,,,,且状,态,态寄存,器,器中的I 位,被,被设为,1”,时,时,T/C1,的,的输入,捕,捕捉中,断,断使能,。,。一旦TIFR 的ICF1 置,位,位,CPU,即,即开始,执,执行T,/,/C1,输,输入,捕,捕捉中,断,断服务,程,程序。,Bit4, OCIE1A:,输,输出,比,比较A 匹,配,配中断,使,使能。当该位,被,被设为,1”,,,,且状,态,态寄存,器,器中的I 位,被,被设为,1”,时,时,T/C1,的,的输出,比,比较A,匹,匹配,中,中断使,能,能。一,旦,旦TIFR,上,上的OCF1A 置,位,位,CPU,即,即开始,执,执行T,/,/C1,输,输出,比,比较A,匹,匹配,中,中断服,务,务程序,。,。,Bit3, OCIE1B:T/C1,输,输出比,较,较 B,匹,匹配,中,中断使,能,能。,当该位,被,被设为,1”,,,,且状,态,态寄存,器,器中的I 位,被,被设为,1”,时,时,,使,使能T,/,/C1,的,的输,出,出比较B 匹,配,配中断,使,使能。,一,一旦TIFR,上,上的OCF1B,置,置位,CPU,即,即开,始,始执行T/C1 输,出,出比较B 匹,配,配中断,服,服务程,序,序。,Bit2, TOIE1:T/C1 溢,出,出中断,使,使能。当该位,被,被设为,1”,,,,且状,态,态寄存,器,器中的I 位,被,被设为,”,”1”,时,时,T/C1 的,溢,溢出中,断,断使能,。,。一旦TIFR 上,的,的TOV1,置,置位,CPU 即,开,开始执,行,行T/C1,溢,溢出中,断,断服务,程,程序。,中断标,志,志寄存,器,器TIFR:, Bit5 ICF1:T/C1,输,输入捕,捉,捉标志,位,位。外部引,脚,脚ICP1,出,出现捕,捉,捉事件,时,时ICF1,置,置位。,此,此外,,当,当ICR1,作,作为计,数,数器的TOP,值,值时,,,,一旦,计,计数器,值,值达到TOP,,,, ICF1,也,也置,位,位。执,行,行输入,捕,捕捉中,断,断服务,程,程序时ICF1 自,动,动清零,。,。也可,以,以对其,写,写入逻,辑,辑1,”,” 来,清,清除该,标,标志位,。,。,Bit4, OCF1A:T/C1 输,出,出比较A,匹,匹配标,志,志位。当TCNT1,与,与OCR1A 匹,配,配成功,时,时,该,位,位被设,为,为1,”,”。强,制,制输出,比,比较(FOC1A),不,不会,置,置位OCF1A。执,行,行强制,输,输出比,较,较匹配A 中,断,断服务,程,程序时OCF1A,自,自动清,零,零。也,可,可以对,其,其写入,逻,逻辑1”,来,来清除,该,该标志,位,位。,Bit3, OCF1B:T/C1 输,出,出比较B,匹,匹配标,志,志位。,当TCNT1,与,与OCR1B 匹,配,配成功,时,时,该,位,位被设,为,为1,”,”。,强制输,出,出比较,(,(FOC1B,),) 不,会,会置位OCF1B。,执,执行强,制,制输出,比,比较匹,配,配B,中,中断服,务,务程序,时,时OCF1B,自,自动,清,清零。,也,也可以,对,对其写,入,入逻辑,1”,来,来清,除,除该标,志,志位。,Bit2, TOV1,:,: T,/,/C1,溢,溢出,标,标志。,该位的,设,设置与T/C1 的,工,工作方,式,式有关,。,。工作,于,于普通,模,模式和CTC,模,模式,时,时,T,/,/C1,溢,溢出,时,时TOV1置,位,位。对,工,工作在,其,其它模,式,式下的TOV1 标,志,志位置,位,位,执,行,行溢出,中,中断服,务,务程序,时,时OCF1A,自,自动,清,清零。,也,也可以,对,对其写,入,入逻辑,“,“1”,来,来清,除,除该标,志,志位。,PWM,下,下程序,举,举例:,1.CTC模,式,式,2.快,速,速PWM模式,3.相,位,位、频,率,率可调PWM,模,模式,
展开阅读全文