bingdian001.com

Similar documents
Microsoft Word - MSP430 Launchpad 指导书.docx

CC213

+00DE _01EN.book

FY.DOC

untitled

untitled

学习MSP430单片机推荐参考书

C C C The Most Beautiful Language and Most Dangerous Language in the Programming World! C 2 C C C 4 C Project 30 C Project 3 60 Project 40

51 C 51 isp 10 C PCB C C C C KEIL

T stg -40 to 125 C V cc 3.8V V dc RH 0 to 100 %RH T a -40 to +125 C -0.3 to 3.6V V -0.3 to VDD+0.3 V -10 to +10 ma = 25 = 3V) VDD

untitled

PIC16F F MPLAB 08 16F LED 15 LED

<4D F736F F D20CBABC1FA DA3A8BAACB6C1D0B44D31A3A9C4A3BFE9D7CAC1CF B0E62E646F63>

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor

untitled

新版 明解C++入門編

目录

Car DVD API User Manual V0.2 Feb 03, 2008

a b c d e f g C2 C1 2

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

( CIP) /. :, ( ) ISBN TP CIP ( 2005) : : : : * : : 174 ( A ) : : ( 023) : ( 023)

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha

nooog


untitled

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;

12232A LED LED LED EL EL CCFL EL CCF


海 南 冯 琳 峰 海 南 省 锅 炉 压 力 容 器 与 特 种 设 备 检 验 所 海 南 省 定 安 县 白 蒙 路 47 号 信 XC 内 蒙 古 冯 磊 赤 峰 市 特 种 设 备 检 验 所 内 蒙 古 赤 峰 市 红 山 区 八 里 铺 油 库 路

26 D00 27 D02 28 D03 29 D05 30 D06 31 D10 32 D12 33 D13 34 D14 35 D16 36 D17 37 D18, 38 D19 39 D20 40 D21 41 D22 42 D23 43 D24 44 D25 45 D26 46 D27 47

JLX

概述

邏輯分析儀的概念與原理-展示版

an153f

LBS 行 200 /0 /2 3. 行 ALFA AUTO. MACHINERY CO. LTD

新・明解C言語入門編『索引』

Microsoft Word - 实用案例.doc

Important Notice SUNPLUS TECHNOLOGY CO. reserves the right to change this documentation without prior notice. Information provided by SUNPLUS TECHNOLO

普 陀 教 育 ( 总 189) 第 三 届 普 陀 杯 专 栏 普 陀 区 教 育 学 院 说 课 主 要 从 课 堂 教 学 设 计 与 实 施 和 教 师 专 业 素 现 场 说 课 养 两 方 面 进 行 评 价

华恒家庭网关方案

Bus Hound 5

《计算机应用基础》学习材料(讲义)

audiogram3 Owners Manual

ICD ICD ICD ICD ICD

FM1935X智能非接触读写器芯片

ebook14-4

Gerotor Motors Series Dimensions A,B C T L L G1/2 M G1/ A 4 C H4 E

P4VM800_BIOS_CN.p65

untitled

了 波 涛 和 号 声 袁 读 者 很 容 易 就 进 入 广 州 城 的 水 上 旅 途 袁 进 入 一 座 野 水 上 名 城 冶 的 传 说 中 去 遥 于 是 袁 一 座 名 城 往 事 充 满 了 漂 流 感 袁 旋 律 自 水 上 而 来 袁 我 们 就 这 样 来 到 了 往 事 的

壹、摘 要

员工签到录

P4V88+_BIOS_CN.p65

...2 SK 500 G SK 500 G / /

1 TPIS TPIS 2 2

untitled

表 决, 审 议 程 序 符 合 有 关 法 律 法 规 和 本 公 司 章 程 的 规 定 3 本 议 案 尚 需 提 交 股 东 大 会 审 议, 与 该 等 交 易 有 利 害 关 系 的 关 联 股 东 将 放 弃 在 股 东 大 会 上 对 相 关 议 案 的 投 票 权 ( 二 ) 公

<4D F736F F D20B9F0D5FEB0ECB7A2A3A A3A93532BAC52E646F63>

103_02.xls

<313032A655A874B2D5B3CCA743BFFDA8FABCD0B7C7AAED2E786C73>

柳州历史上的今天内文改版式.FIT)

生 產 準 備 您 接 近 生 產 之 注 意 事 項 : 備 妥 住 院 用 物, 勿 遠 行 ( 生 產 用 物 包 ) 最 好 有 人 在 家 陪 伴, 或 和 陪 產 者 保 持 連 繫, 有 任 何 狀 況 可 立 即 趕 到 可 做 家 事 散 步 蹲 下 等 運 動, 以 不 太 累

省十二届人大常委会

Q8. 公 營 事 業 機 構 之 公 務 員 兼 具 勞 工 身 分 者, 於 97 年 3 月 19 日 以 前, 原 選 擇 參 加 勞 保, 調 任 其 他 公 營 事 業 機 構 時, 應 改 參 加 公 保 所 謂 調 任 其 他 公 營 事 業 機 構 之 判 別 依 據 ( 或 標

学生工作部处2010年工作总结

天人炁功行入與感應經驗分享

決議、附帶決議及注意事項

YYW1.nps

穨邱秀玲綜合展望報告.PDF

???? Microsoft Office Word ????.docx

1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F B. 1(VCC/GND) SH79F6431 C. VDDIO SH79F6431 P4 P5 P0.6 P0.7 VDDIO VDDIO=5V D. 2 V 1.0

目 錄 壹 基 本 資 料... 1 貳 課 程 執 行 成 果... 1 一 課 程 目 標 :... 1 二 服 務 進 行 機 構 :... 2 ( 一 ) 機 構 簡 介... 2 ( 二 ) 合 作 模 式... 3 ( 三 ) 服 務 進 行 方 式... 4 ( 四 ) 內 容...

68369 (ppp quickstart guide)

P3B-F Pentium III/II/Celeron TM

INCF SEC1,F ; 將 SEC1+1 作查表取回對應數字 MOVF SEC1,W banksel STRING1 banksel PORTB RETFIE run_sec2: MOVF SEC2,W SUBLW.5 GOTO run_min ; 將秒個位數歸 0 CLRF SEC1 MOVL

untitled

目 录 第 一 部 分 档 案 局 概 况 一 主 要 职 责 二 部 门 决 算 单 位 构 成 第 二 部 分 档 案 局 2016 年 度 部 门 预 算 表 一 2016 年 度 市 级 部 门 收 支 预 算 总 表 二 2016 年 度 市 级 部 门 支 出 预 算 表 三 2016

2015 年 度 收 入 支 出 决 算 总 表 单 位 名 称 : 北 京 市 朝 阳 区 卫 生 局 单 位 : 万 元 收 入 支 出 项 目 决 算 数 项 目 ( 按 功 能 分 类 ) 决 算 数 一 财 政 拨 款 一 一 般 公 共 服 务 支 出 二

Cover-3.indd, page Normalize

人 間 菩 提 Part 1 人 間 菩 提 Part 2 清 涼 菩 提 正 覺 修 行 清 心 發 願 自 重 ----

FP.pdf


EK-STM32F

ebook122-3

untitled

实 习 上 下 点 表 格 解 释 和 相 关 纪 律 要 求 : 1 表 格 中 所 有 名 词 都 为 简 称, 包 括 医 院 名 称 四 年 级 五 年 级 各 专 业 名 称 等 所 有 时 间 都 为 学 生 装 好 行 李 出 发 时 间, 请 提 前 0 分 钟 将 行 李 运 到

简报158期.doc

zt

2016 年 地 质 工 程 系 教 学 工 作 安 排 2016 学 年 我 系 将 在 总 结 过 去 工 作 的 基 础 上, 结 合 今 年 学 院 以 抓 质 量 强 内 涵 促 改 革 调 结 构 建 品 牌 细 管 理 重 过 程 为 宗 旨, 以 规 范 管 理 深 化 内 涵 为

<4D F736F F D203136BCADBBD8D2E4D3EBD1D0BEBF2E646F63>

萧山中学课程建设方案.doc


Microsoft Word - 9pinggb_A4.doc

Microsoft Word - 9pinggb_A4-f4.doc

理 论 探 索 事 业 单 位 改 革 的 五 点 思 考 余 路 [ 摘 要 ] 事 业 单 位 改 革 是 中 国 改 革 的 重 要 环 节, 其 影 响 力 和 难 度 不 亚 于 国 有 企 业 改 革 本 文 着 重 围 绕 推 进 事 业 单 位 改 革 应 考 虑 的 五 个 方 面

日 本 位 于 亚 洲 东 部, 太 平 洋 西 北 角, 是 我 国 东 方 的 一 个 岛 国 在 洪 积 世 ( 注 1) 的 大 部 分 时 期 内, 日 本 与 大 陆 相 连 大 约 在 洪 积 世 晚 期 至 冲 积 世 ( 注 2) 初 期, 日 本 各 地 发 生 海 进, 出 现

2深化教育教学改革、创新人才培养模式


Transcription:

TSM12M TSM12 STM8L152C6, STM8L152R8 MSP430F5325 whym1987@126.com! /******************************************************************************* * : TSM12.c * : * : 2013/10/21 * : TSM12, STM8L f(sysclk) = 4 MHz 8MHz TIM_DLY_CNT ****************************************************************************** #include "TSM12.h" #include "key.h" u8 fg_tsm_int = 0; /* extern void delay_ms(u16 n_ms); void TSM12_IO_Init(PWR_Mode_TypeDef pwr_st) if(pwr_st == PWR_LPM) scl, sda, en GPIO_Init(TSM_GPIO_PORT, TSM_SCL_PIN TSM_SDA_PIN TSM_EN_PIN, GPIO_Mode_Out_PP_High_Fast);

INT GPIO_Init(TSM_GPIO_PORT, TSM_INT_PIN, GPIO_Mode_In_PU_IT); EXTI_SetPinSensitivity(TSM_EXTI_INT_PIN, EXTI_Trigger_Falling); KeyValue_Last = KeyValue= KeyValue_Ready = keynull; if(pwr_st == PWR_ACTIVE) INT GPIO_Init(TSM_GPIO_PORT, TSM_INT_PIN, GPIO_Mode_In_PU_No_IT); void TSM12_IO_Init(void) GPIO_Init(TSM_GPIO_PORT, TSM_EN_PIN TSM_SDA_PIN TSM_SCL_PIN, GPIO_Mode_Out_PP_High_Fast); GPIO_Init(TSM_INT_GPIO_PORT, TSM_INT_PIN, GPIO_Mode_In_FL_IT); EXTI_SetPinSensitivity(EXTI_Pin_2, EXTI_Trigger_Falling); /******************************************************************************* * : * : * : * : 4MHZ nop() ******************************************************************************

static void delayus(u8 dat) for(u8 i=0; i<dat; i++) IWDG->KR = IWDG_KEY_REFRESH; Clear_WDT(); nop(); nop(); nop(); nop(); /* static void I2C_Start(void) TSM_SDA_OUT(); TSM_SCL_H; TSM_SDA_H; TSM_SDA_L; /* 4.7us TSM_SCL_L; /* static void I2C_Stop(void)

TSM_SDA_OUT(); TSM_SCL_L; TSM_SDA_L; TSM_SCL_H; TSM_SDA_H; /* This function sends a device Ack or NAck signal When you want to send ACK signal to slave device, you make back 0. When you want to send NACK signal to slave device, you make back 1. NONE static void I2C_SendAck(u8 back) TSM_SDA_OUT(); if(back) TSM_SDA_H; else TSM_SDA_L; TSM_SCL_H; delayus(5); TSM_SCL_L;

/* ACK 0- ACK 1- ACK static u8 I2C_WaitAck(void) volatile u16 i; TSM_SDA_IN(); if(tsm_sda_read()) TSM_SCL_L; return 1; TSM_SCL_L; return 0; /* dat ( ) 8 dat dat static void I2C_WriteByte(u8 dat) u8 i;

TSM_SDA_OUT(); TSM_SCL_L; for(i=0; i<8; i++ ) if(dat & 0x80) TSM_SDA_H; else TSM_SDA_L; TSM_SCL_H;/* TSM_SCL_L; delayus(1); dat <<= 1; TSM_SDA_H; TSM_SCL_H; /*----------------------------------------------------------------------------- ------------------------------------------------------------------------------ static u8 I2C_ReadByte(void)

u8 i,temp = 0; TSM_SDA_IN();/* TSM_SCL_L;/* for(i= 0; i<8; i++) temp <<= 1; TSM_SCL_H; /* if(tsm_sda_read()) /* temp temp++; TSM_SCL_L; return temp; /* ----------------- Beautiful part line ------------------------------------- /*----------------------------------------------------------------------------- TSM12 writedata-- WriteAddr--

ErrorStatus ------------------------------------------------------------------------------ u8 TSM_Write_Byte(u8 WriteAddr,u8 WriteData) /* I2C_Start(); /* I2C_WriteByte(DEVICE_WRITE_ADDR); if(i2c_waitack()) return ERROR; /* I2C_WriteByte(WriteAddr); if(i2c_waitack()) return ERROR; /* I2C_WriteByte(WriteData); if(i2c_waitack()) return ERROR; /* I2C_Stop(); return SUCCESS; /* ---------------------------------------------------------------------------- GT216L writedata1 2-- WriteAddr-- ErrorStatus ------------------------------------------------------------------------------

u8 TSM_Write_2Byte(u8 WriteAddr, u8 WriteData1, u8 WriteData2) /* I2C_Start(); /* I2C_WriteByte(DEVICE_WRITE_ADDR); if(i2c_waitack()) return ERROR; /* I2C_WriteByte(WriteAddr); if(i2c_waitack()) return ERROR; /* 1 LSB I2C_WriteByte(WriteData1); if(i2c_waitack()) return ERROR; /* 2 MSB I2C_WriteByte(WriteData2); if(i2c_waitack()) return ERROR; /* I2C_Stop(); return SUCCESS; /******************************************************************************* * : TSM_ReadOneByte() * :

* : writeaddr-- * :, ERROR * : ****************************************************************************** u8 TSM_ReadOneByte(u8 writeaddr) u8 buffer = 0; /* I2C_Start(); /* I2C_WriteByte(DEVICE_WRITE_ADDR); if(i2c_waitack()) goto L_OUT; /* I2C_WriteByte(writeAddr); if(i2c_waitack()) goto L_OUT; /* I2C_Stop(); /* I2C_Start(); /* GT216L I2C_WriteByte(DEVICE_READ_ADDR); if(i2c_waitack()) goto L_OUT;

/* buffer = I2C_ReadByte(); I2C_SendAck(1); /* I2C_Stop(); return buffer; L_OUT: /* I2C_Stop(); return ERROR; /*----------------------------------------------------------------------------- writeaddr -- *butter -- length -- ErrorStatus ------------------------------------------------------------------------------ u8 TSM_ReadMutiBytes(u8 writeaddr, u8 *buffer, u8 length) u8 i; /*

I2C_Start(); /* I2C_WriteByte(DEVICE_WRITE_ADDR); if(i2c_waitack()) goto L_OUT; /* I2C_WriteByte(writeAddr); if(i2c_waitack()) goto L_OUT; /* I2C_Stop(); /* I2C_Start(); /* GT216L I2C_WriteByte(DEVICE_READ_ADDR); if(i2c_waitack()) goto L_OUT; /* for( i = 0; i<length; i++ ) buffer[i] = I2C_ReadByte(); if( i == (length-1) ) I2C_SendAck(1); NAck = 1 else I2C_SendAck(0); Ack = 0

/* I2C_Stop(); return SUCCESS; L_OUT: /* I2C_Stop(); return ERROR; /******************************************************************************* * : TSM12_Init() * : TSM12M * : * : * : ****************************************************************************** void TSM12_Init(void) u16 i; /* Power ON TSM_EN_L; delay_ms(100); wait for 100ms for(i = TIM_DLY_CNT; i>0; i--) delayus(100); /* H/W Reset, enable software reset TSM_Write_Byte(CTRL2, 0x0F);enable sleep mode

TSM_Write_Byte(CTRL2, 0x09);enable sleep mode delay_ms(200); /* Sensitivity setting,0x00 TSM_Write_Byte(SENS1, CH_SENS(3,3)); 9, 6 TSM_Write_Byte(SENS2, CH_SENS(3,3)); 3, # TSM_Write_Byte(SENS3, CH_SENS(3,3)); 8, 5 TSM_Write_Byte(SENS4, CH_SENS(3,3)); 2, 0 TSM_Write_Byte(SENS5, CH_SENS(3,3)); *, 1 TSM_Write_Byte(SENS6, CH_SENS(3,3)); 4, 7 /* General Control Register1 setting TSM_Write_Byte(CTRL1, 0x33); TSM_Write_2Byte(REF_RST1, 0x00, 0x00);renew value of everyone channel TSM_Write_2Byte(CH_HOLD1, 0x00, 0x00);enable all channels TSM_EN_H;TSM12 I2C disable reset off TSM_Write_Byte(CTRL2, 0x03);Normal mode, disable sleep mode /******************************************************************************* * : TSM12_Into_Sleep_Mode() * : TSM12M * :

* : * : ****************************************************************************** void TSM12_Into_Sleep_Mode(void) u16 i; TSM_EN_H; TSM_EN_L for(i = TIM_DLY_CNT; i>0; i--) delayus(100); TSM_EN_L;i2c enable delay_ms(100); WaitByX10ms(10); for(i = TIM_DLY_CNT; i>0; i--) delayus(100); TSM_Write_Byte(CTRL2, 0x07); TSM_EN_H; /******************************************************************************* * : TSM12_Exit_Sleep_Mode() * : TSM12M * : * : * : ****************************************************************************** void TSM12_Exit_Sleep_Mode(void)

u16 i; TSM_EN_L;i2c enable for(i = TIM_DLY_CNT; i>0; i--) delayus(100); TSM_Write_Byte(CTRL2, 0x03); TSM_EN_H; /*******************************END OF FILE*********************************************** /******************************************************************************* * : TSM12.h * : * : 2013/10/21 * : TSM12-2013 11 20 STM8LR8T6 MSP430 ****************************************************************************** #ifndef TSM12_H #define TSM12_H #include "general.h" #include "HW_Config.h" #define DEVICE_WRITE_ADDR 0xD0

#define DEVICE_READ_ADDR 0xD1 /* a,b Ch_n CH_n-1 1. 0 ~ 7( ) 2. 9 ~ F( ) 2 1 #define CH_SENS(a,b) 0x##a##b #define TIM_DLY_CNT (u16)150, STM8L fsysclk = 8MHZ #define TIM_DLY_CNT (u16)100 fsystclk = 4MHZ #if 1 function pins define #define TSM_GPIO_PORT #define TSM_SDA_PIN #define TSM_SCL_PIN #define TSM_EN_PIN GPIOF GPIO_Pin_5 GPIO_Pin_6 GPIO_Pin_4 #define TSM_INT_GPIO_PORT GPIOE #define TSM_INT_PIN GPIO_Pin_2 #define TSM_EXTI_INT_PIN EXTI_Pin_2 #else #define TSM_GPIO_PORT #define TSM_SDA_PIN #define TSM_SCL_PIN #define TSM_EN_PIN GPIOE GPIO_Pin_1 GPIO_Pin_0 GPIO_Pin_3 #define TSM_INT_GPIO_PORT GPIOE

#define TSM_INT_PIN GPIO_Pin_2 #define TSM_EXTI_INT_PIN EXTI_Pin_2 #endif #define TSM_SDA_OUT() TSM_GPIO_PORT->DDR = TSM_SDA_PIN output mode #define TSM_SDA_IN() GPIO_Init(TSM_GPIO_PORT, TSM_SDA_PIN, GPIO_Mode_In_FL_No_IT) #define TSM_SDA_H #define TSM_SDA_L TSM_GPIO_PORT->ODR = TSM_SDA_PIN TSM_GPIO_PORT->ODR &= ~TSM_SDA_PIN #define TSM_SCL_H #define TSM_SCL_L TSM_GPIO_PORT->ODR = TSM_SCL_PIN TSM_GPIO_PORT->ODR &= ~TSM_SCL_PIN #define TSM_EN_H #define TSM_EN_L TSM_GPIO_PORT->ODR = TSM_EN_PIN TSM_GPIO_PORT->ODR &= ~TSM_EN_PIN #define TSM_SDA_READ() GPIO_ReadInputDataBit(TSM_GPIO_PORT, TSM_SDA_PIN) SDA msp430 #define TSM_SDA_DIR P1DIR #define TSM_SDA_REG_OUT P1OUT #define TSM_SDA_REG_IN P1IN #define TSM_SDA_IE #define TSM_SDA_SEL #define TSM_SDA_PIN P1IE P1SEL BIT1 #define TSM_SCL_DIR #define TSM_SCL_OUT #define TSM_SCL_IE #define TSM_SCL_SEL #define TSM_SCL_PIN P1DIR P1OUT P1IE P1SEL BIT0 #define TSM_EN_DIR P8DIR

#define TSM_EN_OUT #define TSM_EN_IE #define TSM_EN_SEL #define TSM_EN_PIN P8OUT P8IE P8SEL BIT2 #define TSM_INT_DIR #define TSM_INT_OUT #define TSM_INT_IN #define TSM_INT_IE #define TSM_INT_IES #define TSM_INT_SEL #define TSM_INT_PIN P1DIR P1OUT P1IN P1IE P1IES P1SEL BIT2 #define TSM_SDA_OUT() TSM_SDA_DIR = TSM_SDA_PIN output mode #define TSM_SDA_IN() TSM_SDA_DIR &= ~TSM_SDA_PIN #define TSM_SDA_H #define TSM_SDA_L TSM_SDA_REG_OUT = TSM_SDA_PIN TSM_SDA_REG_OUT &= ~TSM_SDA_PIN #define TSM_SCL_H #define TSM_SCL_L TSM_SCL_OUT = TSM_SCL_PIN TSM_SCL_OUT &= ~TSM_SCL_PIN #define TSM_EN_H #define TSM_EN_L TSM_EN_OUT = TSM_EN_PIN TSM_EN_OUT &= ~TSM_EN_PIN #define TSM12_I2C_ON() TSM_EN_L #define TSM_SDA_READ() GPIO_ReadInputDataBit(TSM_GPIO_PORT, TSM_SDA_PIN) SDA #define TSM_SDA_READ() ((TSM_SDA_REG_IN & TSM_SDA_PIN) >> 1) /* TSM12M Register Map typedef enum

SENS1 = 0x02, Sensitivity, Channel 2 and 1 SENS2 = 0x03, Channel 4 and 3 SENS3 = 0x04, Channel 6 and 5 SENS4 = 0x05, Channel 8 and 7 SENS5 = 0x06, Channel 10 and 9 SENS6 = 0x07, Channel 12 and 11 CTRL1 = 0x08, CTRL2 = 0x09, REF_RST1 = 0x0A, REF_RST2 = 0x0B, CH_HOLD1 = 0x0C, CH_HOLD2 = 0x0D, CAL_HOLD1 = 0x0E, CAL_HOLD2 = 0x0F, OUTPUT1 = 0x10, OUTPUT2 = 0x11, OUTPUT3 = 0x12, TSM_RegMapAddr_TypeDef; /* External varialbles ------------------------------------------------------- extern u8 fg_tsm_int; /* External functions -------------------------------------------------------- extern void TSM12_IO_Init(void); extern void TSM12_Init(void); extern u8 TSM_ReadOneByte(u8 writeaddr); extern u8 TSM_ReadMutiBytes(u8 writeaddr, u8 *buffer, u8 length); extern void TSM12_Into_Sleep_Mode(void); extern void TSM12_Exit_Sleep_Mode(void); #endif

/*------------------------------------END OF FILE-----------------------------