資源簡(jiǎn)介
電子煙小煙產(chǎn)品源代碼。使用的是8 bit芯片。并適用于煙斗產(chǎn)品。
代碼片段和文件信息
/*----------------------------------------
????ML01?sn8p2501B
????Noise_Filter?????Enable
Security?????????Enable
Fcpu?????????????IHRC_16M
Watch_Dog????????Enable
Reset_pin????????Rest
LVC??????????????LVD_L
----------------------------------------*/
//設(shè)備選擇宏定義
#define?USE_GREEN_MODE
//#define?USE_COMM_CODE
//#define?USE_SYSLOCK
//#define?USE_CHARGE //該項(xiàng)目不需要充電管理
//#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?與?匯編混編?時(shí)?匯編調(diào)用C的變量
????①:?全局變量???int?myGlobalVar;
????????__asm{
????????????MOV?A_myGlobalVar
????????}
????②:?局部變量
????????#pragma?ref?myVar
????????void?myFunc(void)
????????{
????????????int?myVar;
????????????__asm{
????????????????MOV?ACNameToAsmLabel(myVar)
????????????}
????????}
????③:函數(shù)傳入?yún)?shù)
????????void?myFunc1(int?Var1?int?Var2)
????????{
????????????__asm{
????????????????MOV?A_myFunc1_arg0?;?arg0?=?Var1
????????????????MOV?A_myFunc1_arg1?;?arg1?=?Var2
????????????}
????????}
④:關(guān)于?word型變量的存儲(chǔ)方式.??wADValue是如何存儲(chǔ)的又如何獲取高低字節(jié)用于匯編編程
_wADValue 獲取低字節(jié)
_wADValue+1 獲取高字節(jié)
*/
#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?函數(shù)無(wú)法用匯編優(yōu)化?因?yàn)閐elay牽扯到AD采樣的穩(wěn)定延時(shí)延時(shí)時(shí)間是經(jīng)過(guò)試驗(yàn)的
//從2.5V使能到穩(wěn)定需要時(shí)間?延時(shí)短了將倒是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???系統(tǒng)時(shí)鐘
TC1M=0x60;??//?Fcpu/4?
//TC0?PWM?控制MOS管
TC0M=0xF0;????//?PWM_OUT??占空比調(diào)節(jié)高電平
//INTEN=
FTC1IEN=1;???//?Enable?TC1?interrupt
FTC1IRQ=1;??//?set?IRQ?flag
FTC1ENB=1;
評(píng)論
共有 條評(píng)論