📄 main.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 + -