极客良品 -CC3200xx wifi 学习板 -PWM 实验 CC32xx-PWM 实验 片内定时器功能介绍 ( 使用的 mcu 外设和上一个节内容是一样的 ) 该 CC320 包含 4 个 32 位用户可编程通用定时 (GPTA0~3 或有文档标注为 TIMERA0~3),GPT 可以用于对具有

Similar documents
Microsoft Word - MAN2011A_CH_RTT.doc

25.( 0 在 進 行 水 溫 與 溶 解 量 的 實 驗 時, 每 一 匙 糖 都 要 刮 平 的 主 要 目 的 為 何? 1 避 免 一 次 溶 解 太 多 糖 2 可 以 增 加 溶 解 糖 的 次 數 3 控 制 加 入 的 每 一 匙 糖 都 一 樣 多 4 可 以 減 少 溶 解 量

Microsoft Word - MSP430 Launchpad 指导书.docx

外围器件-new.cdr

bingdian001.com

目录

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

第10章:CCP捕捉/比较/脉宽调制

51 C 51 isp 10 C PCB C C C C KEIL

2

CC213

C语言的应用.PDF

微雪电子 Open103Z 实验手册 Open103Z 实验手册 目录 准备工作 BitIO-Pushbutton... 3 ADC+DMA... 4 CAN-LoopBack... 5 DAC... 6 DS18B GPIO_Key_L

2 12

P4i45GL_GV-R50-CN.p65

Microsoft Word - MAN2023A_CH_APPONE.doc

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha

学习MSP430单片机推荐参考书

江 西 : 失 信 被 执 行 人 曝 光 台 写 入 两 会 报 告 摘 要 1 月 27 日, 江 西 省 十 二 届 人 大 五 次 会 议 举 行 第 二 次 全 体 会 议, 江 西 省 高 级 人 民 法 院 院 长 张 忠 厚 向 大 会 作 江 西 省 高 级 人 民 法 院 工 作

形 式 审 查 不 通 过, 将 说 明 原 因 并 予 退 回, 不 予 重 新 修 改 提 交 ( 形 式 审 查 常 见 主 要 问 题 参 考 附 件 3) ( 三 ) 申 请 人 下 载 打 印 网 上 状 态 为 请 交 纸 质 材 料 至 窗 口 受 理 的 申 报 书, 报 送 项

撤 离 你 听 到 了 吗? 它 们 已 经 进 了 墙 里 边 了 那 些 金 属 的 撞 击 声 在 狂 风 之 中 很 难 听 清, 但 断 然 不 会 有 错 围 坐 在 桌 边 的 四 人 靠 得 更 紧 了 些, 并 不 是 因 为 害 怕, 而 是 为 了 取 暖 你 们 觉 得 呢?

Microsoft Word - 实用案例.doc

微雪电子 Open407V-D 实验手册 Open407V-D 实验手册 目录 准备工作... 2 ADC+DMA... 2 CAN1 TO CAN2-Normal... 3 DCMI_OV DCMI_OV I2C... 6 L

Microsoft Word 養生與保健_中山大學_講義


萬里社區老人健康照護手冊

Microsoft Word - 強制汽車責任保險承保及理賠作業處理辦法 doc

Microsoft Word - 06.Understanding of Pregnancy and Birth.doc

附 件 一 : 办 理 集 中 式 银 期 转 账 业 务 网 点 名 单 序 号 地 区 网 点 名 称 地 址 联 系 人 电 话 23 工 商 银 行 安 徽 省 铜 陵 百 大 支 行 铜 陵 市 长 江 东 路 50 号 鲁 桂 珍 工 商 银 行 安 徽

2. 二 年 級 吳 毓 秀 老 師 : 感 謝 午 餐 公 司 平 時 均 能 準 時 送 餐, 但 希 望 能 不 要 使 用 加 工 品, 且 學 生 反 映 希 望 能 多 加 蛋 品 的 食 物 3. 三 年 級 柯 阿 青 老 師 : 雞 肉 有 血 水 味, 請 午 餐 公 司 能 調

,,,,,,, (,, ),,,,,,,,,,,,,,, ,,, 4 11,, ( ),,,, ( ), :, ( ),,, 1995, 66 ; ( ),, 1996, , 3-4,,

2002 4,,, 1941,,,,,,,,,,,,,,,,,, : ;:, 1991,

(➂)11. 炎 炎 夏 日, 即 使 下 起 滂 沱 大 雨, 都 消 除 不 了 令 人 心 煩 的 暑 氣 這 句 話 主 要 想 表 達 什 麼? ➀ 夏 日 裡 經 常 下 著 滂 沱 大 雨, 令 人 心 煩 ➁ 下 著 滂 沱 大 雨 的 日 子, 可 以 消 除 暑 氣 ➂ 夏 日

範本檔

高雄市立五福國民中學九十四學年度第一學期第三次段考二年級本國語文學習領域試題卷

人 物 春 秋 杨 永 泰 将 其 削 藩 策 略 概 括 为 : 以 经 济 方 法 瓦 解 冯 玉 祥 的 第 二 集 团 军, 以 政 治 方 法 解 决 阎 锡 山 的 第 3 集 团 军, 以 军 事 方 法 解 决 李 宗 仁 的 第 四 集 团 军, 以 外 交 方 法 对 付 张 学

台北老爺校外實地參訪結案報告


糖尿病食譜




第 一 节 认 识 自 我 的 意 义 一 个 人 只 有 认 识 自 我, 才 能 够 正 确 地 认 识 到 自 己 的 优 劣 势, 找 出 自 己 的 职 业 亮 点, 为 自 己 的 顺 利 求 职 推 波 助 澜 ; 一 个 人 只 有 认 识 自 我, 才 能 在 求 职 中 保 持

Microsoft Word - ??山

Microsoft Word - 助理人員教育訓練-會計室.docx

关于规范区委、区委办公室发文

目 录 第 一 部 分 档 案 局 概 况 一 主 要 职 责 二 部 门 决 算 单 位 构 成 第 二 部 分 档 案 局 2016 年 度 部 门 预 算 表 一 2016 年 度 市 级 部 门 收 支 预 算 总 表 二 2016 年 度 市 级 部 门 支 出 预 算 表 三 2016

2015 年 度 收 入 支 出 决 算 总 表 单 位 名 称 : 北 京 市 朝 阳 区 卫 生 局 单 位 : 万 元 收 入 支 出 项 目 决 算 数 项 目 ( 按 功 能 分 类 ) 决 算 数 一 财 政 拨 款 一 一 般 公 共 服 务 支 出 二

JLX

标题

untitled

Microsoft Word - mcu-an z-10.doc

DVK530/531扩展板

版权声明 龙芯 免责声明 据 龙芯 2 Building No.2, Loongson Industrial Park, Zhongguancun Environmental Protection Park (Tel) (Fax)

Microsoft Word 箕æ−¥ï¼‹å®ı稿;

98年度即測即評學科測試與即測即評即發證技術士技能檢定簡章

<4D F736F F D C2E0BEC7A6D2A4ADB14DB0EAA4E52DB8D5C344A8F72E646F63>

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

老一輩的人常說”小孩就是該養得白白胖胖的才健康”,而且認為小時候胖沒關係,等長大身高一拉長,自然就不胖了

Microsoft Word - 正文.doc


STEP-MXO2 V2硬件手册

课外创新研学项目 构想、设计与实现

华恒家庭网关方案

Microsoft Word - mcu-an z-10.doc

untitled

untitled

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

F²MC-8L/16LX/FR FAMILY


Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.07.doc

Microsoft Word - IRFWX-A124_A_SM59D03G2_SM59D04G2_PCA_ APN_SC_.doc

KL DSC DEMO 使用说明

( RMB100,000)

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf ("%d", & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf ("%d %d

FM1935X智能非接触读写器芯片

128K Flash EPROM 的程序?\(Bank=64K\) 切?

Microsoft Word - SC16C550应用实例.doc

从MCS51向AVR的快速转换.PDF

2 Stradivarius

Timer

Microsoft Word - LMB402CBC-AppNote-V0.1.doc

Linux内核的移植技术剖析

Simulator By SunLingxi 2003

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

新・解きながら学ぶC言語

C/C++ - 函数

1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F B. 1(VCC/GND) SH79F6431 C. VDDIO SH79F6431 P4 P5 P0.6 P0.7 VDDIO VDDIO=5V D. 2 V 1.0

untitled

新版 明解C言語入門編

PROTEUS VSM

untitled

新版 明解C++入門編

775i65PE_BIOS_CN.p65

C/C++ - 文件IO

P4VM800_BIOS_CN.p65

Leica S S 2

6020

Transcription:

CC32xx-PWM 实验 片内定时器功能介绍 ( 使用的 mcu 外设和上一个节内容是一样的 ) 该 CC320 包含 4 个 32 位用户可编程通用定时 (GPTA0~3 或有文档标注为 TIMERA0~3),GPT 可以用于对具有定时器复用功能的管脚进入的外部事件进行计数或计时, 也可以在输出引脚上产生脉冲宽度调试 (PWM) 信号 每个 GPT 模块包含两个 16 位定时 / 计数器 (TimerA 和 TimerB), 可以作为定时器或事件计数器独立工作, 也可以作为单独的一个 32 位定时器工作 GPT 模块具有如下特性 : 操作模式 16 位或者 32 位可编程单次定时器 16 位或者 32 位可编程周期定时器 16 位通用定时器, 带 8 位预分频器 16 位输入边沿计数货时间捕捉模式, 带 8 位预分频器 16 位脉冲宽度调制 (PWM) 模式, 带 8 位预分频器和软件可编程输出反相 向上或向下计数 16 个 16 位 /32 位捕捉比较 PWM(CCP) 引脚 可以确定产生定时器中断到进入中断服务程序 (ISR) 的时间 可以触发使用 DMA 的高效传输 系统时钟运行 (80MHz) 电路分析这个应用程序是使用 CC3200 GPTA0A 分别通过 GPIO_09(PIN_64) 和 GPIO_11(PIN_02) 控制核心板上的指示 LED 和学习板上的用户指示 LED 闪烁, 闪烁周期核心板上 2s, 学习板上是 1s 图 1 核心板板上 LED 电路 图 2 学习板板上的 LED 电路 表 1 外设输出对应硬件信号引脚 GPIO 功能引脚名称引脚位置 核心板 LED 控制 GPIO09 PIN64 学习板 LED1 控制 CPIO10 PIN1

学习板 LED2 控制 CPIO11 PIN2 OLED 接口电路 : 图 2 OLED 接口电路 表 2 外 OLED 对应硬件信号引脚 OLED 功能引脚名称引脚位置 OLED_CS GPIO22 PIN15 OLED_MOSI GPIO07 PIN62 OLED_CLK GPIO08 PIN63 程序分析 : GPT_timer 项目包含下列 5 个程序文件 mian.c: 主程序文件 pinmux.c:pinmux 应用程序生成的 GPIO 引脚配置程序文件 startup_ewarm,c:iar 启动程序文件 程序流程图程序主流程 : 开始 初始化开发板 BoardInit(); GPIO 引脚复用配置 PinMuxConfig(); 初始化 oled 和串口 OLED_Init(); InitTerm(); 初始化 PWM InitPWMModules(); 1 while(1) ;

主循环流程 : 循环计数 =0 循环计数 <255 No Yes 更新 PMW 占空比 UpdateDutyCycle(); 延时 初始化 PWM 流程 : 初始化 PMW 允许定时器时钟 MAP_PRCMPeripheralClkEnable(); 设置 PWM 模式 SetupTimerPWMMode(); 允许定时器 MAP_TimerEnable(); 返回 更新 pwm 流程 : 更新 PWM 占空比 设置定时器匹配 MAP_TimerMatchSet(); 返回 设置 PWM 模式 :

设置 PWM 模式 配置定时器中断 MAP_TimerConfigure(); 设置预分频 MAP_TimerPrescaleSet(); 控制输出电平 MAP_TimerControlLevel(); 设置定时器初始值 MAP_TimerLoadSet(); 设置定时器匹配 MAP_TimerMatchSet( 返回 编程步骤 运行 TI PinMux 软件, 选择 CC3200 设备, 开始配置 选择 GPIO 项目勾选相应的引脚并选择对应的状态

生成对应的 C 文件和 H 文件 将生成的 pin_mux_config.c 和 pin_mux_config.h 加载到 CC3200 的模板 IAR 程序工程中 在 IAR 中完成对对函数的调用和编程思路的具体操作 程序具体分析 main 函数编写过程, 就是将程序编程思路过程 C 语言具体化, 在 main 函数中初始化各种外设, 同时包括设置定时器中断和启动定时器, 内容如下 : void main() int iloopcnt; BoardInit(); 板子初始化 PinMuxConfig(); 引脚初始化 InitTerm(); 初始化串口 DisplayBanner(APP_NAME); 串口输出名称 OLED_Init();OLED 初始化 OLED_DispStr(0, 0, " 源地仪器 PWM", &tfont12); InitPWMModules(); while(1) 改变定时器占空比从而控制三个 LED 亮度, 使用一个延时看出变化效果

for(iloopcnt = 0; iloopcnt < 255; iloopcnt++) UpdateDutyCycle(TIMERA2_BASE, TIMER_B, iloopcnt); UpdateDutyCycle(TIMERA3_BASE, TIMER_B, iloopcnt); UpdateDutyCycle(TIMERA3_BASE, TIMER_A, iloopcnt); MAP_UtilsDelay(100000); MCU 初始化子函数, 在这里因为要用到延迟功能, 所以要进行中断向量表的设置, 并且要运行处理器中断, 具体函数如下 : MCU 初始化 static void BoardInit(void) MAP_IntVTableBaseSet((unsigned long)& vector_table); 设置中断向量表 MAP_IntMasterEnable(); 运行处理器中断 MAP_IntEnable(FAULT_SYSTICK); 允许 SYS Tick 中断,FAULT_SYSTICK 的中断号 15 PRCMCC3200MCUInit(); 初始化 MCU 再使用串口之前需要对其引脚进行硬件初始化, 使之具备相应的物理特性, 引脚初始化程序如下 : Enable Peripheral Clocks MAP_PRCMPeripheralClkEnable(PRCM_UARTA0, PRCM_RUN_MODE_CLK); Configure PIN_55 for UART0 UART0_TX MAP_PinTypeUART(PIN_55, PIN_MODE_3); Configure PIN_57 for UART0 UART0_RX MAP_PinTypeUART(PIN_57, PIN_MODE_3); 关于串口的参数设计程序如下 : void InitTerm() #ifndef NOTERM MAP_UARTConfigSetExpClk(CONSOLE,MAP_PRCMPeripheralClockGet(CONSOLE_PERIPH), UART_BAUD_RATE, (UART_CONFIG_WLEN_8 UART_CONFIG_STOP_ONE UART_CONFIG_PAR_NONE)); #endif Errorlog = 0; OLED 初始化状态, 程序如下 : void OLED_Init(void) OLED_InitHard(); /* 初始化 OLED 硬件 */ OLED_ClrScr(0x00); /* 清屏,0x00 表示黑底 ; 0xFF 表示白底 */ /* 设置字体参数 */ tfont16.usfontcode = FC_ST_16; /* 字体代码 16 点阵 */ tfont16.ustextcolor = 1; /* 字体颜色 0 或 1 */ tfont16.usbackcolor = 0; /* 文字背景颜色 0 或 1 */ tfont16.usspace = 0; /* 文字间距, 单位 = 像素 */ tfont12.usfontcode = FC_ST_12; /* 字体代码 12 点阵 */

tfont12.ustextcolor = 1; /* 字体颜色 0 或 1 */ tfont12.usbackcolor = 0; /* 文字背景颜色 0 或 1 */ tfont12.usspace = 1; /* 文字间距, 单位 = 像素 */ 通过 OLED 显示应用名称 : OLED_DispStr(0, 0, " 源地仪器 pwm", &tfont12); 更新占空比子函数 : /*****************************************************************************/ 程序 : 名称更新占空比 参数 :ulbase 定时器的基地址 参数 :ultimer 定时器制定 (TIMER_A or TIMER_B) 参数 :uclevel PWM 占空比设置 (0:255) 功能 : 指定的定时器更新相应的占空比的数值 返回 : 无 /*****************************************************************************/ void UpdateDutyCycle(unsigned long ulbase, unsigned long ultimer, unsigned char uclevel) 新的匹配值在下个周期生效 MAP_TimerMatchSet(ulBase,ulTimer,(ucLevel*DUTYCYCLE_GRANULARITY)); 初始化 PWM 子函数 : **************************************************************************** 初始化定时器 参数 : 无 功能介绍 : 1. 分配 TIMERA2 (TIMER B) 到核心板上指示灯 GPIO09 PIN64 PWM5 2. 分配 TIMERA3 (TIMER B) 到学习底板指示灯 1 GPIO10 PIN1 PWM6 3. T 分配 IMERA3 (TIMER A) 到学习底板指示灯 2 GPIO11 PIN2 PWM7 返回 : 无. **************************************************************************** void InitPWMModules() 初始化定时器产生 PWM 输出 MAP_PRCMPeripheralClkEnable(PRCM_TIMERA2, PRCM_RUN_MODE_CLK); MAP_PRCMPeripheralClkEnable(PRCM_TIMERA3, PRCM_RUN_MODE_CLK); 1. 分配 TIMERA2 (TIMER B) 到核心板上指示灯 GPIO09 PIN64 --> PWM_5 SetupTimerPWMMode(TIMERA2_BASE, TIMER_B, (TIMER_CFG_SPLIT_PAIR TIMER_CFG_B_PWM), 1); 2. 分配 TIMERA3 (TIMER B) 到学习底板指示灯 1 GPIO10 PIN1 PWM6 SetupTimerPWMMode(TIMERA3_BASE, TIMER_A, (TIMER_CFG_SPLIT_PAIR TIMER_CFG_A_PWM TIMER_CFG_B_PWM), 1); 3. T 分配 IMERA3 (TIMER A) 到学习底板指示灯 2 GPIO11 PIN2 PWM7 SetupTimerPWMMode(TIMERA3_BASE, TIMER_B, (TIMER_CFG_SPLIT_PAIR TIMER_CFG_A_PWM TIMER_CFG_B_PWM), 1);

MAP_TimerEnable(TIMERA2_BASE,TIMER_B); MAP_TimerEnable(TIMERA3_BASE,TIMER_A); MAP_TimerEnable(TIMERA3_BASE,TIMER_B); 设置定时器的 PMW 模式子函数程序 : /*****************************************************************************/ 程序 : 设置定时器的 PMW 模式 参数 :ulbase 定时器的基地址 参数 :ultimer 定时器制定 (TIMER_A or TIMER_B) 参数 :ulconfig PWM 指定的模式 参数 : ucinvert:s 是否是反转 功能 : 配置 pwm 模式 返回 : 无 /*****************************************************************************/ void SetupTimerPWMMode(unsigned long ulbase, unsigned long ultimer, unsigned long ulconfig, unsigned char ucinvert) Set GPT - Configured Timer in PWM mode. MAP_TimerConfigure(ulBase,ulConfig); MAP_TimerPrescaleSet(ulBase,ulTimer,0); Inverting the timer output if required MAP_TimerControlLevel(ulBase,ulTimer,ucInvert); Load value set to ~0.5 ms time period MAP_TimerLoadSet(ulBase,ulTimer,TIMER_INTERVAL_RELOAD); Match value set so as to output level 0 MAP_TimerMatchSet(ulBase,ulTimer,TIMER_INTERVAL_RELOAD); 实验过程 : 1. 打开串口调试软件并按照一下参数设置好 端口号 : pc 枚举使用的串口端口号 波特率 : 115200 数据位 : 8 bit 同步位 : None

停止位 : 1 bit 流控制 : None 2. 在程序开始运行后, 会自动显示参数 3 核心板板上蓝灯和学习板上的指示灯循环由暗到亮变化