第一次寫部落格,哈哈哈,剛入行汽車電子,是乙個小白。希望跟各位大觸互相交流學習.最近沒事研究了一波g128 的低功耗模式。mc9s12g128晶元具有以下三種低功耗模式:
1,執行/等待模式 等待模式與執行模式類似,除了cpu執行被暫停並可以有選擇地執行禁用一些模組,以便只有必要的模組時鐘。
2,停止模式 停止模式禁用外部振盪器以降低功耗
3,偽停止模式 為了降低功耗,偽停止模式停止匯流排時鐘,但是外部振盪器
繼續執行
模式內部時鐘
外部時鐘
執行模式
yesyes
停止模式
nono
等待模式
yesyes
偽停止模式
noyes
#include
#include "derivative.h"
#pragma const_seg default
#pragma data_seg default
unsigned char interrupt_flag;
#pragma code_seg default
#pragma code_seg non_banked
#pragma trap_proc
void interrupt vectornumber_vportad portpad_isr(void)
#pragma code_seg default
void main(void)
ptt = 0xf0;
for (z=0; z<40; z++) }
}cpmuclks_pstp = 0;
asm andcc #0x7f;
asm stop;
}break;
case (0xdf): /* pseudo stop mode */
while(1) /* loop forever */
porta = 0xf0;
for (z=0; z<40; z++) }
}cpmuclks_pstp = 1;
asm andcc #0x7f;
asm stop;
}break;
case (0xef): /* wait mode */
while(1) /* loop forever */
ptt = 0xf0;
for (z=0; z<40; z++) }
}asm wai; /* enter wait mode */
}break;
default:
interrupt_flag = 0;
ptt ^= 0x80;
break;
}/* delay to see leds toggle */
for (x=0; x<5000; x++) }
}}
MC9S12G時鐘配置
一 enable外部時鐘 使cpmuosc暫存器的osce位置一 二 計算需要的頻率 以24mhz為例 pllclk 24mhz 2 x oscclk 振盪器頻率,即你的外部晶振 x synr 1 refdv 1 三 計算出synr,refdv後 把synr得值賦給cpmusynr的前六位,把ref...
MC9S12G定時器中斷設定
一 關閉定時器模組 時tscr1的ten位為0 二 設定iosx為輸出比較引腳 以7為例 tios ios7 1 三 繫結輸出比較引腳 tctl1 om7 0 tctl1 ol7 1 四 設定計數器的比較值 在24mhz的系統時間下,0xbb為1ms 中斷週期 0x4926 128 24mhz 10...
MC9S12 RTI 時鐘的設定
rti,是org時鐘和復位發生模組中的乙個功能,一般用它來3秒後啟動車子。初始化它,需要兩個暫存器 crgint和rtictl。crgint的第8位 rtie是rti的中斷使能位,為1使能。而rtictl的設定,就關係到定時的時間,關鍵就是這點,估計有很多同學不太了解吧。下面來重點說說 它的第8位 ...