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

📄 k60-keil

📁 K60-Keil版本(下载安装MDK4.23)
💻
字号:
#include "MK60N512MD100.h"
#include "delay.h"
#include "serial.h"
#include "pwm.h"
#include "pit.h"
#include "function.h"
#include "define.h"
#include "wdog.h"
#include "adc.h"

unsigned char SendByte=0;
unsigned char LineCount;//列计数值									    
unsigned char RowCount; //行计数值
unsigned char LineCount1;//列计数值									    
unsigned char RowCount1; //行计数值
unsigned char ImageFlag=0;
int16_t SteerCounter=0;

uint16_t  MotorSpeed=0;
uint8_t SerialBuf[24]={0};
uint8_t SerialAdd=0;
uint8_t SerialFlag=0;
unsigned char  SendStartLineFlag=0;
unsigned char SendADFlag=0;




// 图像原始数据												   
unsigned char ImageData[RowMax][ColumnMax];	//图像数据数组
				    
unsigned char ThresholdData[RowMax][ColumnMax];  //二值化数据数组			   									    
					  															   
int ThresholdValue=0;						   //二值化阈值
int main (void)
{	
	__disable_irq();  
	SystemCoreClockUpdate(); 	/* Get Core Clock
	 Frequency */
	//IO口初始化
	GPIO_Init();//PB0-PB7为OV7620数据口 PB8为行中断口 PA11为场中断口,若摄像头为5V输出,每个口都要串联200欧姆限流电阻		
	//串口初始化
	Serial_Init (UART3,90000000,115200);//波特率115200	//串口PC16 PC17
	UART3->C2|=UART_C2_RIE_MASK;   	//使能接收中断
	NVIC_EnableIRQ(UART3_RX_TX_IRQn);//打开串口中断	
	Ser_PutChar(UART3,0x01);  //串口验证看门口
	//电机PWM初始化
	FTM0_Init();   //10K频率 PC1正转,PC2反转
	FTM1_Init();//舵机初始化50Hz ,PA12	
	Counter_Init();	//PA10口,编码器计数器初始化,定时器0中断10ms读取 编码器脉冲值MotorSpeed

	//打开场中断
	NVIC_EnableIRQ(PORTA_IRQn);
	NVIC_DisableIRQ(PORTB_IRQn);
	NVIC_SetPriority(PORTA_IRQn,1);
	NVIC_SetPriority(PORTB_IRQn,2);
	NVIC_SetPriority(PIT0_IRQn,3);


   //电机控制定时器
	NVIC_EnableIRQ(PIT0_IRQn);//开启定时器
	PIT_Init(PIT0_IRQn,450000);//定时器0时间
//	PIT_Init(PIT1_IRQn,450000);//定时器1时间
	
//   	ADC_Init(ADC1,8);	 //AD初始化8位精度
	SteerUpdatePWM(0,DirectMiddle);// 
   


	

	while(1)
	{
			 /*图像大小为70*51
			 RowMax	    51	  //图像行数
			 ColumnMax	70	  //图像列数*/
			NVIC_DisableIRQ(PIT0_IRQn);//关闭定时器		
			Ser_PutChar(UART3,0x01);
			Ser_PutImageString(UART3,(int8_t *)&ImageData[0][0],RowMax*ColumnMax);
			Ser_PutChar(UART3,0x01);   
			Delay_MS(1);


	} // end while(1)
}




void PIT0_IRQHandler(void)
{
	if((PIT->CHANNEL[0].TFLG&PIT_TFLG_TIF_MASK)!=0)
	{								
		PIT->CHANNEL[0].TFLG |= PIT_TFLG_TIF_MASK ;//	Clear Timer Interrupt Flag
		MotorSpeed=FTM2->CNT;	  //读取速度
		FTM2->CNT=0;			  //计数值清零
	}
} 
void PIT1_IRQHandler(void)
{
	if((PIT->CHANNEL[1].TFLG&PIT_TFLG_TIF_MASK)!=0)
	{								
		PIT->CHANNEL[1].TFLG |= PIT_TFLG_TIF_MASK ;//	Clear Timer Interrupt Flag
	}
} 








⌨️ 快捷键说明

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