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

📄 k60-keil

📁 K60-Keil版本(下载安装MDK4.23)
💻
字号:
#include "MK60N512MD100.h"
#include "function.h"
#include "define.h"
void GPIO_Init(void)
{
	unsigned char i=0;
	SIM->SCGC5    |= SIM_SCGC5_PORTA_MASK;        /* Enable Clock to Port A */  
	SIM->SCGC5    |= SIM_SCGC5_PORTB_MASK;        /* Enable Clock to Port B*/  
	SIM->SCGC5    |= SIM_SCGC5_PORTC_MASK;        /* Enable Clock to Port C*/  
	/* PORT_PCR_IRQC(x)
	0000 Interrupt/DMA Request disabled.
	0001 DMA Request on rising edge.
	0010 DMA Request on falling edge.
	0011 DMA Request on either edge.
	0100 Reserved.
	1000 Interrupt when logic zero.
	1001 Interrupt on rising edge.
	1010 Interrupt on falling edge.
	1011 Interrupt on either edge.
	1100 Interrupt when logic one.
	*/
	PORTA->PCR[11] = PORT_PCR_MUX(1)|PORT_PCR_IRQC(10) | PORT_PCR_PS_MASK | PORT_PCR_PE_MASK ;  //Interrupt on falling edge.
	PORTB->PCR[8]  = PORT_PCR_MUX(1)|PORT_PCR_IRQC(9)  | PORT_PCR_PS_MASK | PORT_PCR_PE_MASK ;  //Interrupt on rising edge.
	PTA->PDDR &=~ (1<<11);	  //做输入
	PTB->PDDR &=~ (1<<8);	  //做输入

	for(i=0;i<8;i++)
	{
		PORTB->PCR[i]  = PORT_PCR_MUX(1) | PORT_PCR_PS_MASK | PORT_PCR_PE_MASK ;  //PORTB0-7上拉使能
		PTB->PDDR  	  &=~ (1<<i);	 //做输入,0为输入 1为输出
	}
	for(i=3;i<11;i++)
	{
		PORTC->PCR[i]  = PORT_PCR_MUX(1) | PORT_PCR_PS_MASK | PORT_PCR_PE_MASK ;  //PORTC3-10上拉使能
		PTC->PDDR  	  &=~ (1<<i);	 //做输入,0为输入 1为输出
	} //8位拨码开关输入 
	for(i=16;i<20;i++)
	{
		PORTB->PCR[i]  = PORT_PCR_MUX(1) | PORT_PCR_PS_MASK | PORT_PCR_PE_MASK ;  //PORTB16-19上拉使能
		PTB->PDDR  	  &=~ (1<<i);	 //做输入,0为输入 1为输出
	} //4位拨码开关输入 

	PORTA->PCR[14] = PORT_PCR_MUX(1)| PORT_PCR_PS_MASK | PORT_PCR_PE_MASK;        /* Pin14 is GPIO */
	PORTA->PCR[15] = PORT_PCR_MUX(1)| PORT_PCR_PS_MASK | PORT_PCR_PE_MASK;        /* Pin12 is GPIO */
	PORTA->PCR[16] = PORT_PCR_MUX(1)| PORT_PCR_PS_MASK | PORT_PCR_PE_MASK;        /* Pin16 is GPIO */
	PORTA->PCR[17] = PORT_PCR_MUX(1)| PORT_PCR_PS_MASK | PORT_PCR_PE_MASK;        /* Pin12 is GPIO */
	for(i=14;i<18;i++)
	{
		PTA->PDDR |= (1<<i);	 //做输出,0为输入 1为输出
	}
	PTA->PDOR=0xffffffff; 	//关闭所有灯

}

void Counter_Init(void)	 //编码器计数器初始化	PA10
{
	SIM->SCGC5 |= SIM_SCGC5_PORTA_MASK; 
	PORTA->PCR[10] = PORT_PCR_PE_MASK|PORT_PCR_PS_MASK|PORT_PCR_MUX(6);
//	PORTA->PCR[11] = PORT_PCR_PE_MASK|PORT_PCR_PS_MASK|PORT_PCR_MUX(6);
//	PORTA->PCR[12] = PORT_PCR_PE_MASK|PORT_PCR_PS_MASK|PORT_PCR_MUX(7);
//	PORTA->PCR[13] = PORT_PCR_PE_MASK|PORT_PCR_PS_MASK|PORT_PCR_MUX(7);

//	SIM->SCGC6 |= SIM_SCGC6_FTM1_MASK;   // 使能FTM1时钟
	SIM->SCGC3 |= SIM_SCGC3_FTM2_MASK;   // 使能FTM1时钟
//	FTM1->MOD = 0xffff;    // FTM0计数器的终点值
//	FTM1->CNTIN = 0;   	   // FTM0计数器的初始值
	FTM2->MOD = 0xffff;    // FTM0计数器的终点值
	FTM2->CNTIN = 0;   	   // FTM0计数器的初始值
//	FTM1->MODE |= FTM_MODE_WPDIS_MASK;  
//	FTM1->MODE |= FTM_MODE_FTMEN_MASK; //FTMEN=1,关闭TPM兼容模式,开启FTM所有功能
    FTM2->MODE |= FTM_MODE_WPDIS_MASK;  
	FTM2->MODE |= FTM_MODE_FTMEN_MASK; //FTMEN=1,关闭TPM兼容模式,开启FTM所有功能
//
//	FTM1->QDCTRL |= FTM_QDCTRL_PHBPOL_MASK ; 
//    FTM1->QDCTRL |= FTM_QDCTRL_QUADMODE_MASK;  // Count and direction encoding mode
//	FTM1->QDCTRL |= FTM_QDCTRL_QUADEN_MASK;    // Quadrature decoder mode is enabled
//	FTM1->SC |= FTM_SC_PS(0) | FTM_SC_CLKS(1);  // Select bus clock

// 	FTM1->CNT = 0;         // 写任意值到该寄存器,FTM0计数器将重新装载CNTIN中的值
	FTM2->QDCTRL |= FTM_QDCTRL_PHBPOL_MASK;
	FTM2->QDCTRL |= FTM_QDCTRL_QUADMODE_MASK;  // Count and direction encoding mode
	FTM2->QDCTRL |= FTM_QDCTRL_QUADEN_MASK;    // Quadrature decoder mode is enabled
	FTM2->SC |= FTM_SC_PS(0) | FTM_SC_CLKS(1);  // Select bus clock
 	FTM2->CNT = 0;         // 写任意值到该寄存器,FTM0计数器将重新装载CNTIN中的值
}



⌨️ 快捷键说明

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