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

📄 main.c

📁 lpc2136芯片的硬件全部功能示例程序
💻 C
字号:
/****************************************************************
 		WPD800 主文件  create by zaken 2007-9  
		修改历史     2007-9-10 create version  1.0 

****************************************************************/
#include "config.h"
#include "main.h"
#include "e2prom.h"

BYTE  btemp;
WORD  wtemp;
DWORD dwtemp;
BYTE  *bptemp;
WORD  *wptemp;
DWORD *wdptemp;
BYTE  barray[0xff];
//临时变量定义
#define BEEP  1<<7

//add by zaken 增加测试计算(程序运行)时间的子函数
//看门狗计数开始值 单位(4*plck)
DWORD ErrStatus=0; //错误状态
DWORD ErrFlag=0; //错误标志
DWORD AlarmFlag=0; //不重要的告警标志
#define one_second  4*Fcclk //一秒的计数值
volatile uint32  wStartCnt=0;
volatile uint32  wEndCnt=0;
bool g_bNeed_Get_Time=FALSE;
//启动时间计数 
void timer_start(void)
{
	WDMOD=0x03;//设置看门狗模式
	WDTC=0xffffffff;//设置最大值
	WDFEED=0xaa;
	WDFEED=0x55;//喂狗
	wStartCnt=WDTV;//读出此时的计数值
}
//取得运行的时间间隔,单位(1/Fpclk)秒
uint32 get_timer(void)
{
	wEndCnt=WDTV;//读出此时的计数值
	WDFEED=0xaa;
	WDFEED=0x55;//喂狗
	return(uint32)((wStartCnt-wEndCnt)*4);	
}
//计算时间 参数为clk 返回值单位为ms
uint32 clk_to_time(uint32 clk)
{
	float a;
	a=(float)clk;
	a*=1000;
	a=a/Fpclk;
	return (uint32)a;
}
//纪录不重要的告警情况,调试用
void Record_Alarm(BYTE bit)
{
	#ifdef _DEBUG_
	AlarmFlag |=(1<<bit);
	#endif
}
int mytimer,mytimer1,ik;
extern bool  Sam_Init(void);
int main (void)
{
	PINSEL1 = 0x00000000;			/* 设置管脚连接GPIO							*/
	IO0DIR  = BEEP;					/* 设置BEEP控制口输出						*/
	
init_process:
	Sam_Init();
	Eeprom_Init(400000);

main_loop:
	
	goto main_loop;
}
////////////////////////////SPI部分///////////////////////////////
void  Spi_Init(void)
{  
	//PINSEL0 = (PINSEL0 & 0xFFFF00FF) | 0x00005500;	// 设置管脚连接SPI
	PINSEL0 = (PINSEL0 & (~(0xFF << 8))) | (0x55 << 8) ;
    SPCCR = 0x52;		            // 设置SPI时钟分频
 	SPCR  = (0 << 3) |				// CPHA = 0, 数据在SCK 的第一个时钟沿采样
 			(1 << 4) |				// CPOL = 1, SCK 为低有效
 			(1 << 5) |				// MSTR = 1, SPI 处于主模式
 			(0 << 6) |				// LSBF = 0, SPI 数据传输MSB (位7)在先
 			(0 << 7);				// SPIE = 0, SPI 中断被禁止
}

uint8  Spi_SendByte(uint8 data)
{  
   
    SPI_SPDR = data;
    while( 0 == (SPI_SPSR & 0x80));		// 等待SPIF置位,即等待数据发送完毕
    return(SPI_SPDR);
}
/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

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