/*****************************************************************************
* wdt.c: Watchdog C file for NXP LPC17xx Family Microprocessors
*
* Copyright(C) 2009, NXP Semiconductor
* All rights reserved.
*
* History
* 2009.05.27 ver 1.00 Prelimnary version, first Release
*
*****************************************************************************/
#include "LPC17xx.h"
#define WDEN 0x00000001
#define WDRESET 0x00000002
#define WDTOF 0x00000004
#define WDINT 0x00000008
#define WDT_FEED_VALUE 0X00FF//0x003FFFFF
volatile uint32_t wdt_counter;
/*****************************************************************************
** Function name: WDT_IRQHandler
**
** Descriptions: Watchdog timer interrupt handler
**
** parameters: None
** Returned value: None
**
*****************************************************************************/
void WDT_IRQHandler(void)
{
LPC_WDT->WDMOD &= ~WDTOF; /* clear the time-out terrupt flag */
wdt_counter++;
return;
}
/*****************************************************************************
** Function name: WDTInit
**
** Descriptions: Initialize watchdog timer, install the
** watchdog timer interrupt handler
**
** parameters: None
** Returned value: true or false, return false if the VIC table
** is full and WDT interrupt handler can be
** installed.
**
*****************************************************************************/
void WDTInit( void )
{
wdt_counter = 0;
NVIC_EnableIRQ(WDT_IRQn);
LPC_WDT->WDTC = WDT_FEED_VALUE; /* once WDEN is set, the WDT will start after feeding */
LPC_WDT->WDMOD = WDEN;
LPC_WDT->WDFEED = 0xAA; /* Feeding sequence */
LPC_WDT->WDFEED = 0x55;
// return( TRUE );
}
/*****************************************************************************
** Function name: WDTFeed
**
** Descriptions: Feed watchdog timer to prevent it from timeout
**
** parameters: None
** Returned value: None
**
*****************************************************************************/
void WDTFeed( void )
{
LPC_WDT->WDFEED = 0xAA; /* Feeding sequence */
LPC_WDT->WDFEED = 0x55;
return;
}
/******************************************************************************
** End Of File
******************************************************************************/
;/****************************************Copyright (C)**************************************************
;** Email:[email protected]
;** QQ:614090042
;** 如有意见或不明可联系,但要注明来意.否则不回
;**--------------文件信息--------------------------------------------------------------------------------
;**文 件 名: PLC_PUBLIC.c
;**版 本: V2.1
;**创 建 人: LuHeDing
;**最后修改日期: 2010年05月08日
;**描 述: PLC公共参数声明
;**
;********************************************************************************************************/
/******************************************************************************/
typedef unsigned char uint8; /* 无符号8位整型变量 */
typedef signed char int8; /* 有符号8位整型变量 */
typedef unsigned short uint16; /* 无符号16位整型变量 */
typedef signed short int16; /* 有符号16位整型变量 */
typedef unsigned int uint32; /* 无符号32位整型变量 */
typedef unsigned long long uint64; /* 无符号64位整型变量 */
typedef signed int int32; /* 有符号32位整型变量 */
typedef unsigned long u32;
typedef unsigned short u16;
typedef unsigned char u8;
#ifndef __at
#define __at(_addr) __attribute__ ((at(_addr)))
#endif
/******************************************************************************/
char PLC_UART_BUFFER[0x8F]; //接收缓存 BUFFER
uint8 PLC_CommBuf[0x8f];
char PLC_UART_T_BUFFER[0x8F]; //发送缓存
uint8 PLC_UART_RECEIVE_CNT; //接收计数
uint8 PLC_UART_T_CNT; //发送计数
/******************************************************************************/
uint8 PLC_STL_CMD;//0无效 1刚停止 2已执行停止 其它=无效
uint16 PLC_STL_ADD;//上一步执行的STL(S)号
/******************************************************************************/
uint32 PLC_PC,PLC_O_PC; //PLC程序指针
uint16 PLC_TEMP1,PLC_TEMP2,PLC_CMD; //程序执行专用16位寄存器
uint16 PLC_TEMP3,PLC_TEMP4; //程序执行专用16位寄存器
uint32 PLC_TEMP5,PLC_TEMP6,PLC_TEMPA; //程序执行专用32位寄存器
uint64 PLC_TEMP7,PLC_TEMP8,PLC_TEMP9; //程序执行专用64位寄存器
uint8 PLC_ACC_BIT,PLC_MPS_BIT; //程序执行专用(运算栈及分线栈)
uint16 PLC_RUN_TIME; // 扫描时间
//uint16 PLC_ERR_PC; //PLC出错步
uint8 PLC_1MS_BIT; //PLC 1MS标志位(用于其它程式运行标志)
uint8 PLC_RUN_BIT; //PLC运行标志
// 0=无运行;1=PLC运行前数据复位;2=PLC程序检测中;3=PLC程序下常运行;4=STL;
// 5=PLC程序出错处理;6=PLC程序出错;其它=?
/******************************************************************************/
uint8 Y0_H_OE,Y1_H_OE;
uint16 PWM_Y0_ON_TIMER,PWM_Y0_CYCLE,PWM_Y0_COUNT;
uint16 PWM_Y1_ON_TIMER,PWM_Y1_CYCLE,PWM_Y1_COUNT;
uint8 PLSY_Y0_CCW,PLSY_Y1_CCW;
uint32 PLSY_Y0_COUNT,PLSY_Y1_COUNT;
/******************************************************************************/
const uint8 hex[256]={
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,1,2,3,4,5,6,7,8,9,0,0,0,0,0,0,
0,10,11,12,13,14,15,0,0,0,0,0,0,};
const uint8 asc[16]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x41,0x42,0x43,0x44,0x45,0x46};
/******************************************************************************/
const uint8 PLC_BIT_OR[]={0X01,0X02,0X04,0X08,0X10,0X20,0X40,0X80};
const uint8 PLC_BIT_AND[]={0XFE,0XFD,0XFB,0XF7,0XEF,0XDF,0XBF,0X7F};
/******************************************************************************/
const uint8 PROG_CODE[]__at (0x0003FFA4)={
//最前的0X02表示PLC为2K的程序步,其它还未明
0x08,0x00,0xB9,0x69,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0xF4,0x09,0xFF,0x0B,0xF4,0x01,0xE7,0x03,0x64,0x0E,0xC7,0x0E,0xDC,0x0E,0xFF,0x0E,0x90,0x01,0xFE,0x03,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//程序开始
//0x01,0x24,0x01,0xC5,0x01,0xF0,0x02,0x24,0x02,0xC5,0xFF,0xF7,0x0F,0x00,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
//0x10,0x00,0x02,0x88,0x00,0x80,//0x04,0xB0,0x01,0x24,0x01,0xc5,
//0X01,0X28,0X02,0XC5,0X04,0XB0,0X01,0X24,0X001,0XC5,0X02,0X28,0X03,0XC5,
0X0F,0X00,0XFF,//结束指令
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,};
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
评论0