一、建立USER_PROGRAM.H文件,包含里面两个路径文件。
#include “..TKS_GLOBE_VARIES.H”
#include “..MAIN_PROGRAM_V102MAIN_PROGRAM_V102.H”
二、建立USER_PROGRAM.C文件,头文件包含刚才建立的USER_PROGRAM.H文件
工作区里面的源文件夹里面必须要有一个主程序C文件和MAIN_PROGRAM_V102.asm汇编文件
否则就 警告,找不到程序入口,切记。
还得将源文件里面的 USER_PROGRAM.asm 文件去掉。
必须使用的两个函数名称
void USER_PROGRAM_INITIAL();
void USER_PROGRAM();
三、建立MAIN_PROGRAM_V102.H文件,此头文件应该放到MAIN_PROGRAM_V102文件夹下
包含里面路径
#include “..BS84B06A_LIBV413BS84B06A_LIBV413.CEX”
#define EXTEND_FUNCTION_1A_INITIAL BS84B06A_LIBV413_INITIAL
#define EXTEND_FUNCTION_1A BS84B06A_LIBV413
#include “..USER_PROGRAMUSER_PROGRAM.CEX”
#define EXTEND_FUNCTION_1B_INITIAL USER_PROGRAM_INITIAL
#define EXTEND_FUNCTION_1B USER_PROGRAM
以上建立文件包含路径一定要注意芯片型 的选择
四、以下是触摸按键初始化,按键读取以及中断的程序格式
在USER_PROGRAM_INITIAL()内初始化触摸按键
void USER_PROGRAM_INITIAL(){
……
……
LIBRARY_RESET();
BS84B06A_LIBV413_INITIAL();
_emi=1;
}
触摸参数设置完后,就可以进行按键扫描。
void key_function( void )
{
unsigned int uiTouchKey;
BS84B06A_LIBV413();
GET_KEY_BITMAP();
uiTouchKey=((unsigned int) DATA_BUF[1]<<8) | DATA_BUF[0];
}
中断格式,注意里面的中断地址
void __attribute(( interrupt( 0x0c ))) isr_time_0( void )
{
}
//*********************************************************************************
初始化参考(选择16M,16分频,中断250us)
//系统寄存器设置
_smod = 0b00000001;//时钟源控制
//b7~b5:系统时钟选择位
//b4:空
//b3:低速振荡器就绪标志位
//b2:高速振荡器就绪标志位
//b1:空闲模式控制位
//b0:系统时钟选择位 0分频时钟/低速时钟 1全速时钟
_ctrl = 0b00010000;//b7:IDLE模式下Fsys控制位
//b6:空
//b5~b4:时钟频率选择 00:8M 01:16M 10:12M 11:8M
//b3:空
//b2:LVRF复位标志位
//b1:空
//b0:WDTC控制的复位标志位
_wdtc = 0b01010011;//b7~b3:01010使能
//b2~b0:溢出周期选择位 011:2的14次方/32K低速时钟 500MS
CLR_WDT(); //清看门狗计数器
//中断寄存器设置
_integ = 0b00000000;//外部中断控制
//b7~b2:空
//b1~b0:INT中断边沿控制位 00:除能 01:上升沿 10:下降沿 11双沿
_intc0 = 0b00000000;//b7:空
//b6:TF定时器中断请求标志
//b5:触控按键模块中断请求标志
//b4:INT中断请求标志
//b3:定时器中断控制位 0除能 1使能
//b2:触控按键模块中断控制位 0除能 1使能
//b1:INT中断控制位 0除能 1使能
//b0:总中断开关 0除能 1使能
_intc1 = 0b00000000;//b7:AD中断请求标志
//b6:EEPROM中断请求标志
//b5:时基中断请求标志
//b4:SIM中断请求标志
//b3:AD中断控制位 0除能 1使能
//b2:EEPROM中断控制位 0除能 1使能
//b1:时基中断控制位 0除能 1使能
//b0:SIM中断控制位 0除能 1使能
//********************************************************************************
// IO功能初始化
//********************************************************************************
_pac = 0b00001000;//PA口输入/输出控制位
//0:输出 1:输入 ( 除PA6~PA5未使用 )
_papu = 0b10011111;//PA口上拉电阻控制位
//0:除能 1:使能 ( 除PA6~PA5未使用 )
_pawu = 0b00000000;//PA口唤醒控制位
//0:除能 1:使能 ( 除PA6~PA5未使用 )
_pa = 0b10000000;//初始化PA口
_pbc = 0b00000000;//PB口输入/输出控制位
//0:输出 1:输入
_pbpu = 0b00110000;//PB口上拉电阻控制位
//0:除能 1:使能
_pb = 0b00000000;//初始化PB口
_pdc = 0b00000000;//PD口输入/输出控制位
//0:输出 1:输入 ( 除PD7~PD4未使用 )
_pdpu = 0b00000000;//PD口上拉电阻控制位
//0:除能 1:使能 ( 除PD7~PD4未使用 )
_pd = 0b00000000;//初始化PD口
_sledc0 = 0b00000101;//源电流选择位( 引脚为CMOS 输出时,相应源电流选择位的设置才有效 )
//b7~b6:PB7~PB4电流选择位
//b5~b4:PB3~PB0电流选择位
//b3~b2:PA7~PA4电流选择位
//b1~b0:PA3~PA0电流选择位
_sledc1 = 0b00000001;//源电流选择位( 引脚为CMOS 输出时,相应源电流选择位的设置才有效 )
//b7~b2:空
//b1~b0:PD3~PD0电流选择位
_adcr0=0xc0;
_adcr1=0x00;
_acerl=0x01;
//*********************************************************************************
// 定时50uS中断
//*********************************************************************************
_tmr = 255-250;//定时初值
_tmrc = 0b00010100;//b7~b6:空
//b5:定时器时钟源选择 0:Fsys 1:Fsub
//b4:定时器使能 0:除能 1:使能
//b3:空
//b2~b0:定时器预分频比选择 时钟(011)=Fsys/8
_te=1;
_emi=1;
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!