MC9S12G定時器中斷設定

2021-07-10 05:34:39 字數 649 閱讀 7802

一、關閉定時器模組

時tscr1的ten位為0;

二、設定iosx為輸出比較引腳(以7為例)

tios_ios7 = 1;

三、繫結輸出比較引腳

tctl1_om7 = 0;

tctl1_ol7 = 1;

四、設定計數器的比較值(在24mhz的系統時間下,0xbb為1ms)中斷週期:0x4926*128/24mhz = 100ms

tc7 = 0xbb;

五、設定定時器分頻設定(以128分頻為例)

tscr2_pr = 0x7;

六、設定定時器比較成功後輸出從而產生中斷

tscr2_tcre = 1;

七、最後開啟定時器

tscr1_ten = 1;

八、中斷函式要寫為

#pragma code_seg __near_seg non_banked

void interrupt vectornumber_vtimch7 tim7_isr(void)

**void outputcompare_init(void)

#pragma code_seg __near_seg non_banked

void interrupt vectornumber_vtimch7 tim7_isr(void)

MC9S12G時鐘配置

一 enable外部時鐘 使cpmuosc暫存器的osce位置一 二 計算需要的頻率 以24mhz為例 pllclk 24mhz 2 x oscclk 振盪器頻率,即你的外部晶振 x synr 1 refdv 1 三 計算出synr,refdv後 把synr得值賦給cpmusynr的前六位,把ref...

基於MC9S12G使用編碼器(控制)輸出PWM

基於mc9s12g使用編碼器 控制 輸出pwm 首先是編碼器的原理 a和b是對應兩個光敏接收管,ab之間的距離s2小於s0和s1,所以當順時針旋轉的時候,a和b對應的初始值是1 1,a會首先進入初始位置左側的s0區域,即a和b的值為0,1,接下來ab同時處於s0區域,即為0,0,接下來a先進入s1區...

mc9s12xdp512的中斷程式設計

中斷在c語言裡面有兩種方式表達 1 interrupt void rti isr void same as pragma trap proc,set the entry number in the prm file這種方式定義了中斷的結構,實際的向量位址在prm檔案中定義 2 void interr...