原创 飞思卡尔xs128的输入捕捉程序

2010-5-26 11:41 8344 7 8 分类: MCU/ 嵌入式

#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */
#include <stdio.h>


 


 


void setbusclock(void)
{  
    CLKSEL="0X00";    // disengage PLL to system
    PLLCTL_PLLON=1;   // turn on PLL
    SYNR="0x00" | 0x01;                          
    _asm(nop);          // BUS CLOCK="16M"
    _asm(nop);
    while(!(CRGFLG_LOCK==1));   //when pll is steady ,then use it;
    CLKSEL_PLLSEL =1;          //engage PLL to system;
}
//-----------------------------------------------------
void SCI_Init(void)
{
    SCI0CR2=0x2c; //enable Receive Full Interrupt,RX enable,Tx enable
    SCI0BDH=0x00; //busclk  8MHz,19200bps,SCI0BDL=0x1a
    SCI0BDL=0x68; //SCI0BDL=busclk/(16*SCI0BDL)                  
                  //busclk 16MHz, 9600bps,SCI0BDL=0x68                  
}                
void uart_putchar(unsigned char ch)
{
  if (ch == '\n') 
  {
      while(!(SCI0SR1&0x80)) ;    
      SCI0DRL= 0x0d;            //output'CR'
     return;
  }
  while(!(SCI0SR1&0x80)) ;       //keep waiting when not empty 
  SCI0DRL=ch;
}


void putstr(char ch[])
{
  unsigned char ptr="0";
  while(ch[ptr]){
      uart_putchar((unsigned char)ch[ptr++]);
  }
}
//----------------------------------------------------- 
static void IOC_Init(void)
{         
    TSCR1=0x80;//时钟允许
    TSCR2=0x04;//div by 16
    TCNT =0x00;
    // TSCR2_PR  
   // PACTL="0x73";// INTERRUPT, 门控时间累加器模型,上升沿检测,不分频
    TIOS =0x7E;//每一位对应通道的: 0输入捕捉,1输出比较  通道7输入比较
    TCTL3=0xc0;//c-输入捕捉7任何沿有效,            
    TCTL4=0x0B;//0表示ICx禁止, 1表示上升沿, 2表示下降沿, 3表示任何沿     
    TIE  =0x00;//每一位对应相应通道中断允许,0表示禁止中断 ;通道7

   

//----------------------------------------------------- 
/* void ECT_Init(void)
{
   TSCR2_PR   = 7;  //prescale factor is 8, bus clock/128=16Mhz/8
   TSCR2_TOI  = 1;  //timer overflow interrupt enable
   TSCR1_TEN  = 1;  //timer enable
}


#pragma CODE_SEG NON_BANKED
#pragma TRAP_PROC
void Int_TimerOverFlow(void)
{
   TFLG2_TOF  = 1;  //clear timer overflow flag
   TCNT="0";
   DDRA="0XFF";
   PORTA_PA0=~PORTA_PA0;
 
}
#pragma CODE_SEG DEFAULT
 */


 



void Dly_ms(int ms)
{
   int ii,jj;
   if (ms<1) ms="1";
   for(ii=0;ii<ms;ii++)
     for(jj=0;jj<2670;jj++);    //busclk:16MHz--1ms
}
void main(void)
{
  char mystr[20]="";
  unsigned char LedCnt="0";
  unsigned int IOCcnt; 
 
  setbusclock(); 
  SCI_Init();
  IOC_Init();
  DDRA="0XFF";
  PUCR_PUPBE=1;
  putstr("\n debug of input caputer by cch");
  EnableInterrupts;
  // DisableInterrupts;
  for(;;)
  {  
    
    Dly_ms(1000);   //修改延时以修改数据发送频率
    IOCcnt="PACNT";    
    if(IOCcnt>999) PACNT="0";
    sprintf(mystr,"\n\nIOC pulses:%d",IOCcnt);
    putstr(mystr);
    sprintf(mystr,"\nTC7; pulses:%d",TC7L);
    putstr(mystr);
    sprintf(mystr,"\nTC1 pulses:%d",TC1L);
    putstr(mystr);
    PORTA_PA0=~PORTA_PA0;


  }
}
 /*#pragma CODE_SEG NON_BANKED
#pragma TRAP_PROC
void Int_TimerOverFlow(void)
{
   TFLG2_TOF  = 1;  //clear timer overflow flag
   PAFLG_PAOVF=1;
   PAFLG_PAIF=1;
   PACNT="0";
   DDRA="0XFF";
   PORTA_PA0=~PORTA_PA0;
 
}
#pragma CODE_SEG DEFAULT
   */
//

文章评论1条评论)

登录后参与讨论

用户426650 2012-8-13 18:03

很好
相关推荐阅读
用户560459 2013-01-27 17:43
电气二重层电容器
http://capacitors-forum.org/jp/admission/-------原文。 --------------------------------------------...
用户560459 2011-02-28 14:08
access violation at address no write permission
SYMPTOMSMy project includes a variable that I access using an absolute memory address. The μVision D...
用户560459 2011-02-28 14:07
C语言中的条件编译等用法
 这几个宏是为了进行条件编译。一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足某条...
用户560459 2011-02-28 13:59
步进电机控制
    最近学习了韩国一块制内衣的机器,原理就是步进电机的驱动,今天有空,写点备忘或分享他人,不足之处请谅解!1:处理器是用的三星的芯片,没有研究。2:输出两路clk接光耦控制TA8415来控制驱动步...
用户560459 2010-12-19 21:37
单片机读取SD卡
SD卡数据可分为5部分:MBR区、DBR区、FAT区、DIR区和DATA区。MBR区是主引导区,位于整个SD卡的第1单块上。在总共512字节的主引导扇区中,MBR只占用了其中的446个字节,另外的64...
用户560459 2010-12-09 10:42
基于STM32的GPS接受器
         上图为亿图画的硬件连接调试图和软件流程图和附件程序2.由于GPS和M  由于GPS和MCU的电平兼容,所以在硬件连接中,GPS接受终端的TX接MCU的RX,RX接TX,另外通过RS2...
我要评论
1
7
1
2
3
4
5
6
7
8
9
0
关闭 站长推荐上一条 /4 下一条