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

📄 sampioc.c

📁 At91sam7s64+ucosII+pid温度控制
💻 C
字号:
#include "AT91SAM7S128.h"
#include "lib_at91sam7s128.h"
#include "SAMpioc.h"



//#define FLEX_ADHIGH  0X03<<19



//==========baoji==================================




//============================================
void Delay(int x)
{
int i;
	for(i=0;i<x;i++)
	{
	;
	}
}
void PIOinit(void)
{
	AT91F_PIOA_CfgPMC();//配置io口时钟
	
//	AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,FLEX_SETOUT);
//	AT91F_PIO_CfgInput(AT91C_BASE_PIOA,FLEX_SETIN);
	
//	AT91F_PIO_CfgInput(AT91C_BASE_PIOA,FLEX_ADBUS);
//	AT91F_PIO_CfgInput(AT91C_BASE_PIOA,FLEX_ADHIGH);
//	AT91F_PIO_CfgDirectDrive(AT91C_BASE_PIOA,FLEX_ADBUS);
//	AT91F_PIO_CfgDirectDrive(AT91C_BASE_PIOA,FLEX_ADHIGH);
	AT91F_PIO_CfgInput(AT91C_BASE_PIOA,DABUS);
	AT91F_PIO_CfgInput(AT91C_BASE_PIOA,KEY_IRQ);
	AT91F_PIO_OutputEnable(AT91C_BASE_PIOA,DABUS);
	AT91F_PIO_CfgDirectDrive(AT91C_BASE_PIOA,DABUS);
	AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,LCD_SETOUT);
	AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,STPM_SETOUT);
	AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,RL1);
	AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,RL1);
//	rly1off();
//	rly2off();

	AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,BEEP);
	
	//AT91F_PIO_SetOutput(AT91C_BASE_PIOA,STPMFW);
	AT91F_PIO_SetOutput(AT91C_BASE_PIOA,STPMCK);
	AT91F_PIO_SetOutput(AT91C_BASE_PIOA,STPMFW);
	AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,STPMEN);
	//AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,SSR_SETOUT);
//	AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,ADC_SETOUT);
//	AT91F_PIO_CfgInput(AT91C_BASE_PIOA,ADC_SETIN);
	
//	AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,ACM_SETOUT);
	
//	AT91F_PIO_CfgInput(AT91C_BASE_PIOA,MP3_SETIN);
}

//=============DRIVER=========================
void spmotor()			//STEP MOTOR
{
int i;
	AT91F_PIO_SetOutput(AT91C_BASE_PIOA,STPMEN);
	Delay(DLYMCK);
	for(i = 0;i<200;i++)		//1/8细分。故需要1600个脉冲。不细分,一圈需要200个脉冲
	{
		AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,STPMCK);
		Delay(DLYMCK);
		AT91F_PIO_SetOutput(AT91C_BASE_PIOA,STPMCK);
		Delay(DLYMCK);
	}
//	Delay(DLYMCK);
	AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,STPMEN);
}
	
	
void beepon()
{
	AT91F_PIO_SetOutput(AT91C_BASE_PIOA,BEEP);
	
}
void beepoff()
{
	AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,BEEP);
}
void beepdida()
{
	beepon();
	Delay(DLY5);
	beepoff();
}
void rly1off()
{
	AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,RL1);
}
void rly1on()
{

	AT91F_PIO_SetOutput(AT91C_BASE_PIOA,RL1);
}


/*
int GET_FBUS()
{
	return((AT91F_PIO_GetInput(AT91C_BASE_PIOA) & FLEX_ADBUS) >> 11);
}
void SEND_FBUS(int x)
{
	AT91F_PIO_OutputEnable(AT91C_BASE_PIOA,FLEX_ADBUS);
	AT91F_PIO_ForceOutput(AT91C_BASE_PIOA,(x<<11));
}

int FLEX_READ(int addr)
{
int temp;
	AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,FLEX_ADN);     //245 IS PUT ADDR
	AT91F_PIO_SetOutput(AT91C_BASE_PIOA,FLEX_DIR);     //addr
	Delay(100);
	SEND_FBUS(addr);
	Delay(100);
	AT91F_PIO_SetOutput(AT91C_BASE_PIOA,FLEX_RWN);
	AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,FLEX_CS);

	Delay(200);
	AT91F_PIO_OutputDisable(AT91C_BASE_PIOA,FLEX_ADBUS);
	AT91F_PIO_SetOutput(AT91C_BASE_PIOA,FLEX_ADN);
	AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,FLEX_DIR);    //DATA
	while(( AT91F_PIO_GetInput(AT91C_BASE_PIOA) &FLEX_RDY));
//	Delay(200);
	temp = GET_FBUS();
	AT91F_PIO_SetOutput(AT91C_BASE_PIOA,FLEX_CS);
	AT91F_PIO_SetOutput(AT91C_BASE_PIOA,FLEX_DIR);
	AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,FLEX_ADN); 
	return(temp);
}
int FLEX_MON()
{
int temp;
	AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,FLEX_CS);
	AT91F_PIO_OutputDisable(AT91C_BASE_PIOA,FLEX_ADBUS);
	AT91F_PIO_SetOutput(AT91C_BASE_PIOA,FLEX_ADN);
	while(!( AT91F_PIO_GetInput(AT91C_BASE_PIOA) &FLEX_RDY));
//	if(!MP3_DECT)
	{
	temp = GET_FBUS();
	AT91F_DBGU_Printk(&temp);
	
	while(( AT91F_PIO_GetInput(AT91C_BASE_PIOA) &FLEX_RDY));
	temp = GET_FBUS();
	AT91F_DBGU_Printk(&temp);
	}

	AT91F_PIO_SetOutput(AT91C_BASE_PIOA,FLEX_CS);
	AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,FLEX_ADN); 
	return(0);
}
void FLEX_WRITE(int addr,int x)
{
	AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,FLEX_ADN);     //245 IS PUT ADDR
	AT91F_PIO_SetOutput(AT91C_BASE_PIOA,FLEX_DIR);     //addr
	Delay(100);	
	SEND_FBUS(addr);
	Delay(100);

	AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,FLEX_RWN);	
	AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,FLEX_CS);

	Delay(100);
	SEND_FBUS(x);
	Delay(100);
	AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,FLEX_DIR);//addr
	while(( AT91F_PIO_GetInput(AT91C_BASE_PIOA) &FLEX_RDY));
	AT91F_PIO_OutputDisable(AT91C_BASE_PIOA,FLEX_ADBUS);
	AT91F_PIO_SetOutput(AT91C_BASE_PIOA,FLEX_CS);
	AT91F_PIO_SetOutput(AT91C_BASE_PIOA,FLEX_RWN);
	AT91F_PIO_SetOutput(AT91C_BASE_PIOA,FLEX_DIR);
	
}


void ACM_SWITCH_XY(int x,int y,int val)
{
int tmp;
	tmp = x | (y<<4);								
	tmp = tmp | (val << 7);
	SEND_FBUS(tmp);
	AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,ACM_CS);
	Delay(100);
	AT91F_PIO_SetOutput(AT91C_BASE_PIOA,ACM_CS);
}


int MPe_ACK()
{
	return(( AT91F_PIO_GetInput(AT91C_BASE_PIOA) &MP3_ACK));
}
*/

⌨️ 快捷键说明

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