4-13 ETM輸出PWM HT66F70A.

Slides:



Advertisements
Similar presentations
集团公司火力发电厂热工自动控 制系统的投入情况和问题分析 东北所热自室. 自动控制系统是机组热工专业管理水 平和设备状态的集中体现,一台机组 的自动投入率和自动调节品质体现了 机组的整体水平。同时,自动控制效 果的优劣,也是机组节能降耗目标的 实现手段和基础。
Advertisements

計算機程式語言實習課.
上海交通大学附属中学 李由 晏敏宽 刘华典 指导老师:朱乔荣 徐忠惠 制作:李由
建设工程施工管理 模拟卷 一、单项选择题 1.下列选项中,除( )以外都属于施工机械使用费。 A.购置费 B.安拆费及场外运费 C.折旧费 D.修理费.
小寶寶家庭保健護理小常識 講師:郭洽利老師
计算学科的基本问题 本章首先介绍一个对问题进行抽象的典型实例——哥尼斯堡七桥问题。然后,通过“梵天塔”问题和“停机问题”分别介绍学科中的可计算问题和不可计算问题。从“梵天塔”问题再引出算法复杂性中的难解性问题、P类问题和NP类问题,证比求易算法,P=NP是否成立的问题。
作者簡介 路寒袖.
2015版《中国地震动参数区划图》 对我市城乡建设的影响
第一章 C语言概述 计算机公共教学部.
第五章 病因病机.
青春期男生女生交往.
美 国 主讲人: 唐召云.
第七章 8254可程式規劃計時/計數器 8254 Programmable Timers.
金属学与热处理 主讲: 杨慧.
機 器 車 介 紹 & 實做.
EIS 實驗室 在QT2410上實現PWM功能 王兆慶 朱育昇.
國立大甲高工 電機科 單晶片微電腦控制實習 輸出埠基礎實習 霹靂燈 2018年11月7日 8051 單晶片實習---E0902霹靂燈.
4-10 STM Timer/Counter 與比較吻合輸出
正反器 一、循序邏輯電路 二、動作情形:用時序(timing),其次輸出( )是由外界輸入與( )所共同決定。
100學年度第2學期 邏輯設計實習TA訓練 機 台 介 紹.
PWM (Pulse width modulation)驅動:脈波寬度調變就是依照控制訊號的大小,調整脈波串列寬度,控制電壓值愈大,脈波寬度就愈寬,利用正弦波做為脈寬調變電路的控制電壓,其頻率為需要的輸出頻率,以脈波控制電晶體ON-OFF動作,以調節馬達線圈電流。 脈波寬度調變技術如圖10-28所示,圖10-28(a)所示為使用電晶體的單相眽寬調變變頻電路,電路中T1、T2島通狀態由兩個比較器控制,如圖10-28(b)所示。
第七章 MSP430時脈計時器A模組.
使用VHDL設計—4位元加法器 通訊一甲 B 楊穎穆.
2-1 接腳說明 2018/11/30 第2章 系統分析.
C語言簡介 日期 : 2018/12/2.
數位邏輯設計與實習 Ch06 計數器與暫存器設計.
微處理機-期末專題報告 骰骰子 四電通一A 4990D027 劉志彥 四電通一A 4990D033 王俊龍.
介面設計專題實務 Object Teaching of Interface Design 實驗五 CPU計時器實驗
EIS 實驗室 在QT2410上實現PWM功能 王兆慶 朱育昇.
用開關選擇動作狀態 單晶片微電腦控制實習 輸入埠基礎實習 國立大甲高工 電機科 2019年1月16日
使用VHDL設計-多工器/解多工器 通訊一甲 B 楊穎穆.
遙控車程式 學號:B 姓名:楊 穎 穆 老師:田 慶 誠.
類比轉數位 IC研究 組員:施怡儒 S 柯曄新 S 張久藝 S
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
4-15 WDT HT66F50.
第七單元 正反器 (教科書第四章) 數位系統實驗
办公自动化基础 主讲教师:韩伟颖. 办公自动化基础 主讲教师:韩伟颖 第十章 数据的处理与分析 10.1 数据排序 10.2 数据筛选 10.3 分类汇总 10.4 创建与编辑图表.
第8章 順序邏輯應用實驗 8-1 計數器 8-2 跑馬燈 8-3 紅綠燈.
基本IO.
4-10 STM Timer/Counter 與比較吻合輸出
4-9 Timer/Counter 控制七段速度
7.1 C程序的结构 7.2 作用域和作用域规则 7.3 存储属性和生存期 7.4 变量的初始化
4-9 CTM Timer/Counter Moded 控制實驗
第2章 认识C语言 教学要点 2. 1 项目二C语言程序识读 2 .2 项目三班级成绩排名 2 .3 知识链接 返回.
4.19 Fsys _ SLOW MODE HT66F70A.
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
數位邏輯設計與實習 Ch08實驗室實習.
4-12 外部中斷 HT66F70A.
4-16 SLEEP0 HT66F70A.
第二章 类型、对象、运算符和表达式.
单片机原理及应用 实践部分 主讲人:刘 强 四川工商学院单片机教学团队 单片机原理及应用 实践部分 主讲人:刘 强
自停式向下計數器 通訊一甲 B 楊穎穆.
單元 樞密特觸發電路 單元總結.
利用HT66F50 SIM模組單元中PCK腳位輸出特性 控制speaker 發聲 SIM 串列界面模組
使用VHDL設計-8x3編碼電路 通訊一甲 B 楊穎穆.
4-14 類比中斷 HT66F70A.
遙控車程式流程圖規劃 學號:B 姓名:楊 穎 穆 老師:田 慶 誠.
可變式計數器 通訊一甲 B 楊穎穆.
第十二章 位运算.
4.11 ADC.
得技通电子 问题 1 右何者非為假指令 (1) XRL (2) EQU (3) MACRO (4) ORG.
微算機(二) -- ADC0804 measurement
通訊實驗 實驗三 遙控車程式流程圖 姓名:顏得洋 學號:B
專題報告 - 線性滑軌應用 指導老師:任才俊 組員:王琮賢,洪聖凱.
LED Pili LED 中州技術學院 電子系 副教授 余文俊.
6-1磁的基本概念 沒有磁沒有人類 磁力的由來 磁能
4-13 ETM輸出PWM HT66F50.
微 處 理 機 專 題 – 8051 C語言程式設計 主題:階乘計算
單晶片實作講義 微電腦控制界面 (LCD) 。.
2-4 中斷.
Presentation transcript:

4-13 ETM輸出PWM HT66F70A

ETM提供5種模式 比對吻合輸出 計時/計數 PWM 輸入補捉 單脈衝輸出

ETM 內部結構

ETM 內部結構 10Bit上/下數計數器TMnD 兩組10Bit捕捉暫存器(CCR暫存器)(TM1A、TM1B) 週期控制暫存器(T1RP) TM1C[2:0]控制暫存器 三組比較器: Comparator A(10Bit) Comparator B(10Bit) ComparatorC(3Bit) 操作模式 輸出特性

TM1C0 控制暫存器 T1PAU T1CK2 T1CK1 T1CK0 T1ON T1RP2 T1RP1 T1RP0 Bit 7 6 5 4 3 2 1 0 Bit [7] : T1PAU TM1計時/計數暫停控制位元 0 : 繼續計數(TM1D由原暫停時的數值繼續往上數) 1 : 暫停計數 Bit [6:4] : T1CK[2:0] : TM1計數時脈選擇位元 = 000 : fINT = fsys/4 =100 : fINT = fSUB = 001 : fINT = fsys =101 : 保留 = 010 : fINT = fH/16 =110 : fINT = TCK時脈正緣 = 011 : fINT = fH/64 =111 : fINT = TCK時脈負緣 Bit [3] : T1ON : TM1計時/計數控制位元 1 : 開始計數(TM1D由000h開始往上計數) 0 : 停止計數 Bit [2:0] : TnRP [2:0] = 000 : 週期= 1024 x fINT -1 =100 : 週期= 512 x fINT -1 = 001 : 週期= 128 x fINT -1 =101 : 週期= 640 x fINT -1 = 010 : 週期= 256 x fINT -1 =110 : 週期= 768 x fINT -1 = 011 : 週期= 384 x fINT -1 =111 : 週期= 896 x fINT -1

TM1C1 控制暫存器 Bit [7 6] : T1AM[1:0] TM1A模式控制位元 Bit 7 6 5 4 3 2 1 0 T1AM1 T1AM0 T1AIO1 T1AIO0 T1AOC T1APOL T1CDN T1CCLR Bit 7 6 5 4 3 2 1 0 Bit [7 6] : T1AM[1:0] TM1A模式控制位元 = 00 : TM1A 為「比對吻合輸出」模式 = 01 : TM1A 為「輸入捕捉」模式 = 10 : TM1A 為「脈波寬度調變」或「但脈衝輸出」模式 = 11 : TM1A 為「計時/計數器」模式

TM1C1 控制暫存器 Bit [5 4] : T1AIO[1:0] : TP1A輸出功能選擇位元 Bit 7 6 5 4 3 2 1 0 T1AM1 T1AM0 T1AIO1 T1AIO0 T1AOC T1APOL T1CDN T1CCLR Bit 7 6 5 4 3 2 1 0 Bit [5 4] : T1AIO[1:0] : TP1A輸出功能選擇位元 若TM1A為「比對吻合輸出」模式時,(T1AM[1:0]=00) : 00 : 比對吻合時 TP1A 不變 10 : 比對吻合時 TP1A 輸出「1」 01 : 比對吻合時 TP1A 輸出「0」11 : 比對吻合時 TP1A 轉態 若TM1A為「輸入捕捉」模式時,(T1AM[1:0]=01) : 00 : 在 TP1A 信號為正緣,記錄當前TM1D之值 01 : 在 TP1A 信號為負緣,記錄當前TM1D之值 10 : 在 TP1A 信號為負緣及正緣,均記錄當前TM1D之值 11 : 停止輸入捕捉功能 若TM1A為「脈波寬度調變」或「單脈衝輸出」模式時,(T1AM[1:0]=10) : 00 : 強制 TP1A 為非啟動狀態 10 : PWM輸出 00 : 強制 TP1A 為啟動狀態 11 : 單脈衝輸出 若TM1A為「計時/計數器」模式時(T1AM[1:0]=11),這兩個位元無作用

TM1C1 控制暫存器 Bit [3] : T1AOC : TP1A輸出控制位元 Bit [2] : T1APOL : TP1A極性控制位元 T1AM1 T1AM0 T1AIO1 T1AIO0 T1AOC T1APOL T1CDN T1CCLR Bit 7 6 5 4 3 2 1 0 Bit [3] : T1AOC : TP1A輸出控制位元 若TM1A為「比對吻合輸出」模式時,(T1AM[1:0]=00) : 1 : 首次比對吻合前使TP1A維持在「1」 0 : 首次比對吻合前使TP1A維持在「0」 若TM1A為「脈波寬度調變」或「單脈衝輸出」模式時,(T1AM[1:0]=10) : 1 : TP1A啟動準位為「1」 0 : TP1A啟動準位為「0」 Bit [2] : T1APOL : TP1A極性控制位元 1 : 將 TP1A 反向後輸出 0 : TP1A 直接輸出 Bit [1] : T1CDN : 計數器上/下數狀態旗標 1 : 下數 0 : 上數 Bit [0] : T1CCLR : 計數器清除控制位元 1 : 當TM1A1比對吻合時即清除計數器 0 : 當TM1RP比對吻合或記數器溢位(CCRP為零)時清除計數器

TM1C2控制暫存器 Bit [7 6] : T1BM[1:0] TM1 CCRB模式控制位元 Bit 7 6 5 4 3 2 1 0 T1BM1 T1BM0 T1BIO1 T1BIO0 T1BOC T1BPOL T1PWM1 T1PWM0 Bit 7 6 5 4 3 2 1 0 Bit [7 6] : T1BM[1:0] TM1 CCRB模式控制位元 = 00 : TM1B 為「比對吻合輸出」模式 = 01 : TM1B 為「輸入捕捉」模式 = 10 : TM1B 為「脈波寬度調變」或「但脈衝輸出」模式 = 11 : TM1B 為「計時/計數器」模式

TM1C2 控制暫存器 Bit [5 4] : T1BIO[1:0] : TP1B、TP1BB輸出功能選擇位元 T1BM1 T1BM0 T1BIO1 T1BIO0 T1BOC T1BPOL T1PWM1 T1PWM0 Bit 7 6 5 4 3 2 1 0 Bit [5 4] : T1BIO[1:0] : TP1B、TP1BB輸出功能選擇位元 若TM1B為「比對吻合輸出」模式時,(T1AM[1:0]=00) : 00 : 比對吻合時,輸出維持不變 10 : 比對吻合時,輸出「1」 01 : 比對吻合時,輸出「0」 11 : 比對吻合時,轉態 若TM1B「輸入捕捉」模式時,(T1AM[1:0]=01) : 00 : 在 TP1IB 信號為正緣,記錄當前TM1D之值 01 : 在 TP1IB 信號為負緣,記錄當前TM1D之值 10 : 在 TP1IB 信號為負緣及正緣,均記錄當前TM1D之值 11 : 停止輸入捕捉功能 若TM1B「脈波寬度調變」或「單脈衝輸出」模式時,(T1AM[1:0]=10) : 00 : 強制 TP1B 為非啟動狀態 10 : PWM輸出 00 : 強制 TP1B 為啟動狀態 11 : 單脈衝輸出 若TM1B為「計時/計數器」模式時(T1BM[1:0]=11),這兩個位元無作用

TM1C1 控制暫存器 Bit [3] : T1AOC : TP1B、TP1BB輸出控制位元 T1BM1 T1BM0 T1BIO1 T1BIO0 T1BOC T1BPOL T1PWM1 T1PWM0 Bit 7 6 5 4 3 2 1 0 Bit [3] : T1AOC : TP1B、TP1BB輸出控制位元 若TM1B為「比對吻合輸出」模式時,(T1AM[1:0]=00) : 1 : 首次比對吻合前使TP1A維持在「1」 0 : 首次比對吻合前使TP1A維持在「0」 若TM1B為「脈波寬度調變」或「單脈衝輸出」模式時,(T1AM[1:0]=10) : 1 : TP1B啟動準位為「1」 0 : TP1B啟動準位為「0」 Bit [2] : T1BPOL : TP1B、TP1BB極性控制位元 1 : 反向後輸出 0 : 直接輸出 Bit [1:0] : T1PWM[1:0] : PWM模式選擇位元 00 : 邊緣對齊模式 01 : 中心對齊模式0,上數時產生比對吻合 10 : 中心對齊模式1,下數時產生比對吻合 11 : 中心對齊模式2,上/下數時產生比對吻合 (中心對齊模式中之比對吻合包含TM1A與TM1RP暫存器)

4-13 ETM-PWM #include <HT66F70A.h> #define R_PinC _pdc5 //PDC.5 #define R_Pin _pd5 //PD.5 #define G_PinC _pdc6 //PDC.6 #define G_Pin _pd6 //PD.6 #define B_PinC _pdc7 //PDC.7 #define B_Pin _pd7 //PD.7 typedef unsigned char u8; typedef unsigned short u16; void Delay100us(u16); //函式原型宣告 #define Period 200 //PWM周期常數 u8 PCnt,R,G,B,RCnt,GCnt,BCnt;

主程式 void main() { _wdtc=0b10101111; //關閉看門狗計時器 R_Pin=0 ;G_Pin=0 ;B_Pin=0 ; //設定R、G、B腳位為低電位 R_PinC=0;G_PinC=0;B_PinC=0; //規劃R、G、B腳位為輸出模式 _mf1e=1; _t1ae=1; //致能MF1、T1A中斷 _tm1c0=0x00; //fINT=fSYS/4 _tm1c1=0b10101001; //PWM,TM1A吻合清除 _tm1c2=0b10101001; _tm1al=200%256;_tm1ah=200/256; //設定TM1A=200 _t1af=0; _mf1f=0; _emi=1; //清除中斷旗標並致能中斷 PCnt=Period; _t1on=1; //設定PWM周期並開始計數 while(1) { G=0;B=0; for(R=0; R<120; R+=10) Delay100us(100); //R每隔0.1秒數值遞增10 R=0;B=0; for(G=120; G>0; G-=10) Delay100us(100); //G每隔0.1秒數值遞增10 R=0;G=0; for(B=0; B<120; B+=10) Delay100us(100); //R每隔0.1秒數值遞增10 G=0; for(R=0; R<120; R+=10,B-=10) Delay100us(100); R=40;B=120; for(G=0; G<120; G+=10,B-=10) Delay100us(100);} }

副程式 DEFINE_ISR(ISR_ETM,0x18) { if(PCnt--==0) //判斷PWM周期是否已結束 { PCnt=Period; RCnt=R; GCnt=G; BCnt=B; //是,還原所有值 R_Pin=(R==0)? 0 : 1; //依Duty設定腳位初始狀態 G_Pin=(G==0)? 0 : 1; B_Pin=(B==0)? 0 : 1; } else { if(RCnt!=0) RCnt-- ; else R_Pin=0; //判斷Duty若是結束設定接腳為0 if(GCnt!=0) GCnt-- ; else G_Pin=0; if(BCnt!=0) BCnt-- ; else B_Pin=0; _t1af=0; //清除T2AF旗標 void Delay100us(u16 del) //延遲del*200指令週期 { u16 i,j; //@fSYS=8MH,延遲del*100us for(i=0;i<del;i++) for(j=0;j<=25;j++) GCC_NOP();