您现在的位置是:主页 > news > ecshop网站价格/深圳白帽优化
ecshop网站价格/深圳白帽优化
admin2025/5/17 0:12:19【news】
简介ecshop网站价格,深圳白帽优化,公司网站建设发票能抵扣不,京东网站开发多少钱采用PMC/PMS153芯片,选用哪一种芯片只需在文件中选定对应芯片即可。 定时器中断,1ms进一次中断,用示波器看过频率是正常的,误差小于1us。 //主控:PMC153 (根据具体IC以及封装修改) // _________________…
ecshop网站价格,深圳白帽优化,公司网站建设发票能抵扣不,京东网站开发多少钱采用PMC/PMS153芯片,选用哪一种芯片只需在文件中选定对应芯片即可。
定时器中断,1ms进一次中断,用示波器看过频率是正常的,误差小于1us。 //主控:PMC153 (根据具体IC以及封装修改)
// _________________…
采用PMC/PMS153芯片,选用哪一种芯片只需在文件中选定对应芯片即可。
定时器中断,1ms进一次中断,用示波器看过频率是正常的,误差小于1us。
//主控:PMC153 (根据具体IC以及封装修改)
// ________________________
// -|PB5 PB2 |-
// LED4-|PB6 PB1 |-
// LED3-|PB7 PB0/INT1|-
// -|VDD GND |-
// LED2-|PA7 PA0/INT0|-
// LED1-|PA6 PA4 |- LED6
// -|PA5/PRSTB PA3 |- LED5
// ------------------------ #include "extern.h"// .outfile %S_%TyymmddHHMMSS_%x.PDK //输出的烧录文件带校验码、芯片型号、时间日期typedef byte u8;
typedef word u16;
typedef EWORD u24;
typedef DWORD u32;#define SetPortA() PAPH = 0XD9; PAC = 0XD8; PA = 0XD9
#define SetPortB() PBPH = 0XC0; PBC = 0XC0; PB = 0XC0
//==================单个io口的初始化==================//
// paph.0 = 1; //上拉 0/1->无/有
// pac.0 = 1; //pac 0:IN 1:OUT 模式:0/1->输入/输出
// pa.0 = 0; //输出0/1
//=================一个io端口的初始化=================//
// paph = 0x01;
// pac = 0X01; //pac 0:IN 1:OUT
// pa = 0x00;
//上面两个都是对PA.0进行初始化为0,不建议对单个IO口操作,推荐使用下面那种,对整组io进行设置/************************************************************************************/
/* LED灯接口配置 */
/************************************************************************************/
#define LED1_ON() PA.6 = 0
#define LED1_OFF() PA.6 = 1
#define LED2_ON() PA.7 = 0
#define LED2_OFF() PA.7 = 1
#define LED3_ON() PB.7 = 0
#define LED3_OFF() PB.7 = 1
#define LED4_ON() PB.6 = 0
#define LED4_OFF() PB.6 = 1
#define LED5_ON() PA.3 = 0
#define LED5_OFF() PA.3 = 1
#define LED6_ON() PA.4 = 0
#define LED6_OFF() PA.4 = 1u16 T16val;
u8 gCnt;
u16 Tcount;
void sys_init(void)
{T16val = 0;gCnt = 0;Tcount = 0;
}
/************************************************************************************/
/* 16位计数定时器T16 */
/************************************************************************************/
#define USER_TIMER_CONFIG() $ T16M IHRC, /16, BIT10 //对t16寄存器进行配置 时钟:IHRC 分频:/16 中断源:BIT10
#define ENABLE_TIMER() SET1 INTEN.2 //$ INTEN T16 //开定时器中断
#define DISENABLE_TIMER() SET0 INTEN.2 //关定时器中断
#define INIT_TIMER_VALUE(n) STT16 n//装载定时器计数值
#define EA_INT() ENGINT//开总中断
#define DIS_INT() DISGINT//关总中断
#define CONST_TIME_VALUE 24//0x10E//224// (BIT - CONST_TIME_VALUE) / (IHRC / 分频) = us/************************************************************************************/
//一次中断的时间计算公式 (BIT - CONST_TIME_VALUE) / (IHRC / 分频) = us
// (2^10 - 24) / (16 / 16) = 1000us
void Set_User_T16(void)
{ USER_TIMER_CONFIG();T16val = CONST_TIME_VALUE;INIT_TIMER_VALUE(T16val);ENABLE_TIMER();INTRQ = 0;//清除INTRQEA_INT();
}/************************************************************************************/
/* 主函数 */
/************************************************************************************/
void FPPA0 (void)
{
// .ADJUST_IC SYSCLK=IHRC/4 // SYSCLK=IHRC/4.ADJUST_IC SYSCLK=IHRC/4, IHRC=16MHz,VDD=3.3V // SYSCLK=IHRC/2 //系统时钟4M
// clkmd.En_WatchDog = 1; // WatchDog Enable
// clkmd.En_Reset = 1; // PA.5 as Reset pin// Insert Initial CodeSetPortA();SetPortB();sys_init();Set_User_T16();while (1){
// ...
// wdreset;if (gCnt) { // 利用IO口翻转看中断时间LED1_ON();} else {LED1_OFF();}}}/************************************************************************************/
/* 中断 */
/************************************************************************************/
void Interrupt (void)
{pushaf;if (Intrq.T16){ // T16 Trig// User can add codeIntrq.T16 = 0;T16val = CONST_TIME_VALUE;INIT_TIMER_VALUE(T16val);//中断执行区Tcount++;if(Tcount >= 2000){if (gCnt) { // 利用IO口翻转看中断时间gCnt = 0;} else {gCnt = 1;}Tcount = 0;}}popaf;
}