ARM手记之芯唐M0系列
计数器(CNR)为0,当中断条件发生。在中断内关闭PWM定时器(PCR的CHxEN位). (推荐)
方式3:直接关闭PWM定时器(PCR的CHxEN位). (不推荐,因为禁止CHxEN会立即停止PWM输出信号,导致PWM占空比改变,可能引起电机的损坏)
捕捉开始步骤:
1. 配置时钟选择(CSR)
2. 配置预分频(PPR)
3. 配置通道使能,上升/下降沿中断使能以及输入信号反向打开/关闭 (CCR0, CCR1)
4. 配置PWM计数器寄存器 (CNR)
5. 配置捕捉输入使能寄存器 (CAPENR)
6. 配置相应的GPIO管脚用于PWM功能 (GPA_MFP)
7. 配置相应的GPIO管脚于输入模式S (GPIOA_OMD)
8. 使能PWM定时器(PCR)
11.看门狗定时器WDT
看门狗定时器包含一个18位的自动运行的计数器,可编程其定时溢出间隔。设置WTE(WDTCR[7])使能看门狗定时器和WDT计数器开始计数. 当计数器达到选择的定时溢出间隔,看门狗定时器中断标志WTIF被立即置位,并请求WDT中断(如果看门狗定时器中断使能位WTIE置位),同时,紧接着会有一个指定周期(1024*Twdt)延时,用户必须在指定周期内设置WTR(WDTCR[0]) (看门狗定时器复位)为高,重置18位WDT计数器,防止CPU复位,WTR在WDT计数重置后自动由硬件清零。
通过设置WTIS(WDTCR[10:8])选择8个定时溢出间隔(2^4~2^18),如果在特殊延迟时间终止后,如果WDT计数没有被清零,看门狗定时将置位看门狗定时器重置标志(WTRF)为高并使CPU复位. 这个复位将持续63个WDT时钟,然后CPU重启,并从复位向量(0x0000 0000)执行程序,WTRF将不被看门狗复位清零,用户可用软件拉低WTFR。
12.模拟数字转换(ADC)
NUC1XX 系列包含 一个12-bit 8通道逐次逼近式 模拟 – 数字转换器 (SAR A/D converter)。A/D 转换器支持 三种操作模式: 单一、单周期扫描 和连续扫描模式。开始A/D 转换可软件设定和外部STADC/PB.8 pin开启。
当改变运行模式或模拟输入通道使能时, 为了防止错误的操作, 软件需清 ADST 位为 0 (ADCR register). A/D 转换将停止 并进入idle 模式.
A/D转换器有3个中断源:A/D 转换结束时ADF(ADSR寄存器)位被置1;当A/D转换结果同ADCMPR0/1寄存器设定值相匹配时,CMPF0/1会被置1;当ADF、CMPF0、CMPF1其中一个标志被置1,且其相应的ADIE 位(ADCR 寄存器)及CMPIE(ADCMPR0/1寄存器)置1时,将产生 ADINT 中断请求。
1)特征
模拟输入电压: 0~Vref (Max to 5.0V).
12位分辨率和10位精确度保证。
多达 8 路单端模拟输入通道或4路差分输入。
最大 ADC 时钟频率 16MHz/20MHz。ADC时钟频率= (ADC clock source frequency) / (ADC_N+1);
高达600K/1M SPS 转换速率, 转换时间少于 1us.
转换结果可和指定的值相比较 当转换值和设定值相匹配时,用户设定产生中断请求.
通道7支持3输入源:外部模拟电压, 内部基准电压和内部温度传感器输出.
支持自身校正功能减少转换的误差,用户可写1到CALEN 位(ADCALR 寄存器)使能自身校正功能, 当内部校正完成CAL_DONE为高。
2)单触发模式
在单触发模式下, A/D 转换仅仅在指定的单一通道中执行一次,运作流程如下:
1. 当 ADCR 的ADST 置位开始A/D 转换,可通过软件或外部触发输入.
2. 当 A/D 转换完成,转换值将存储在与通道相对应的A/D数据寄存器中.
3. A/D 转换完成, ADSR 的ADF 位置位. 若此时ADIE 位置位, 将产生ADINT 中断请求.
4. A/D 转换期间,ADST 位维持为1,A/D 转换结束,ADST 位自动清 0,A/D 转换器进入idle 模式。ADST清0后,至少要等一个ADC时钟,才能再将ADST位置1,否则A/D 转换器可能无法运作。
3)单周期扫描模式
在单周期模式下,ADC会对所有指定的通道进行一次采样和转换,且从编号最小的通道开始运作,具体流程如下:
1. 软件置位 ADCR 寄存器的ADST 位或外部触发输入置位,A/D 转换从最小编号的通道开始。
2. 每路 A/D 转换完成后, A/D 转换数值将装载到相应数据寄存器中。
3. 当被选择的通道数都转换完成后,ADF 位(ADSR 寄存器)置位。若此时 ADIE 置位, 将产生 ADINT 中断请求。
4. A/D 转换结束, ADST位自动清0,A/D 转换器进入idle 模式。若在转换过程中ADST被清0,则无法保证存储在数据寄存器中的值之正确性。ADST清0后,至少要等一个ADC时钟,才能再将ADST位置1,否则A/D 转换器可能无法运作。
4)连续转换模式
在连续模式下, 可通过设定CHEN 位 ADCHER 寄存器 (maximum 8 channels for ADC) 使能 A/D 转换.运作流程如下:
1. 软件置位 ADCR 寄存器的 ADST 位或外部触发输入置位,A/D 转换从最小
ARM芯唐M0系 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)