资源简介
电子烟小烟产品源代码。使用的是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;
评论
共有 条评论