标题: 9s12DG128 的ECT模块程序 请大侠指教 [打印本页]
作者: vigorip 时间: 2006-4-25 10:38 标题: 9s12DG128 的ECT模块程序 请大侠指教
#include <hidef.h> /* common defines and macros */
#include <mc9s12dg128.h> /* derivative information */
#include "main_asm.h" /* interface to the assembly module */
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
void main(void) {
ICSYS=0x03; /*工作方式为锁存,累加器记满后自动翻转为0 */
/*脉冲累加器*/
TIOS=0x07; /*使能7通道*/
PACTL=0x54; /*使用16位计数器,以输入脉冲为工作频率f=43.5hz,t=23ms*/
DLYCT=0x00;/*不使用delay*/
for(;;) {
/*定时器 t=1s*/
MCCTL=0x5C;/*使能MCNT,f=6mfz*/
MCCNT=0xffff;
}
}
[此贴子已经被作者于2006-4-25 10:38:07编辑过]
作者: vigorip 时间: 2006-4-25 10:46
请大侠点拨一下问题在哪
作者: strongchen 时间: 2006-4-25 11:19
你的问题是什么?
作者: vigorip 时间: 2006-4-25 17:34
我理解的ECT模块中的累加器事件计数模式是:
使用引脚PT7,
若使用PACLK即输入的脉冲信号频率作为累加器的工作时钟,
若工作在锁存方式,当MCNT计数到零时,累加器的值送到保持寄存器中,并将累加器清0,
若读一次保持寄存器,可将保持寄存器的值清0.
以下是程序,但总读不出保持寄存器的值.请大侠指教,问题出在哪里?
#include /* common defines and macros */
#include /* derivative information */
#include "main_asm.h" /* interface to the assembly module */
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
char i,j;
void main(void) {
for(;;) {
ICSYS=0x03; /*工作方式为锁存,累加器记满后自动翻转为0 */
********/*脉冲累加器*/***********
TIOS=0x07; /*使能7通道*/
PACTL=0x54; /*使用16位计数器,以输入脉冲为工作频率*/
***************/*定时器 t=2s*/**********
MCCTL=0x46; /*使能MCNT,f=6mfz*/
while(MCCNT!=0x0000);
while(MCCNT==0x0000);
i=PA2H;
j=PA3H;
}
}
作者: vigorip 时间: 2006-4-28 14:36
大侠都去过5.1了吗?
这应该是ECT模块非常简单的一个程序,难道没有人用过吗?
另 :事件计数方式和门方式中哪一个适合对脉冲信号计数?
作者: yl84304070 时间: 2006-4-29 10:39
事件计数方式
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) |
Powered by Discuz! 7.0.0 |