智能车制作
标题:
XS128代码: 输入捕捉中断输出2ms频宽负脉冲2次,间隔18ms(转发)
[打印本页]
作者:
demon
时间:
2012-10-13 12:37
标题:
XS128代码: 输入捕捉中断输出2ms频宽负脉冲2次,间隔18ms(转发)
作者:
zwxclark
#include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
#include "mc9s12xs128.h"
//延时模块
void delayms(int ms)
{
int a;
for(a=0;a<ms;a++)
{
while(TCNT==0x0000);
while(TCNT==0x0000);
while(TCNT==0x0000);
}
}
//输入捕捉通道0初始化函数
void ECT0_INIT()
{
TSCR1=0X80; //开启总定时器中断
TSCR2=0X00; //关闭溢出中断且64分频
TIOS_IOS0=0; //定通道0为输入捕捉,1为输出比较IOC0
TCTL4=0X01; //上升沿捕捉 0x02为下降沿捕捉
TIE_C0I=1; //通道0中断使能
TFLG1_C0F=1; //标志位清零
}
//中断程序:
#pragma CODE_SEG __NEAR_SEG NON_BANKED //分配内存空间
void interrupt 8 timer_onput() //输入捕捉通道0的中断向量为8
{
TFLG1_C0F=1; //标志位清零
asm sei; //关总中断
PTM = 0x0e; //e=1110点亮D0
delayms(641); //延时20ms
PTM = 0x0f;
delayms(5769); //延时20ms
PTM = 0x0e; //e=1110点亮D0
delayms(641); //延时20ms
PTM = 0x0f;
//PTM = 0x0d; //d=1101点亮D1
//delayms(6410);
//PTM = 0x0b; //b=1011点亮D2
//delayms(6410);
//PTM = 0x07; //7=0111点亮D3
//delayms(6410);
TIE_C0I=0; // 禁止通道0中断使能,使中断只响应一次
asm cli; //开总中断
}
//主函数
void main(void) {
DDRM |=0x0f;
PTM |=0x0f; //初始全亮
ECT0_INIT();
EnableInterrupts;
for(;;) {
_FEED_COP(); /* feeds the dog */
} /* loop forever */
/* please make sure that you never leave main */
}
作者:
嘸敵,尒骉垯
时间:
2012-11-24 18:51
为什么没人回帖呢?
作者:
嘸敵,尒骉垯
时间:
2012-11-24 18:51
难道给我个机会坐沙发。。。
作者:
baiyunhuibaiyun
时间:
2013-3-2 22:34
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2