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

📄 exec.h

📁 PIC Kit serial source code.
💻 H
字号:
//==================================================================== 
//--- COPYRIGHT
//==================================================================== 
// Copyright 2006 Microchip Technology Inc.
// 
// Microchip Technology Inc. ("Microchip") licenses this software to
// you solely for use with Microchip products. The software is owned
// by Microchip and is protected under applicable copyright laws. All
// rights reserved.
// 
// SOFTWARE IS PROVIDED IN AN "AS IS." MICROCHIP EXPRESSLY DISCLAIMS ANY
// WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
// PARTICULAR PURPOSE, OR NON-INFRINGEMENT. IN NO EVENT SHALL MICROCHIP
// BE LIABLE FOR ANY INCIDENTAL, SPECIAL, INDIRECT OR CONSEQUENTIAL
// DAMAGES, LOST PROFITS OR LOST DATA, HARM TO YOUR EQUIPMENT, COST OF
// PROCUREMENT OF SUBSTITUTE GOODS, TECHNOLOGY OR SERVICES, ANY CLAIMS
// BY THIRD PARTIES (INCLUDING BUT NOT LIMITED TO ANY DEFENSE THEREOF),
// ANY CLAIMS FOR INDEMNITY OR CONTRIBUTION, OR OTHER SIMILAR COSTS.
// 
//==================================================================== 
//--- TITLE
//==================================================================== 
//    Filename:            exec.h
//    Microcontroller:     PIC18F2550
//    Compiled using:      C18 V3.00
//
//    Author:              Mark Enochson
//    Company:             Microchip Technology Inc.
//
//==================================================================== 
//--- DESCRIPTION
//==================================================================== 
//
//==================================================================== 
//--- HISTORY
//==================================================================== 
//
//    FILE: exec.h
//    NOTE: 0001 09-01-06 ME
//    -- removed firmware verion definition (moved to project.h)
//
//    NOTE: 0000 08-01-06 ME
//    -- initial release
//
//==================================================================== 
#ifndef __EXEC_H
#define __EXEC_H

//==========================================================
//--- RESOURCES
//==========================================================

//--- SWITCH
#define  SW_PIN               PORTBbits.RB5
#define  SW_PIN_DIR           TRISBbits.TRISB5


//==========================================================
//--- PROTOTYPES
//==========================================================
void exec_svc(void);
void exec_init(void);
void exec_dflush_time_set(void);
TD_BYTE exec_data_get(void);
void exec_data_put(TD_BYTE b0);
void exec_cmnd_proc(TD_BYTE cmnd);
void exec_packet_proc(void);
void exec_packet_prep(void);
void exec_packet_status(TD_BYTE id);
void exec_packet_finish(void);
void exec_packet_cbuf2(void);
void exec_cb_ee_write(void);
TD_BYTE exec_cb_ee_read(void);
void exec_cb_load(void);
void exec_cb_load_dflt(void);
void exec_cbuf1_put(void);

//==========================================================
//--- DEFINITIONS / DECLARATIONS
//==========================================================
#define  EXEC_CB_LENGTH             24
#define  EXEC_SB_LENGTH             20
extern TD_BYTE_B exec_flags;
extern TD_BYTE *exec_data_p;
extern TD_BYTE exec_data_count;
extern TD_BYTE exec_tag;
extern TD_BYTE_B exec_control_B[EXEC_CB_LENGTH];
extern TD_BYTE_B exec_status_B[EXEC_SB_LENGTH];
extern TD_BYTE exec_status_save_1;
extern TD_BYTE exec_status_save_2;
extern TD_BYTE exec_status_save_3;
extern TD_BYTE exec_status_id;

//--------------------------------------
//--- DATA TAGs
//--------------------------------------
#define  EXEC_TAG_EOD               0x00
#define  EXEC_TAG_COMMAND           0x01
#define  EXEC_TAG_CB_WRITE          0x02
#define  EXEC_TAG_CBUF1_WRITE       0x03
#define  EXEC_TAG_CBUF2_WRITE       0x04
#define  EXEC_TAG_CBUF3_WRITE       0x05
#define  EXEC_TAG_LED1_CONFIG       0x06
#define  EXEC_TAG_LED2_CONFIG       0x07
#define  EXEC_TAG_CBUF1_RESET       0x08
#define  EXEC_TAG_CBUF2_RESET       0x09
#define  EXEC_TAG_CBUF3_RESET       0x0A
#define  EXEC_TAG_EXEC_STATUS_RQ    0x0B

#define  EXEC_TAG_BOOT_B            0x42
#define  EXEC_TAG_BOOT_b            0x62

#define  EXEC_TAG_EOD_OUT           0x80
#define  EXEC_TAG_FIRMWARE_VERSION  0x81
#define  EXEC_TAG_CB_DATA           0x82
#define  EXEC_TAG_SB_DATA           0x83
#define  EXEC_TAG_CBUF_STATUS       0x84
#define  EXEC_TAG_CBUF1_DATA        0x85
#define  EXEC_TAG_CBUF2_DATA        0x86
#define  EXEC_TAG_CBUF3_DATA        0x87
#define  EXEC_TAG_PACKET_ID         0x88

//--------------------------------------
//--- CONTROL_BLOCK
//--------------------------------------
#define  EXEC_CB_LED2_DISABLE_DFLT_FLAG   exec_control_B[0].bit4
#define  EXEC_CB_LED1_DISABLE_DFLT_FLAG   exec_control_B[0].bit5
#define  EXEC_CB_DFLUSH_THRESHOLD_FLAG    exec_control_B[0].bit6
#define  EXEC_CB_DFLUSH_TIME_FLAG         exec_control_B[0].bit7
#define  EXEC_CB_REG_FIRST                0
#define  EXEC_CB_REG_LAST                 7

#define  EXEC_CB_SWITCH_TEST_FLAG         exec_control_B[1].bit0

#define  EXEC_CB_DFLUSH_COUNT_REG         exec_control_B[3]._b
#define  EXEC_CB_DFLUSH_TIME_REG          exec_control_B[4]._b

//--------------------------------------
//--- STATUS_BLOCK
//--------------------------------------
#define  EXEC_SB_CBUF1_OVF_FLAG           exec_status_B[0].bit1
#define  EXEC_SB_CBUF2_OVF_FLAG           exec_status_B[0].bit2
#define  EXEC_SB_CBUF3_OVF_FLAG           exec_status_B[0].bit3
#define  EXEC_SB_DATA_ERR_FLAG            exec_status_B[0].bit4
#define  EXEC_SB_CB_DFLT_FLAG             exec_status_B[0].bit5

#define  EXEC_SB_SWITCH_TEST_FLAG         exec_status_B[1].bit0
#define  EXEC_SB_SWITCH_FLAG              exec_status_B[1].bit1

#define  EXEC_SB_REG_FIRST                 0
#define  EXEC_SB_REG_LAST                  3
#define  EXEC_SB_REG_ALL_FIRST            0
#define  EXEC_SB_REG_ALL_LAST             19

//--------------------------------------
//--- FLAGS
//--------------------------------------
#define  EXEC_PROC_LOOP_FLAG              exec_flags.bit0
#define  EXEC_DFLUSH_FLAG                 exec_flags.bit1
#define  EXEC_RQ_STATUS_PACKET_FLAG       exec_flags.bit2
#define  EXEC_SWTEST_FLAG                 exec_flags.bit3
//#define  EXEC_SWTEST2_FLAG                exec_flags.bit4
#define  EXEC_RQ_STATUS_PACKET_ID_FLAG    exec_flags.bit4
#define  EXEC_GIEL_FLAG                   exec_flags.bit5
#define  EXEC_CB_NEW_FLAG                 exec_flags.bit6
#define  EXEC_PACKET_IN_FLAG              exec_flags.bit7


//--------------------------------------
//--- MISC
//--------------------------------------
#define  EXEC_STATUS_PACKET_ID            0x00
#define  EXEC_DATA_LENGTH_MAX             64
#define  EXEC_PACKET_LENGTH_MAX           64
#define  EXEC_CB_CHKSUM_SEED              0x12

//--------------------------------------
//--- SW TEST: LED CONFIG: OFF
//--------------------------------------
#define  EXEC_LED_CONFIG_SWTEST_OFF       0x00

//--------------------------------------
//--- SW TEST: LED CONFIG: BLINK FAST
//--------------------------------------
#define  EXEC_LED_CONFIG_SWTEST_ON        0xC0

#define  EXEC_REBOOT_DLY_MSEC    100
#define  EXEC_REBOOT_DLY_TA      EXEC_REBOOT_DLY_MSEC * 1000 / TIMER0_A_USEC

//--------------------------------------
//--- EXEC CMND(s)
//--------------------------------------
#define  EXEC_CMND_INIT                   0x00
#define  EXEC_CMND_COMM_INIT_MODE         0x01
#define  EXEC_CMND_RQ_STATUS_PACKET       0x02
#define  EXEC_CMND_CB_EE_WRITE            0x03
#define  EXEC_CMND_CB_EE_READ             0x04
#define  EXEC_CMND_CBUF2_FLUSH            0x05
#define  EXEC_CMND_COMM_INIT              0x06
#define  EXEC_CMND_COMM_CLEAR             0x07

#endif // __EXEC_H

⌨️ 快捷键说明

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