• 大小: 41KB
    文件类型: .7z
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: 其他
  • 标签: 电子烟  Pipe  

资源简介

电子烟小烟产品源代码。使用的是8 bit芯片。并适用于烟斗产品。

资源截图

代码片段和文件信息




/*----------------------------------------
    ML01 sn8p2501B
    Noise_Filter     Enable
Security         Enable
Fcpu             IHRC_16M
Watch_Dog        Enable
Reset_pin        Rest
LVC              LVD_L
----------------------------------------*/
//设备选择宏定义
#define USE_GREEN_MODE
//#define USE_COMM_CODE
//#define USE_SYSLOCK
//#define USE_CHARGE //该项目不需要充电管理
//#define USE_VOUT_3_3V
//#define USE_VOUT_3_5V
#define USB_VOUT_3_7V
//#define USE_GND_DET_FROM_BAT
//#define USE_HEATER_R_LOW
#include “one_piece.h“



#define KEY_NONE 13


/*
    C 与 汇编混编 时 汇编调用C的变量
    ①: 全局变量   int myGlobalVar;
        __asm{
            MOV A_myGlobalVar
        }
    ②: 局部变量
        #pragma ref myVar
        void myFunc(void)
        {
            int myVar;
            __asm{
                MOV ACNameToAsmLabel(myVar)
            }
        }
    ③:函数传入参数
        void myFunc1(int Var1 int Var2)
        {
            __asm{
                MOV A_myFunc1_arg0 ; arg0 = Var1
                MOV A_myFunc1_arg1 ; arg1 = Var2
            }

        }
④:关于 word型变量的存储方式.  wADValue是如何存储的又如何获取高低字节用于汇编编程
_wADValue 获取低字节
_wADValue+1 获取高字节
*/
#define WDT_RST     WDTR=0x5A;
//*********************************
#define HEATER_MOST_PIN_MODE(mode)  FP40M=mode;
#define PIN_MODE_INPUT      0
#define PIN_MODE_OUTPUT     1

#define PWM_ENABLE    FPWM0OUT=1;
#define PWM_DISABLE   FPWM0OUT=0;


/* Set config for pin mode and then set ADC enableglobal channel enable convert channel.  */
#define  vADCH_25V P4CON=0x01; ADM=0x90;
#define  vADCH_RL_L P4CON=0x08; ADM=0x93;
#define vADCH_RL_H P4CON=0x10; ADM=0x94;
#define   vADCH_NTC P4CON=0x02; ADM=0x91;
//delay 函数无法用汇编优化 因为delay牵扯到AD采样的稳定延时延时时间是经过试验的
//从2.5V使能到稳定需要时间 延时短了将倒是AD采样值偏高.


byte filter_cnt = 0;

void vDelay_us(byte btime)
{
while(--btime);
/*
__asm{
  ;MOV A_bDelayusCount
LOOP_DELAY_US:
  DECMS   _bDelayusCount
  JMP LOOP_DELAY_US
}
*/
}

#if PROJ_NAME == PROD_VPIPEII_2711A

void vClr_RAM(void)
{
__asm
{
CLR         Y
B0MOV       Z#0x3f
ClrRAM10:
CLR         @YZ
DECMS       Z
JMP         ClrRAM10
CLR         @YZ
}
}

#elif PROJ_NAME == PROD_VPIPEII_2712
void vClr_RAM(void)
{
__asm
{
CLR         Y
    B0MOV       Z#0x5f
ClrRAM10:
CLR         @YZ
DECMS       Z
JMP         ClrRAM10
CLR         @YZ
}
}


#endif
void vSysInit(void)
{
#if PROJ_NAME == PROD_VPIPEII_2711A
//pin
P0=0x0B;
P0M=0x0F; // P00 - P03 is output mode.
P0=0x0B;  // P00 P01 P03 pin is high
// P4M=0x06;
//P4=0x04;
P4=0x04;    // P40 - P44 
P4M=0x04;  // P42 is output 
P4=0x04;  // P42 is high

P5M=0x18;  // P53 P54 is both output mode.
P5=0x18;   //  P53 P54 is high.
//TC1   系统时钟
TC1M=0x60;  // Fcpu/4 
//TC0 PWM 控制MOS管
TC0M=0xF0;    // PWM_OUT  占空比调节高电平

//INTEN=
FTC1IEN=1;   // Enable TC1 interrupt
FTC1IRQ=1;  // set IRQ flag
FTC1ENB=1;

评论

共有 条评论