⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 freescaleHC12插值代码,8,16位无符号和有符号一维及二维插值
💻 C
字号:
#include <hidef.h>		//common defines and macros 
#include <mc9s12dj256.h>     /* derivative information */ 
#include "my_vectors.h"
#include "main_asm.h"   //interface to my assembly module 
#define commondefine
#include "commondefine.h"
#undef  commondefine
extern char INTER_Table_CHAR1(struct GROUP_INTER_CHAR1* array, unsigned int un16Coord_VALUE);
//Interrupt section for this module. Placement will be in NON_BANKED area. 
#pragma CODE_SEG __NEAR_SEG NON_BANKED 
interrupt void RTI_ISR(void)
{ //simple RTI interrupt service routine 
  //clear RTIF bit 
//  CRGFLG = 0x80;  
}



#pragma CODE_SEG DEFAULT
/*****************************************************************************
Function Name	:	SCI1Init
Engineer		:	
Date			:	03/01/2005

Arguments		:	none
                  
Return			:	none

Notes			:	This function  initialize SCI 0.
******************************************************************************/
void SCI0Init(void)
{
    SCI0BDL=(unsigned char)((40000000UL /* OSC freq */ / 2) / 9600 /* baud rate */ / 16 /*factor*/);
    SCI0CR2=0x2c;//Transmit Enable & Receive Enable &  Receive Interrupts Enable
}


 /*
*********************************************************************************************************
                                             *
* Description : Sent single	 char
* Arguments   : Do not use in this code
*********************************************************************************************************
*/ 	
 	
 

void SCI0Send(unsigned char L_byte)
 { 
 	while(!SCI0SR1_TDRE){}      //Poll the TDRE flag by reading the SCI0SR1 until the TDRE flag is set
    SCI0DRL=L_byte;             //If the TDRE flag is set, write the data to be transmitted to SCI0DRL
    
 } 
 
 /*
*********************************************************************************************************
*                                 DisplayNO 2006.06.07
*
* Description : To display the number
* Arguments   : The max number  that can display is 99999 .
* By          : Terry 
*********************************************************************************************************
*/ 

  void DisplayNO(int Number){
    
     int i=10000;			                                   //作为除数提取各位的字符  
     int nTemp=0;			                                   //1时表示高位已有非0结果,地位即使是0也可以输出了 
     int nResult;																			   //用来暂存各位的数据
                                       
     while(i>0) {
      
          nResult=Number/i;			                        //通过除法从高位到低位依次单位提取字符
          Number= Number%i;                             //余数作为下一次除法的被除数
          i=i/10;   																		// 除数依次是上次的10分之一
          if((nResult!=0)||(nTemp==1)) {
          			nTemp=1;
                nResult+= 48;									          //将结果转为ASCII
                SCI0Send((unsigned char)nResult);       //输出该位
                                        }
                }
  }
  
    
 void RTIInit(void) //RTI initialization
{
  //setup of the RTI interrupt frequency 
  //adjusted to get 1 millisecond (1.024 ms) with 16 MHz oscillator 
 // RTICTL = 0x1F;//set RTI prescaler 
//  CRGINT = 0x80;//enable RTI interrupts
}



void main(void) 
{

	interp_UINT2();  //16bit无符号整型数的二维插值参数初始换
	interp_UCHAR_2();//8bit无符号整型数的二维插值参数初始换
	interp_UINT1();  //16bit无符号整型数的一维插值参数初始换
	interp_UCHAR1(); //8bit无符号整型数的一维插值参数初始换
	interp_INT2();   //16bit整型数的二维插值参数初始换
	interp_CHAR_2(); //8bit整型数的二维插值参数初始换
	interp_INT1();   //16bit整型数的一维插值参数初始换
	interp_CHAR1();  //8bit整型数的一维插值参数初始换
  SCI0Init();
	//16bit无符号整型数的二维插值	  
//	G_un16result_UINT2=(unsigned int)(INTER_Table_UINT2(&C_inter_UINT2,700,300));
	//8bit无符号整型数的二维插值
//	G_un8result_2_UCHAR_2=(unsigned char)(INTER_Table_UCHAR_2(&C_inter_UCHAR_2,50,30));
	//16bit无符号整型数的一维插值
//	G_un16result_UINT1=(unsigned int)(INTER_Table_UINT1(&C_inter_UINT1,688)); 
	//8bit无符号整型数的一维插值
//	G_un8result_UCHAR1=(unsigned char)(INTER_Table_UCHAR1(&C_inter_UCHAR1,-55)); 
	//16bit整型数的二维插值
//	G_un16result_INT2=( int)(INTER_Table_INT2(&C_inter_INT2,700,300));
	//8bit整型数的二维插值
//	G_un8result_2_CHAR_2=( char)(INTER_Table_CHAR_2(&C_inter_CHAR_2,50,30));
	//16bit整型数的一维插值
//	G_un16result_INT1=( int)(INTER_Table_INT1(&C_inter_INT1,688)); 
	//8bit整型数的一维插值
		 
//	G_un8result_CHAR1=INTER_Table_CHAR1(&C_inter_CHAR1,300);
	G_un16result_INT1=( int)(INTER_Table_INT1(&C_inter_INT1,15)); 
INTER_Table_UCHAR1(&C_inter_UCHAR1,19);
INTER_Table_UCHAR1(&C_inter_UCHAR1,21);
INTER_Table_UCHAR1(&C_inter_UCHAR1,58);		
//G_un8result_CHAR1=INTER_Table_CHAR1(&C_inter_CHAR1,17);										
	G_un8result_CHAR1=INTER_Table_CHAR1(&C_inter_CHAR1,12);
	G_un8result_CHAR1=INTER_Table_CHAR1(&C_inter_CHAR1,25);			
	 DisplayNO((int)G_un8result_CHAR1);
//	RTIInit(); //RTI initialization
//	EnableInterrupts;//enable interruput
	for(;;); /* wait forever */
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -