4-10 STM Timer/Counter 與比較吻合輸出

Slides:



Advertisements
Similar presentations
計算機程式語言實習課.
Advertisements

上海交通大学附属中学 李由 晏敏宽 刘华典 指导老师:朱乔荣 徐忠惠 制作:李由
第一章 C语言概述 计算机公共教学部.
青春期男生女生交往.
第七章 8254可程式規劃計時/計數器 8254 Programmable Timers.
金属学与热处理 主讲: 杨慧.
基本程式範例.
國立大甲高工 電機科 單晶片微電腦控制實習 輸出埠基礎實習 霹靂燈 2018年11月7日 8051 單晶片實習---E0902霹靂燈.
4-10 STM Timer/Counter 與比較吻合輸出
正反器 一、循序邏輯電路 二、動作情形:用時序(timing),其次輸出( )是由外界輸入與( )所共同決定。
PWM (Pulse width modulation)驅動:脈波寬度調變就是依照控制訊號的大小,調整脈波串列寬度,控制電壓值愈大,脈波寬度就愈寬,利用正弦波做為脈寬調變電路的控制電壓,其頻率為需要的輸出頻率,以脈波控制電晶體ON-OFF動作,以調節馬達線圈電流。 脈波寬度調變技術如圖10-28所示,圖10-28(a)所示為使用電晶體的單相眽寬調變變頻電路,電路中T1、T2島通狀態由兩個比較器控制,如圖10-28(b)所示。
第七章 MSP430時脈計時器A模組.
國立大甲高工 電機科 單晶片微電腦控制實習 輸出埠基礎實習 閃爍燈 2018年11月23日 8051 單晶片實習---E0901閃爍燈.
使用VHDL設計—4位元加法器 通訊一甲 B 楊穎穆.
2-1 接腳說明 2018/11/30 第2章 系統分析.
C語言簡介 日期 : 2018/12/2.
數位邏輯設計與實習 Ch06 計數器與暫存器設計.
微處理機-期末專題報告 骰骰子 四電通一A 4990D027 劉志彥 四電通一A 4990D033 王俊龍.
AIM-spice Miao-shan, Li.
介面設計專題實務 Object Teaching of Interface Design 實驗五 CPU計時器實驗
fp=fopen("CD2.dat","wb"); fwrite(&min,8,1,fp); fclose(fp);
4-13 ETM輸出PWM HT66F70A.
用開關選擇動作狀態 單晶片微電腦控制實習 輸入埠基礎實習 國立大甲高工 電機科 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 紅綠燈.
单片机原理与应用 主讲人:张荣刚 福建师范大学福清分校.
程式設計期末測驗 通訊一甲 B 楊穎穆.
基本IO.
4-9 Timer/Counter 控制七段速度
7.1 C程序的结构 7.2 作用域和作用域规则 7.3 存储属性和生存期 7.4 变量的初始化
教科版六年级下册第一单元第4课 怎样放得更大 莲都区天宁小学 陈建秋.
4-9 CTM Timer/Counter Moded 控制實驗
4.19 Fsys _ SLOW MODE HT66F70A.
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
數位邏輯設計與實習 Ch08實驗室實習.
4-12 外部中斷 HT66F70A.
4-16 SLEEP0 HT66F70A.
FP0/VF0 for Filling Machines
第二章 类型、对象、运算符和表达式.
单片机原理及应用 实践部分 主讲人:刘 强 四川工商学院单片机教学团队 单片机原理及应用 实践部分 主讲人:刘 强
第二章 基本数据类型 ——数据的表示.
自停式向下計數器 通訊一甲 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.
期末報告第一題 通訊四甲 B 湯智瑋.
微算機(二) -- ADC0804 measurement
通訊實驗 實驗三 遙控車程式流程圖 姓名:顏得洋 學號:B
專題報告 - 線性滑軌應用 指導老師:任才俊 組員:王琮賢,洪聖凱.
LED Pili LED 中州技術學院 電子系 副教授 余文俊.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
使用VHDL設計-七段顯示 通訊一甲 B 楊穎穆.
C语言程序设计 第13章 文件操作.
4-13 ETM輸出PWM HT66F50.
微 處 理 機 專 題 – 8051 C語言程式設計 主題:階乘計算
單晶片實作講義 微電腦控制界面 (LCD) 。.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
2-4 中斷.
Presentation transcript:

4-10 STM Timer/Counter 與比較吻合輸出 HT66F70A

STM (Standard type TM)提供5種模式 比對吻合輸出(Compare match) 計時/計數(Timer/Counter) 脈波寬度調變(PWM) 輸入捕捉(Input Capture) 單脈衝輸出模式(Single pulse output) 同時可搭配一支外部輸入腳位,以及TPn、TPnB兩支的輸出腳位進行運作。

STM 內部結構

STM 內部結構 16位元上數計數器TMnD 兩個內部暫存器TMnA(16 bit) TMnRP (8bit) TMnC0、TMnC1 特殊功暫存器 兩個內部暫存器CCRP(8bit)與CCRA(16bit)所組成。 由TnCK[2:0]位元的設定控制選擇七種不同的時脈信號作為16BIT上數計數器計數時脈源 操作模式 輸出特性

當啟動計數時(設定TnON=「1」),上數計數器會先清除為零,接著根據所選擇的時脈開始往上遞增。 計數過程中,比較器A與P會將其數值分別與TMnA(16bit)、TMnRP(8bit)的設定值進行比較,不同的工作模式在比對吻合時會產生不同的動作。 HT66F70A有兩組CTM計時模-TM2、TM4、TM5。

CTM 輸出入腳位 TH66F70A 計時模組: TM2,TM4,TM5 TM輸入腳位: TCK2,TCK4,TCK5 TM輸出腳位: TP2,TP2B TP4,TP4B TP5,TP5B

TMnC0 控制暫存器 Bit [7] : TnPAU : TMn計時/計數暫停控制位元 TnPAU TnCK2 TnCK1 TnCK0 TnON TnRP2 TnRP1 TnRP0 Bit 7 6 5 4 3 2 1 0 Bit [7] : TnPAU : TMn計時/計數暫停控制位元 = 1 : 暫停計數 = 0 : 繼續計數(當此為位元1時,TMnD由原暫停時的數值繼續往上計數) Bit [6 5 4] : TnCK[2:0] : TMn計數時脈選擇位元 = 000 : fINT= fsys/4 =100 : fINT= fINT = 001 : fINT= fsys =101 : 保留 = 010 : fINT= fsys/16 =110 : fINT=TCKn = 011 : fINT= fsys/64 =111 : fINT= TCKn’ Bit [3] : TnON : TM計時/計數控制位元 = 1 : 開始計數(當此為位元1時,TMnD先歸零後再開始往上計數) = 0 : 停止計數 Bit 2:0 保留 [0 0 0]

TMnC1 控制暫存器 TnM1 TnM0 TnIO1 TnIO0 TnOC TnPOL TnDPX TnCCLR Bit 7 6 5 4 3 2 1 0 Bit [7 6] : TnM[1:0] : STM模式控制位元 = 00 : STM為「比對吻合輸出」模式 = 01 : STM為「輸入補捉」模式 = 10 : STM為「PWM / single pulse」模式 = 11 : STM為「計時/計數」模式

TMnC1 控制暫存器 TnM1 TnM0 TnIO1 TnIO0 TnOC TnPOL TnDPX TnCCLR Bit 7 6 5 4 3 2 1 0 Bit [5 4] : TnIO[1:0] : TPn、 TPnB 為功能選擇位元 若STM為「比對吻合輸出」模式時(TnM[1:0]=00) : 00 : 比對吻合時,輸出不變 10 : 比對吻合時,輸出高態 01 : 比對吻合時,輸出低態 11 : 比對吻合時,輸出轉態 若STM為「輸入補捉」模式時 (TnM[1:0]=01) : 00: 在TP2_0, TP2_1輸入為正緣時,記錄TMnD 01: 在TP2_0, TP2_1輸入為負緣時,記錄TMnD 10: 在TP2_0, TP2_1輸入為負緣及正緣時,記錄TMnD 11: 停止輸入補捉功能 若STM為「PWM/Single Puls」模式 (TnM[1:0]=10) 00: 強制輸出為非啟動 10: PWM輸出 01: 強制輸出為啟動 11: Single Pulse Mode 若STM為計時/計數, (TnM[1:0]=11) 這兩位元無作用

TMnC1 控制暫存器 TnM1 TnM0 TnIO1 TnIO0 TnOC TnPOL TnDPX TnCCLR Bit 7 6 5 4 3 2 1 0 Bit [3] : TnOC 輸出準位控制位元 若STM為「比對吻合輸出」模式時(TP2M[1:0]=00) : 1 : 首次比對吻合前,輸出維持在「1」 0 : 首次比對吻合前,輸出維持在「0」 若STM為「PWM/Single Pulse」 (TP2M[1:0]=10) : 1 : 輸出啟動準位為「1」 0 : 輸出啟動準位為「0」 Bit [2] : TnPOL 輸出極性控制位元 1 : 輸出反向 0 : 輸出不反向 Bit [1] : TnDPX PWM模式之Duty與Period切換控制位元 = 1 : TMnRP控制Duty,TMnA控制Period = 0 : TMnRP控制Period ,TMnA控制Duty Bit [0] : TnCCLR = 1 : 當比較器 A 比對吻合時清除計數器 = 0 : 當比較器 P 比對吻合時或計數器溢位清除計數器

當CPU執行DELAY副程式時 STM仍繼續計數 待其計數值與TM2A暫存器所設定之參數產生比對吻合時 以中斷方式讓CPU跳至014h執行

4-10 STM(Compare match) - buzzer #include <HT66F70A.h> #define SPK_Port _pc4 //設定SPK_Port為PC4腳位 #define SPK_PortC _pcc4 //設定SPK_PortC為PCC4 #define _2M 2000000 typedef unsigned short u16; typedef unsigned char u8; u8 p=0,L=0 ; u16 COUNT=0; const u16 TAB_Pitch[] = { //音調參數 _2M/(523*2),_2M/(587*2), _2M/(659*2),_2M/(698*2), _2M/(785*2),_2M/(880*2), _2M/(988*2),_2M/(523*2*2)}; const u16 TAB_Duration[] ={ //音長參數 523/2,587/2,659/2,698/2, 785/2,880/2,988/2,(523*2)/2}; void Delay100us(u16 del); //函式原型宣告

主程式 void main() { _wdtc=0b10101111; //關閉看門狗計時器 _tm2c0=0; //fINT=fSYS/4 _tm2c1=0b00110101; //設定比較輸出模式與輸出方式 _pcs2=0x01; SPK_PortC=0; //規劃SPK_Port為輸出 _tm2al=TAB_Pitch[p]%256; // _tm2ah=TAB_Pitch[p]/256; //更改延遲時間 _emi=_t2ae=_mf0e=1; //啟用STM中斷 _t2on=1; //開啟計數 while(1) Delay100us(2000); }

副程式 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(); } DEFINE_ISR(ISR_TM2A,0x14) { if(++COUNT==(2*TAB_Duration[L])) //計算方波個數 { _tm2al=TAB_Pitch[p]%256; // _tm2ah=TAB_Pitch[p]/256; //更改延遲時間 COUNT=0; if(++L>7)L=0; if(++p>7)p=0; _t2af=0;