当前位置:文档之家› gpio_request 原形代码

gpio_request 原形代码

gpio_request 原形代码
gpio_request 原形代码

gpio_request 原形代码

分类:我所知的linux2011-08-22 19:24 427人阅读评论(0) 收藏举报

其原型为int gpio_request(unsigned gpio, const char *label) 先说说其参数,gpio则为你要申请的哪一个管脚,label则是为其取一个名字。其具体实现如下:

view plain

1.int gpio_request(unsigned gpio, const char *label)

2.{

3.struct gpio_desc *desc;//这个自己看源码

4.struct gpio_chip *chip;//这个自己看源码

5.int status = -EINVAL;

6. unsigned long flags;

7. spin_lock_irqsave(&gpio_lock, flags);//屏蔽中断

8.if (!gpio_is_valid(gpio))//判断是否有效,也就是参数的取值范围判断

9.goto done;

10. desc = &gpio_desc[gpio];

11.//这个是关键gpio_desc为定义的一个全局的数组变量,这个函数的实值也就是,

12.//用gpio_desc里面的一个变量来表示数组中的这个元素已经被申请了,而这个变量就是下面会看到的

desc->flags。

13.chip = desc->chip;//按理说这个这个全局的gpio_desc如果没有初始化的话,这个chip就为空了,随

后就直接返回-EINVAL了。

14.if (chip == NULL)如果不为空继续往下走

15.goto done;

16.if (!try_module_get(chip->owner))

17.goto done;

18./* NOTE: gpio_request() can be called in early boot,

19. * before IRQs are enabled, for non-sleeping (SOC) GPIOs.

20. */

21.if (test_and_set_bit(FLAG_REQUESTED, &desc->flags) == 0) {

22.//这里测试并设置flags的第FLAG_REQUESTED位,如果没有被申请就返回该位的原值0,分析到这儿,也差

不多满足了我的个人要求。

23. desc_set_label(desc, label ? : "?");

24. status = 0;

25.} else {

26. status = -EBUSY;

27. module_put(chip->owner);

28.goto done;

29.}

30.if (chip->request) {

31./* chip->request may sleep */

32. spin_unlock_irqrestore(&gpio_lock, flags);

33. status = chip->request(chip, gpio - chip->base);

34. spin_lock_irqsave(&gpio_lock, flags);

35.if (status < 0) {

36. desc_set_label(desc, NULL);

37. module_put(chip->owner);

38. clear_bit(FLAG_REQUESTED, &desc->flags);

39. }

40.}

41.done:

42.if (status)

43. pr_debug("gpio_request: gpio-%d (%s) status %d\n",

44. gpio, label ? : "?", status);

45.spin_unlock_irqrestore(&gpio_lock, flags);

46.return status;

47.}

davinci 平台:

view plain

1./*

2.* TI DaVinci GPIO Support

3.*

4.* Copyright (c) 2006 David Brownell

5.* Copyright (c) 2007, MontaVista Software, Inc.

6.*

7.* This program is free software; you can redistribute it and/or modify

8.* it under the terms of the GNU General Public License as published by

9.* the Free Software Foundation; either version 2 of the License, or

10.* (at your option) any later version.

11.*/

12.

13.#include

14.#include

15.#include

16.#include

17.#include

18.#include

19.

20.#include

21.#include

22.#include

23.

24.#include

25.#include

26.#include

27.#include

28.

29.#include

30.

31./*

32.该文件实现了gpio的各种应用功能和向内核注册gpio的中断例程等功能。

33.用户的驱动程序可调用gpio_request和gpio_free使用或释放该gpio,

34.可以调用gpio_direction_input和gpio_direction_output函数设置gpio输入输出方向,

35.调用gpio_get_value和gpio_set_value获取设置值。

36.*/

37.

38.static DEFINE_SPINLOCK(gpio_lock);

39.

40./* 总共有DAVINCI_N_GPIO(71)个gpio引脚,故使用相应多的bit来记录这些引脚的使用状态 */

41.static DECLARE_BITMAP(gpio_in_use, DAVINCI_N_GPIO);

42.

43./*

44.申请一个gpio,其实就是检查该gpio是否空闲,如果空闲就可以使用并将该gpio相应的bit置位

45.(在gpio_in_use中)。

46.*/

47.int gpio_request(unsigned gpio, const char *tag)

48.{

49.if (gpio >= DAVINCI_N_GPIO)

50.return -EINVAL;

51.if (test_and_set_bit(gpio, gpio_in_use))

52.return -EBUSY;

53.return 0;

54.}

55.EXPORT_SYMBOL(gpio_request);

56.

57./*

58.释放一个gpio,其实就是清除gpio相应的控制bit位(在gpio_in_use中)。

59.*/

60.void gpio_free(unsigned gpio)

61.{

62.if (gpio >= DAVINCI_N_GPIO)

63.return;

64. clear_bit(gpio, gpio_in_use);

65.}

66.EXPORT_SYMBOL(gpio_free);

67.

68./* 获得gpio_controller结构体指针,gpio_controller结构体是gpio的核心控制单元,里面包含

69.gpio的设置和数据寄存器。该结构体和__gpio_to_controller函数在/include/asm-arm/

70.arch-davinci/gpio.h中定义,具体如下:

71.struct gpio_controller {

72. u32 dir;

73. u32 out_data;

74. u32 set_data;

75. u32 clr_data;

76. u32 in_data;

77. u32 set_rising;

78. u32 clr_rising;

79. u32 set_falling;

80. u32 clr_falling;

81. u32 intstat;

82.};

83.

84.static inline struct gpio_controller *__iomem

85.__gpio_to_controller(unsigned gpio)

86.{

87. void *__iomem ptr;

88. if (gpio >= DAVINCI_N_GPIO)

89. return NULL;

90.

91. if (gpio < 32)

92. ptr = (void *__iomem)IO_ADDRESS(DAVINCI_GPIO_BASE + 0x10);

93. else if (gpio < 64)

94. ptr = (void *__iomem)IO_ADDRESS(DAVINCI_GPIO_BASE + 0x38);

95. else if (gpio < 96)

96. ptr = (void *__iomem)IO_ADDRESS(DAVINCI_GPIO_BASE + 0x60);

97. else

98. ptr = (void *__iomem)IO_ADDRESS(DAVINCI_GPIO_BASE + 0x88);

99. return ptr;

100.}

101.由上面的定义和ti的SPRUE25.pdf手册可以看出,__gpio_to_controller函数返回的是102.g pio_controller结构体到第一个成员dir的虚拟地址。获取了这个结构体指针后,

103.便可以控制相应的gpio了。dm644x共有71个gpio,

104.所以使用三个gpio_controller结构体控制,关于这个后面会由更详细的分析,

105.*/

106./* create a non-inlined version */

107.s tatic struct gpio_controller *__iomem gpio2controller(unsigned gpio) 108.{

109.return __gpio_to_controller(gpio);

110.}

111.

112./*

113.向某个gpio设置值,0或1。如果向gpio写1,则向set_data寄存器相应的位置1,如果写0,114.则向clr_data寄存器相应的位置1.__gpio_mask函数在gpio.h中定义,定义如下,

115.s tatic inline u32 __gpio_mask(unsigned gpio)

116.{

117. return 1 << (gpio % 32);

118.}

119.因为71个引脚由3个结构体控制,第一个控制前32个gpio,第二个控制次32个gpio,

120.最后一个控制剩余的7个gpio,故__gpio_mask函数的作用是找到在其相应控制结构体里的偏移数,121.比如gpio34,那么其由第二个结构体控制,在这个机构体里的偏移是3(从0开始算,就是第二位)。122.使用这个函数之前,必须确认该gpio设置成输出模式。

123.*/

124./*

125.* Assuming the pin is muxed as a gpio output, set its output value.

126.*/

127.v oid __gpio_set(unsigned gpio, int value)

128.{

129.struct gpio_controller *__iomem g = gpio2controller(gpio);

130.// 设置gpio的值

131. __raw_writel(__gpio_mask(gpio), value ? &g->set_data : &g->clr_data); 132.}

133.E XPORT_SYMBOL(__gpio_set);

134.

135./*

136.通过读取in_data寄存器相应该gpio的位来读取gpio的值。

137.使用这个函数之前,必须确认该gpio设置成输入模式,否则获得到值不可预料。

138.*/

139./*

140.* Read the pin's value (works even if it's set up as output);

141.* returns zero/nonzero.

142.*

143.* Note that changes are synched to the GPIO clock, so reading values back

144.* right after you've set them may give old values.

145.*/

146.i nt __gpio_get(unsigned gpio)

147.{

148.struct gpio_controller *__iomem g = gpio2controller(gpio);

149./* 读取gpio的值,!!的目的是使得返回的值为0或1.*/

150.return !!(__gpio_mask(gpio) & __raw_readl(&g->in_data));

151.}

}

152.E XPORT_SYMBOL(__gpio_get);

153.

154./*

155.通过dir寄存器相应该gpio的位来设置gpio输入输出方向,为0,则设置成输出,为1,则设置出输入。

156.该函数是设置成输入,故设置dir寄存器为1.

157.正如应为所说的,必须确认该引脚是作为gpio功能,而不是某个模块到功能,比如spi。通过PINMUX0 158.和PINMUX1两个寄存器来设置。

159.*/

160./*--------------------------------------------------------------------------*/

161.

162./*

163.* board setup code *MUST* set PINMUX0 and PINMUX1 as

164.* needed, and enable the GPIO clock.

165.*/

166.i nt gpio_direction_input(unsigned gpio)

167.{

168.struct gpio_controller *__iomem g = gpio2controller(gpio);

169. u32 temp;

170. u32 mask;

171.

172.if (!g)

173.return -EINVAL;

174. spin_lock(&gpio_lock);

175. mask = __gpio_mask(gpio);

176. temp = __raw_readl(&g->dir);

177. temp |= mask; // 设置成1

178. __raw_writel(temp, &g->dir); // 设置该gpio为输入

179. spin_unlock(&gpio_lock);

180.return 0;

181.}

182.E XPORT_SYMBOL(gpio_direction_input);

183.

184./*

185.通过dir寄存器相应该gpio的位来设置gpio输入输出方向,为0,则设置成输出,为1,则设置出输入。186.该函数是设置成输出,故设置dir寄存器为0.

187.v alue参数用于选择gpio设置成输出后该gpio输出的值。

188.*/

189.i nt gpio_direction_output(unsigned gpio, int value)

190.{

191.struct gpio_controller *__iomem g = gpio2controller(gpio);

192. u32 temp;

193. u32 mask;

194.if (!g)

195.return -EINVAL;

196.

197. spin_lock(&gpio_lock);

198. mask = __gpio_mask(gpio);

199. temp = __raw_readl(&g->dir);

200. temp &= ~mask; // 设置成0

201.//设置该gpio输出值

202. __raw_writel(mask, value ? &g->set_data : &g->clr_data);

203. __raw_writel(temp, &g->dir); // 设置gpio为输出

204. spin_unlock(&gpio_lock);

205.return 0;

206.}

207.E XPORT_SYMBOL(gpio_direction_output);

208.

209./*

210.向gpio设置值,0或1。

211.*/

212.v oid gpio_set_value(unsigned gpio, int value)

213.{

214.if (__builtin_constant_p(value)) {

215.struct gpio_controller *__iomem g;

216. u32 mask;

217.

218.if (gpio >= DAVINCI_N_GPIO)

219. __error_inval_gpio();

220.

221. g = __gpio_to_controller(gpio);

222. mask = __gpio_mask(gpio);

223.if (value)

224. __raw_writel(mask, &g->set_data); // 该gpio输出高

225.

226.else

227. __raw_writel(mask, &g->clr_data); // 该gpio输出低

228.

229.return;

230. }

231.

232. __gpio_set(gpio, value);

233.}

234.E XPORT_SYMBOL(gpio_set_value);

235.

236./*

237.读取gpio的值,0或1.

238.*/

239.i nt gpio_get_value(unsigned gpio)

240.{

241.struct gpio_controller *__iomem g;

242.

243.if (!__builtin_constant_p(gpio))/* 判断该gpio值是否为编译时常数,如果是常数,

244.函数返回 1,否则返回 0 */

245.return __gpio_get(gpio);

246.

247.if (gpio >= DAVINCI_N_GPIO)

248.return __error_inval_gpio();

249.

250. g = __gpio_to_controller(gpio);

251.

252.// 读取该gpio的值

253.

254.return !!(__gpio_mask(gpio) & __raw_readl(&g->in_data));

255.}

256.E XPORT_SYMBOL(gpio_get_value);

257.

258./*

259.* We expect irqs will normally be set up as input pins, but they can also be

260.* used as output pins ... which is convenient for testing.

261.*

262.* NOTE: GPIO0..GPIO7 also have direct INTC hookups, which work in addition

263.* to their GPIOBNK0 irq (but with a bit less overhead). But we don't have

264.* a good way to hook those up ...

265.*

266.* All those INTC hookups (GPIO0..GPIO7 plus five IRQ banks) can also

267.* serve as EDMA event triggers.

268.*/

269.

270./*

271.禁止相应该irq的gpio的中断。每个gpio都可以作为中断的来源,其中gpio0-gpio7是独立的中断来源,272.也就是分配独立的中断号,其他gpio则共用5个GPIOBNK中断线。其优先级可以在board-evm.c 273.中设置(已经介绍过)。在dm644x平台上,中断是电平边缘触发的,禁止中断其实就是既不设置

274.上升沿触发,也不设置下降沿触发。

275.*/

276.s tatic void gpio_irq_disable(unsigned irq)

277.{

278.struct gpio_controller *__iomem g = get_irq_chipdata(irq);

279. u32 mask = __gpio_mask(irq_to_gpio(irq));

280.

281. __raw_writel(mask, &g->clr_falling); // 清除下降沿触发

282.

283. __raw_writel(mask, &g->clr_rising); // 清除上升沿触发

284.

285.}

286.

287./*

288.中断使能。

289.在dm644x平台上,中断是电平边缘触发的,其实就是设置为上升沿或下降沿中断。290.*/

291.s tatic void gpio_irq_enable(unsigned irq)

292.{

293.struct gpio_controller *__iomem g = get_irq_chipdata(irq); 294. u32 mask = __gpio_mask(irq_to_gpio(irq));

295.

296.// 如果先前为下降沿中断,则使能为下降沿中断

297.

298.if (irq_desc[irq].status & IRQT_FALLING)

299. __raw_writel(mask, &g->set_falling);

300.

301.// 如果先前为上升沿中断,则使能为上升沿中断

302.

303.if (irq_desc[irq].status & IRQT_RISING)

304. __raw_writel(mask, &g->set_rising);

305.}

306.

307./*

308.设置中断类型。

309.在dm644x平台上,中断有上升沿和下降沿两种触发方式。

310.*/

311.s tatic int gpio_irq_type(unsigned irq, unsigned trigger)

312.{

313.struct gpio_controller *__iomem g = get_irq_chipdata(irq); 314. u32 mask = __gpio_mask(irq_to_gpio(irq));

315.

316.if (trigger & ~(IRQT_FALLING | IRQT_RISING))

317.return -EINVAL;

318.

319. irq_desc[irq].status &= ~IRQT_BOTHEDGE;

320. irq_desc[irq].status |= trigger;

321.

322. __raw_writel(mask, (trigger & IRQT_FALLING)

323. ? &g->set_falling : &g->clr_falling); // 设置为下降沿触发324.

325. __raw_writel(mask, (trigger & IRQT_RISING)

326. ? &g->set_rising : &g->clr_rising); // 设置为上升沿触发327.

328.return 0;

329.}

330.

331./*

332.该结构体用于注册到所有irq的中断描述结构体中(struct irqdesc),

333.而所有中断描述结构体定义成一个全局数组irq_desc 。

334.*/

335.s tatic struct irqchip gpio_irqchip = {

336. .unmask = gpio_irq_enable, /* 用于使能中断,

337.在enable_irq()等内核函数中会用到。*/

338. .mask = gpio_irq_disable,/* 用于禁止中断,

339.在disable_irq()等内核函数中会用到。*/

340. .type = gpio_irq_type, /* 用于设置中断类型,

341.在set_irq_type()内核函数中会用到。*/ 342.};

343.

344./*

345.该函数将在下面的davinci_gpio_irq_setup中使用,将被注册到五个gpio bank中断的

346.i rq_desc结构中,目的是处理所有级联的gpio中断。所谓级联的中断, 就是指有n个中断

347.共用同一个中断线。

348.在dm644x平台中,除了gpio0-gpio7外,其他63个gpio都共用五个gpiobank中断线,在这里,349.g pio0-gpio7也被注册到gpiobank中断线,但实际上并不会使用,因为它们拥有自己的

350.中断线。其中,gpio0-gpio15共用IRQ_GPIOBNK0(56)中断线,gpio16-gpio31共用

351.I RQ_GPIOBNK1(57)中断线,gpio32-gpio47共用IRQ_GPIOBNK2(58)中断线,

352.g pio48-gpio63共用IRQ_GPIOBNK4(59)中断线,gpio64-gpio70共用

353.I RQ_GPIOBNK5(60)中断线,

354.因为寄存器是32位的,所以实际上只有三组寄存器,第一组包含bank0和bank1,

355.也就是gpio0-gpio31,第二组包含bank2和bank3,也就是gpio32-gpio63,

356.第三组包含bank4和bank5,也就是gpio64-gpio70,剩余了25个位没有使用。

357.*/

358.s tatic void

359.g pio_irq_handler(unsigned irq, struct irqdesc *desc, struct pt_regs *regs) 360.{

361.struct gpio_controller *__iomem g = get_irq_chipdata(irq);

362. u32 mask = 0xffff;

363.

364./* we only care about one bank */

365.// 如果bank中断线是寄数,则说明该中断的中断状态位在INTSTATn寄存器的高16位

366.

367.if (irq & 1)

368. mask <<= 16;

369.

370./* temporarily mask (level sensitive) parent IRQ */

371. desc->chip->ack(irq);// 该ack函数会在arch/arm/mach-davinci/irq.c中注册。372.

373.while (1) {

374. u32 status;

375.struct irqdesc *gpio;

376.int n;

377.int res;

378.

379./* ack any irqs */

380./*gpio中断发生后,硬件会在INTSTATn寄存器中置位相应位,

381.以备程序查询,确定是哪个gpio*/

382. status = __raw_readl(&g->intstat) & mask;

383.if (!status)

384.break;

385. __raw_writel(status, &g->intstat); // 向该位写1清除

386.

387.if (irq & 1)

388. status >>= 16;

389.

390./* now demux them to the right lowlevel handler */

391.// 从下面的davinci_gpio_irq_setup函数可以看出来以下程序的运作。

392.

393. n = (int)get_irq_data(irq); // 获取该bank对应的第一个gpio号

394.

395. gpio = &irq_desc[n]; // 获取该bank第一个gpio号对应的中断描述符

396.

397.while (status) { // 该bank可能有多个gpio发生了中断

398.

399. res = ffs(status); // 获取第一个发生了中断的位(1-32)

400.

401. n += res; /* 获得该gpio的中断线(系统实际上只有64(0-63)个中断线,402.但那些共用的gpio的中断也有自己的断描述符和中断线(从64开始),403.仅仅是为了管理,不能通过request_irq()函数来申请。*/

404. gpio += res; // 获得该gpio的中断描述符

405.

406.

407./* 调用下面注册的do_simple_IRQ例程

408.其又会调用用户通过request_irq()

409.注册的中断例程

410. */

411. desc_handle_irq(n - 1, gpio - 1, regs);

412. status >>= res;

413. }

414. }

415. desc->chip->unmask(irq); // 打开该irq中断线

416.

417./* now it may re-trigger */

418.}

419.

421.* NOTE: for suspend/resume, probably best to make a sysdev (and class)

422.* with its suspend/resume calls hooking into the results of the set_wake() 423.* calls ... so if no gpios are wakeup events the clock can be disabled,

424.* with outputs left at previously set levels, and so that VDD3P3V.IOPWDN0 425.* can be set appropriately for GPIOV33 pins.

426.*/

427./*

428.注册gpio中断例程到内核中,并初始化了一些寄存器。

429.该函数将会被board_evm.c(其浅析已经发表)中的evm_init()函数调用。具体调用过程如下:430.s tart_kernel()-->setup_arch()-->init_machine = mdesc->init_machine

431.(init_machine是个全局函数指针变量,其指向的就是已经注册到机器描述符里evm_init());432.调用函数指针init_machine()的例程是customize_machine(),其定义为

433.a rch_initcall(customize_machine),所以,接下来的调用过程是:

434.s tart_kernel()-->do_basic_setup()-->do_initcalls()-->customize_machine()--> 435.i nit_machine()(也就是evm_init())-->davinci_gpio_irq_setup。

436.从上可以看出经历了两个过程,才调用davinci_gpio_irq_setup例程来初始化gpio中断。437.*/

438.i nt __init davinci_gpio_irq_setup(void)

439.{

440. unsigned gpio, irq, bank, banks;

441.struct clk *clk;

442.

443. clk = clk_get(NULL, "gpio"); // 获取时钟

444.

445.if (IS_ERR(clk)) {

446. printk(KERN_ERR "Error %ld getting gpio clock?\n",

447. PTR_ERR(clk));

448.return 0;

449. }

450.

451. clk_enable(clk); // 使能gpio时钟并打开该模块电源

452.

453.

454.for (gpio = 0, irq = gpio_to_irq(0), bank = (cpu_is_davinci_dm355() ? 455. IRQ_DM355_GPIOBNK0 : (cpu_is_davinci_dm6467() ?

456. IRQ_DM646X_GPIOBNK0 : IRQ_GPIOBNK0)); // dm644x的IRQ_GPIOBNK0(56) 457.

458. gpio < DAVINCI_N_GPIO; bank++) { // dm644x的DAVINCI_N_GPIO(71)

459.

460.struct gpio_controller *__iomem g = gpio2controller(gpio);

461. unsigned i;

462.

463.// 关该bank所有gpio的中断

465. __raw_writel(~0, &g->clr_falling);

466. __raw_writel(~0, &g->clr_rising);

467.

468./* set up all irqs in this bank */

469.// 同一个bank的所有gpio共用一个中断例程gpio_irq_handler

470.

471. set_irq_chained_handler(bank, gpio_irq_handler);

472. set_irq_chipdata(bank, g);

473. set_irq_data(bank, (void *)irq);

474.

475.for (i = 0; i < 16 && gpio < DAVINCI_N_GPIO;

476. i++, irq++, gpio++) {

477. set_irq_chip(irq, &gpio_irqchip); /* 注册用于gpio中断禁止、设能478.和类型选择的回调例程 */

479. set_irq_chipdata(irq, g); // 保存控制结构体(寄存器)的地址480.

481. set_irq_handler(irq, do_simple_IRQ);/* 为每个gpio中断设置同一个中482.断例程do_simple_IRQ*/

483. set_irq_flags(irq, IRQF_VALID); // fiq中断有效

484.

485. }

486. }

487./*

488.一个共用bank中断线的gpio中断发生后的大致的流程是:

489.--> gpio_irq_handler --> do_simple_IRQ --> __do_irq -->

490.a ction->handler(用户使用request_irq()注册的中断例程)

491.*/

492./* BINTEN -- per-bank interrupt enable. genirq would also let these

493. * bits be set/cleared dynamically.

494. */

495.if (cpu_is_davinci_dm355())

496. banks = 0x3f;

497.else

498. banks = 0x1f;

499.

500.// 向BINTEN寄存器写入0x1f(共5个位,每个位控制1个bank),打开所有的bank中断501.

502. __raw_writel(banks, (void *__iomem)

503. IO_ADDRESS(DAVINCI_GPIO_BASE + 0x08));

504.

505. printk(KERN_INFO "DaVinci: %d gpio irqs\n", irq - gpio_to_irq(0));

506.

507.return 0;

509.

510.

511.

512.

513.g pio.h

514.

515.

516./*

517.* TI DaVinci GPIO Support

518.*

519.* Copyright (c) 2006 David Brownell

520.* Copyright (c) 2007, MontaVista Software, Inc. 521.*

522.* This program is free software; you can redistribute it and/or modify 523.* it under the terms of the GNU General Public License as published by 524.* the Free Software Foundation; either version 2 of the License, or 525.* (at your option) any later version.

526.*/

527.

528.#ifndef __DAVINCI_GPIO_H

529.#define __DAVINCI_GPIO_H

530.

531./*

532.* basic gpio routines

533.*

534.* board-specific init should be done by arch/.../.../board-XXX.c (maybe 535.* initializing banks together) rather than boot loaders; kexec() won't 536.* go through boot loaders.

537.*

538.* the gpio clock will be turned on when gpios are used, and you may also 539.* need to pay attention to PINMUX0 and PINMUX1 to be sure those pins are 540.* used as gpios, not with other peripherals.

541.*

542.* GPIOs are numbered 0..(DAVINCI_N_GPIO-1). For documentation, and maybe 543.* for later updates, code should write GPIO(N) or:

544.* - GPIOV18(N) for 1.8V pins, N in 0..53; same as GPIO(0)..GPIO(53) 545.* - GPIOV33(N) for 3.3V pins, N in 0..17; same as GPIO(54)..GPIO(70) 546.*

547.* For GPIO IRQs use gpio_to_irq(GPIO(N)) or gpio_to_irq(GPIOV33(N)) etc 548.* for now, that's != GPIO(N)

549.*/

550.#define GPIO(X) (X) /* 0 <= X <= 70 */

551.#define GPIOV18(X) (X) /* 1.8V i/o; 0 <= X <= 53 */

552.#define GPIOV33(X) ((X)+54) /* 3.3V i/o; 0 <= X <= 17 */

553.

554./*

555.寄存器都是32位到,每位对应一个gpio。

556.*/

557.s truct gpio_controller {

558. u32 dir; // gpio方向设置寄存器

559.

560. u32 out_data; // gpio设置为输出时,表示输出状态(0或1)

561.

562. u32 set_data; // gpio设置为输出时,用于输出高电平

563.

564. u32 clr_data; // gpio设置为输出时,用于输出低电平

565.

566. u32 in_data; // gpio设置为输入时,用于读取输入值

567.

568. u32 set_rising; // gpio中断上升沿触发设置

569.

570. u32 clr_rising; // gpio中断上升沿触发清除

571.

572. u32 set_falling; // gpio中断下降沿触发设置

573.

574. u32 clr_falling; // gpio中断下降沿触发清除

575.

576. u32 intstat; // gpio中断状态位,由硬件设置,可读取,写1时清除。577.

578.};

579.

580./* The __gpio_to_controller() and __gpio_mask() functions inline to constants 581.* with constant parameters; or in outlined code they execute at runtime. 582.*

583.* You'd access the controller directly when reading or writing more than 584.* one gpio value at a time, and to support wired logic where the value

585.* being driven by the cpu need not match the value read back.

586.*

587.* These are NOT part of the cross-platform GPIO interface

588.*/

589.s tatic inline struct gpio_controller *__iomem

590.__gpio_to_controller(unsigned gpio)

591.{

592.void *__iomem ptr;

593.

594.if (gpio >= DAVINCI_N_GPIO)

595.return NULL;

597.if (gpio < 32)

598. ptr = (void *__iomem)IO_ADDRESS(DAVINCI_GPIO_BASE + 0x10);

599.else if (gpio < 64)

600. ptr = (void *__iomem)IO_ADDRESS(DAVINCI_GPIO_BASE + 0x38);

601.else if (gpio < 96)

602. ptr = (void *__iomem)IO_ADDRESS(DAVINCI_GPIO_BASE + 0x60);

603.else

604. ptr = (void *__iomem)IO_ADDRESS(DAVINCI_GPIO_BASE + 0x88);

605.

606.return ptr;

607.}

608.

609.s tatic inline u32 __gpio_mask(unsigned gpio)

610.{

611.return 1 << (gpio % 32);

612.}

613.

614./* The get/set/clear functions will inline when called with constant

615.* parameters, for low-overhead bitbanging. Illegal constant parameters

616.* cause link-time errors.

617.*

618.* Otherwise, calls with variable parameters use outlined functions.

619.*/

620.e xtern int __error_inval_gpio(void);

621.

622.e xtern void __gpio_set(unsigned gpio, int value);

623.e xtern int __gpio_get(unsigned gpio);

624.

625./* Returns zero or nonzero; works for gpios configured as inputs OR

626.* as outputs.

627.*

628.* NOTE: changes in reported values are synchronized to the GPIO clock.

629.* This is most easily seen after calling gpio_set_value() and then immediatly 630.* gpio_get_value(), where the gpio_get_value() would return the old value 631.* until the GPIO clock ticks and the new value gets latched.

632.*/

633.e xtern int gpio_get_value(unsigned gpio);

634.e xtern void gpio_set_value(unsigned gpio, int value);

635.

636.

637./* powerup default direction is IN */

638.e xtern int gpio_direction_input(unsigned gpio);

639.e xtern int gpio_direction_output(unsigned gpio, int value);

641.#include /* cansleep wrappers */ 642.

643.e xtern int gpio_request(unsigned gpio, const char *tag); 644.e xtern void gpio_free(unsigned gpio);

645.

646.s tatic inline int gpio_to_irq(unsigned gpio)

647.{

648.return DAVINCI_N_AINTC_IRQ + gpio;

649.}

650.

651.s tatic inline int irq_to_gpio(unsigned irq)

652.{

653.return irq - DAVINCI_N_AINTC_IRQ;

654.}

655.

656.#endif /* __DAVINCI_GPIO_H */

657.

(企业端)安全生产大检查长效机制管理系统操作手册_201604

云南省安全生产大检查长效机制管理系统培训教材 (企业版)

中国软件与技术服务股份有限公司 2016年4月 版权所有,侵权必究

目录 1................................................................................................ 企业用户登录3 2 ..................................................................................................... 企业登录首页5 2.1企业自查自报 (5) 2.1.1.................................................................................................操作说明 5 2.1.1.1............................................................. 隐患自查自报标准选择 5 2.1.1.2.................................................................... 自查自报隐患填写 7 2.1.1. 3.................................................................... 隐患自查自报上报 11 2.1.2.................................................................................................注意事项 12 2.2重大隐患销号 (13) 2.3通知公告查看 (15) 2.4法律法规查看 (15) 3 ..................................................................................................... 企业信息管理17 3.1基本信息填报 (17) 3.1.1.................................................................................................操作页面 17 3.1.2............................................................................................. 录入项说明 17 3.1.3.................................................................................................操作说明 19 3.1. 4.................................................................................................注意事项 19 4 ........................................................................................... 企业自查自报企业端20 4.1企业隐患自查自报 (20) 4.1.1.................................................................................................操作页面 20 4.1.2............................................................................................. 录入项说明 20

简明大学生心理素质量表健康版的使用手册详细评分和解释标准和使用协议样本

简明大学生心理素质量表健康版的使用手册详细评分和解 释标准和使用协议样本 简明大学生心理素质量表健康版的使用手册详细评分和解释标准和使用协议本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 《简明大学生心理素质量表((健康版)》的使用手册(详细评分及解释标准)及使用协议(王鑫强,张大均,张雪琪编制,)文献:: 王鑫强,张大均,张雪琪.().简明大学生心理素质量表(健康版)(自然科学版),39 (8),:10.13718/j..08.018Wang Xinqiang,Zhang Dajun,Zhang Xueqi.().Development ofthe CollegeStudent Psychological Suzhi of Scale(CSPS):Psychometric PropertiesCSPS BriefMental Healthof SouthwestUniversity(Natural ScienceEdition),,39 ( (8),126-132.DOI:10.13718/j..08.018目录 二、维度及其含义介绍错误!未定义书签。 本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 三、量表的信效度指标错误!未定义书签。 四、量表各因子所属题目及计分方式错误!未定义书签。

六、推荐阅读的理论文献错误!未定义书签。 七、量表的测试版本....错误!未定义书签。 一、理论介绍随着积极心理学的蓬勃发展,人们对于心理健康教育的观念,也逐渐从治疗心理疾病转向了积极预防,认为“预防的关键则于对人内部积极潜力的塑造或唤醒”,强调人自身的力量和内在品质的挖掘与培养。 心理素质与心理健康关系模型认为心理素质作为个体的心理体质和心理品质系统,是青少年心理健康维持和发展的关键,,与心理健康存在一种“本”与“标”的关系。 心理素质除对心理健康状态产生直接作用外,还能调节外在致病风险因素(例如生活事本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 件)、外在增益保护因素(例如社会支持)与心理健康状态之间的关系,具有“雪中送炭”和“锦上添花”的效应。 心理素质(Psychological suzhi)是我国学者在素质教育背景下提出的本土学术概念。 国际上,西方工具书《学校积极心理学手册(第二》版)》《Handbook ofPositive Psychologyin Schools(2nd)》对其进行了收录和大篇幅介绍,认为它是中国特色的积极心理学研究 (Furlong,Gilman,Huebner,)。

人力资源档案资源管理软件系统

针对复杂的人事管理流程,统一人才档案信息的难度,以及员工经验的不满,现代企业已经无法通过传统的文件处理来解决问题。因此,需要一种新型的信息管理系统软件。市场上有很多人力资源管理系统。如果想要一个更专业的系统,不仅要看公司本身的要求,还要看它的功能如何。 一、人力资源档案资源管理软件系统功能包括: 1.灵活配置人事业务流程: 不得使用转移流程、黑名单管理、合同管理、培训奖惩等数十项人员职能,支持定制功能的灵活配置,以满足企业在开发过程中的个性化管理需求。 2.员工完整生命周期在线管理: 基于人事管理和不同业务场景的不同业务角色,提供员工就业,成长,交易等流程管理,实现员工生命周期的闭环管理。 3.组织规划和调整既高效又方便: 支持多组织结构共存和调整,明确各部门的准备和管理,实现人

员配置规划和调整,支持权限管理的灵活配置和切换,推动内部流程的有效运行。 二、该系统产品特色功能: 组织结构管理、员工流失管理、黑白名单管理、多场景自动提醒管理、固定岗位管理、员工电子档案管理、多维人事报告、公共参数设置。 三、人力资源档案资源管理软件系统产品价值: 1.实现人事信息的透明管理: 实现人员信息的在线管理,确保人员信息的透明性和清晰度。 2.降低企业合规风险: 实现对不同就业模式的遵守,并显着降低就业风险。 3.提高人力资源生产力: 减少人力资源部门的交易工作,大大提高工作效率。 4.提高员工敬业度: 建立多维度的员工关怀机制,以减少员工流动。 5.实现数据资源的集成: 基础人员数据的可视化和制图推动了企业的有效运作。

喔趣科技,作为中国劳动力综合管理专家品牌,致力于为大中型企业实现劳动力预测、劳动力管理、劳动力满足全过程的信息化、数字化、智能化,是为企业提供人事管理、智能排班、智慧考勤、绩效薪资、数据罗盘,灵活用工服务等全链劳动力综合管理与满足的云服务商。目前,有超过12万家企业和超过400万的企业员工在使用喔趣科技的产品服务,主要分布在零售连锁、生产制造、现代服务业、餐饮行业、国企事业单位等多个行业。

HIS系统操作手册

HIS系统操作手册

HIS 系 统 操 作 手 册 门诊挂号系统 1.双击门诊挂号系统图标进入登陆界面,输入自己用户名(用户 名为自己名字各字拼音首字母,例如:张三的用户名为zs)然后点击确定进入操作界面,如下图:

2.进入操作界面,此时分三种情况: (1)没有在医院办理过会员但不办会员信息的病号直接挂号 A.点击导航窗口上门诊挂号图标; B.输入病号相关信息并点击打单,如果需要打出挂号单 就点击是,不需要打印就点击否,此时挂号操作即将完 成(注意:如果挂号医生处没有选择具体医生,该病号 挂哪个科室的号,该科室所有医生在候诊队列中都能看

到该病号信息)。 (2)没有在医院办理过会员但要办会员信息的病号直接挂号 A.点击导航窗口上会员发卡图标进入操作界面; B.输入会员信息(注意:蓝色字必填),点击会员信 息保存,然后再在VIP会员卡号一栏中输入给该病 号设置好的会员卡号,点击回车键,然后点击卡信 息保存; C.点击导航窗口上门诊挂号图标进入挂号操作界面, 在就诊卡号一栏输入该病号的VIP会员卡号,点击 回车,输入病号挂号信息,点击打单。如果需要打 出挂号单就点击是,不需要打印就点击否,此时挂 号操作即将完成(注意:如果挂号医生处没有选择 具体医生,该病号挂哪个科室的号,该科室所有医 生在候诊队列中都能看到该病号信息)。

(3)已经办理会员号的病号挂号 点击导航窗口上门诊挂号图标进入挂号操作界面,在 就诊卡号一栏输入该病号的VIP会员卡号,点击回 车,输入病好挂号信息,点击打单。如果需要打出挂 号单就点击是,不需要打印就点击否,此时挂号操作 即将完成(注意:如果挂号医生处没有选择具体医 生,该病号挂哪个科室的号,该科室所有医生在候诊 队列中都能看到该病号信息)。

MoCA量表操作说明及评分标准

1:交替连线测验指导语:“我们有时会用‘123……’或者汉语的‘甲乙丙……’来表示顺序。请您按照从数字到汉字并逐渐升高的顺序画一条连线。从这里开始[指向数字(1)],从1连向甲,再连向2,并一直连下去,到这里结束[指向汉字(戊)]”。评分:当患者完全按照“1-甲-2-乙-3-丙-4-丁-5-戊”的顺序进行连线且没有任何交叉线时给1分。当患者出现任何错误而没有立刻自我纠正时,给0分。 2:视结构技能(立方体)指导语(检查者指着立方体):“请您照着这幅图在下面的空白处再画一遍,并尽可能精确”。评分:完全符合下列标准时,给1分:图形为三维结构所有的线都存在无多余的线相对的边基本平行,长度基本一致(长方体或棱柱体也算正确)上述标准中,只要违反其中任何一条,即为0分。 3:视结构技能(钟表)指导语:“请您在此处画一个钟表,填上所有的数字并指示出11点10分”。评分:符合下列三个标准时,分别给1分:轮廓(1分):表面必须是个圆,允许有轻微的缺陷(如,圆没有闭合)数字(1分):所有的数字必须完整且无多余的数字;数字顺序必须正确且在所属的象限内;可以是罗马数字;数字可以放在圆圈之外。指针(1分):必须有两个指针且一起指向正确的时间;时针必须明显短于分针;指针的中心交点必须在表内且接近于钟表的中心。上述各项目的标准中,如果违反其中任何一条,则该项目不给分。4:命名指导语:自左向右指着图片问患者:“请您告诉我这个动物的名字”。 评分:每答对一个给1分。正确回答是:(1)狮子;(2)犀牛;(3)骆驼或单峰骆驼。 5:记忆指导语:检查者以每秒钟1个词的速度读出5个词,并向患者说明:“这是一个记忆力测验。在下面的时间里我会给您读几个词,您要注意听,一定要记住。当我读完后,把您记住的词告诉我。回答时想到哪个就说哪个,不必按照我读的顺序”。把患者回答正确的词在第一试的空栏中标出。当患者回答出所有的词,或者再也回忆不起来时,把这5个词再读一遍,并向患者说明:“我把这些词再读一遍,努力去记并把您记住的词告诉我,包括您在第一次已经说过的词”。把患者回答正确的词在第二试的空栏中标出。 第二试结束后,告诉患者一会儿还要让他回忆这些词:“在检查结束后,我会让您把这些词再回忆一次”。 评分:这两次回忆不记分。 6:注意 数字顺背广度:指导语:“下面我说一些数字,您仔细听,当我说完时您就跟着照样背出来”。按照每秒钟1个数字的速度读出这5个数字。 数字倒背广度:指导语:“下面我再说一些数字,您仔细听,但是当我说完时您必须按照原数倒着背出来”。按照每秒钟1个数字的速度读出这5个数字。 评分:复述准确,每一个数列分别给1分(注:倒背的正确回答是2-4-7)。 警觉性:指导语:检查者以每秒钟1个的速度读出数字串,并向患者说明:“下面我要读出一系列数字,请注意听。每当我读到1的时候,您就拍一下手。当我读其他的数字时不要拍手”。 评分:如果完全正确或只有一次错误则给1分,否则不给分(错误时是指当读1的时候没有拍手,或读其他数字时拍手)。 连续减7:指导语:“现在请您做一道计算题,从100中减去一个7,而后从得数中再减去一个7,一直往下减,直到我让您停下为止”。如果需要,可以再向患者讲一遍。 评分:本条目总分3分。全部错误记0分,一个正确给1分,两到三个正确给2分,四到五个正确给3分。从100开始计算正确的减数,每一个减数都单独评定,也就是说,如果患者减错了一次,而从这一个减数开始后续的减7都正确,则后续的正确减数要给分。例如,如果患者的回答是93-85-78-71-64,85是错误的,而其他的结果都正确,因此给3分。 7:句子复述

与特殊三角函数值有关的计算

与特殊三角函数值有关的计算 满分100分,时间40分钟 姓名_________________ 一.解答题(必须写出详细计算过程!) 1.(2013?漳州5分)计算:|﹣4|﹣+cos30°. 2.(2013?雅安5分)(1)计算:8+|﹣2|﹣4sin45°﹣ 3.(2013?铜仁地区8分)(1)计算(﹣1)2013+2sin60°+(π﹣3.14)0+|﹣|; 4.(2013?沈阳10分)计算:. 5.(2013?深圳10分)计算:|﹣|+﹣4sin45°﹣. 6.(2013?钦州10分)计算:|﹣5|+(﹣1)2013+2sin30°﹣. 7.(2013?黔西南州10分)(1)计算:.8.(2013?宁夏10分)计算:.

9.(2013?盘锦10分)先化简,再求值:,其中. 10.(12分)△ABC是锐角三角形,BC=6,面积为12,点P在AB上,点Q在AC上,如图所示,正方形PQRS(RS 与A在PQ的异侧)的边长为x,正方形PQRS与△ABC公共部分的面积为y. (1)当RS落在BC上时,求x; (2)当RS不落在BC上时,求y与x的函数关系式; (3)求公共部分面积的最大值. 11.(2013?湛江10分)阅读下面的材料,先完成阅读填空,再按要求答题: sin30°=,cos30°=,则sin230°+cos230°=_________;① sin45°=,cos45°=,则sin245°+cos245°=_________;② sin60°=,cos60°=,则sin260°+cos260°=_________.③ … 观察上述等式,猜想:对任意锐角A,都有sin2A+cos2A=_________.④ (1)如图,在锐角三角形ABC中,利用三角函数的定义及勾股定理对∠A证明你的猜想; (2)已知:∠A为锐角(cosA>0)且sinA=,求cosA.

中小型企业人事档案管理系统

远程与继续教育学院 本科毕业论文(设计) 题目:中小型企业人事档案管理系统 学习中心:内蒙古学习中心 学号:090F24133025 姓名:智嫱 专业:计算机科学与技术 指导教师:齐斯琴 2015 年 9 月 24 日

中国地质大学(武汉)远程与继续教育学院 本科毕业论文(设计)指导教师指导意见表 学生姓名:智嫱学号: 090F24133025 专业:计算机科学与技术

中国地质大学(武汉)远程与继续教育学院 本科毕业设计(论文)评阅教师评阅意见表 学生姓名:智嫱学号: 090F24133025 专业:计算机科学与技术毕业设计(论文)题目:中小型企业人事档案管理系统

论文原创性声明 本人郑重声明:本人所呈交的本科毕业论文《中小型企业人事档案管理系统》,是本人在导师的指导下独立进行研究工作所取得的成果。论文中引用他人的文献、资料均已明确注出,论文中的结论和结果为本人独立完成,不包含他人成果及使用过的材料。对论文的完成提供过帮助的有关人员已在文中说明并致以谢意。 本人所呈交的本科毕业论文没有违反学术道德和学术规范,没有侵权行为,并愿意承担由此而产生的法律责任和法律后果。 论文作者(签字):智嫱 日期:2015 年 9 月 24 日

摘要 本文研究的人事档案信息管理系统是以联想研究院人事局档案管理和应用需求为背景,以有效保管档案,提高档案信息的利用率,为各项人事人才工作的开展提供方便、更快捷的服务为目的而设计开发的软件系统。 本文以人事档案信息管理系统的开发过程为主线,经过需求分析、系统设计、系统测试等几个阶段的工作,探索了本系统开发中涉及的关键技术,总结出系统中的特性和存在的不足,并提出了日后工作的方向和重点。 人事档案管理系统主要实现了以下功能模块:一是登录和权限控制模块,实现了登录与运行功能;二是维护模块,实现了对数据库的添加、更新与删除功能;三是查询模块,可按条件进行查询;四是报表统计模块,实现了有关报表的查询与打印功能;五是使用帮助模块,让使用者了解本系统,并帮助使用者如何更好的使用本系统。 该系统最终能够帮助人事部门有效管理档案及员工信息。人事档案信息管理系统是针对联想研究院人事部门实际工作需要进行研发的,对于档案管理和应用来说具有重要意义,必将为人事档案管理的规范化发挥重要的基础作用。 关键词:1、人事信息管理 2、数据窗口控件 3、权限控制

软件系统操作手册

3DMS 监控平台软 件 使用说明书 版本:4.23

深圳市亚美达通讯设备有限公司

目录 1、系统登录 (5) 2、主界面 (6) 2.1标题栏 (6) 2.2菜单栏 (6) 2.3工具栏 (6) 2.4状态栏 (6) 2.5树形区 (7) 2.6地图区 (7) 2.7简明信息区 (8) 2.8报警区 (8) 3、监控站点界面 (10) 3.1组态图形 (10) 3.2数据列表 (11) 3.3单灯 (11) 3.4监控点资料 (12) 4、配电箱端的远程操作 (13) 4.1遥测数据 (14) 4.2设置自动开关灯时间 (14) 4.3手动开关灯 (15) 4.4校准时钟 (16) 4.5设置采集器参数 (16) 5、单灯监控 (17) 5.1报警信息 (17)

5.2监测数据 (18) 5.3单灯手动开关灯控制 (18) 5.4单灯配置管理 (19) 6、报表 (21) 6.1监控数据 (21) 6.2故障记录 (21) 6.3监控点数据 (22) 6.4操作记录 (22) 7、数据配置 (23) 7.1监控点管理 (24) 7.2设备管理 (24) 7.3监控项管理 (25) 7.4人员管理 (25) 7.5字典管理 (26) 7.6时间表管理 (26) 8、常见问题 (27)

1、系统登录 启动客户端软件( 3DMS.exe ),出现登录界面,输入正确的用户名和登录密码,点击登录按钮即可进入监控软件

2、主界面 主界面采用 Windows 标准风格,分为: 标题栏 :上方第一行, 包括软件名称、 Windows 标准缩放按钮。 2.1 2.2 菜单栏 :上方第二行,为软件功能的菜单。 2.3 工具栏 :上方第三行,软件常用功能的快捷方式图标。 2.4 状态栏 :最下方一行,显示服务器连接状态和登录用户信息。

父母教养方式量表_使用说明

父母教养方式量表_使用说明 EMBU(Egna Minnen av Barndoms Uppfostran-own memories of parental rearing practices in childhood) 是1980年由瑞典Umea大学精神医学系C.Perris等人共同编制用以评价父母教养态度和行为的问卷。EMBU为人们提供了一种探讨父母教养方式与子女心理健康关系的有力而客观的工具,同时也为探讨心理疾病的病因学提供了一条途径,也可以用来探讨父母教养方式对人格形成的影响,从而使更多的子女在良好的教养环境中成长并形成健全的人格。 目前,EMBU已在23个国家用于抑郁症、恐怖症、人格障碍等各类患者及正常人群父母教养方式的研究。 EMBU共有81个条目和2个附加条目,涉及父母15种教养行为:辱骂、剥夺、惩罚、羞辱、拒绝、过保护、过干涉、宽容、情感、行为取向、归罪、鼓励、偏爱同胞、偏爱被试和非特异性行为。对上述15个分量表进行主因素分析,抽取了以下四个主因素:因子?:拒绝; 因子?:情感温暖; 因子?:过分保护; 因子?:偏爱。 EMBU现已被译为中文并做了初步修订,经北京医科大学精神卫生研究所张津萼等的研究表明,EMBU在国内有较高的信度和效度,认为EMBU适用于我国群体。(详细资料请参阅中国心理卫生杂志1993.2, vol7, p57-59。) EMBU可进行单人测验,也可以进行集体测验。由于EMBU是让被试通过回忆来评价父母的教养方式,所以,它适用于任何一个为人子女的人,其范围十分广泛,应用于什么样的群体主要取决于施测者的研究目的。但由于年龄过小可能对父母的评价缺乏客观性,而年龄 过大回忆起来又缺乏准确性,所以,对于年龄过大或过小的被试,对结果的解释要慎重。 注1:父、母亲量表各因子所含条目如下:

5.2特殊角的三角函数值的计算(2015年)

1. (2015 内蒙古兴安盟) 计算:2sin45°+(﹣2)2﹣ +(2015﹣π)0 . 答案:解:原式=2× +4﹣+1=5. 2. (2015 黑龙江省绥化市) 先化简 ,再求值。x x x x x x x 444122x 22-÷?? ? ??+----+ , 其中 x =tan 600+2。 答案:解:原式=[﹣ ]?=?=?=, 当x=tan60°+2= +2时,原式=. 3. (2015 四川省南充市) 计算 的结果是_____. 答案:答案 解析

试题分析:首先根据二次根式和三角函数求出各式的值,然后进行计算.原式=2-2×=. 4. (2015 山东省淄博市) 若锐角α满足cosα<且tanα<,则α的范围是()A.30°<α<45°B.45°<α<60°C.60°<α<90°D.30°<α<60° 答案: 分析:先由特殊角的三角函数值及余弦函数随锐角的增大而减小,得出45°<α<90°;再由特殊角的三角函数值及正切函数随锐角的增大而增大,得出0<α<60°;从而得出45°<α<60°. 解答:解:∵α是锐角, ∴cosα>0, ∵cosα<, ∴0<cosα<, 又∵cos90°=0,cos45°=, ∴45°<α<90°; ∵α是锐角, ∴tanα>0, ∵tanα<, ∴0<tanα<, 又∵tan0°=0,tan60°=, 0<α<60°; 故45°<α<60°. 故选B. 点评:本题主要考查了余弦函数、正切函数的增减性与特殊角的余弦函数、正切函数值,熟记特殊角的三角函数值和了解锐角三角函数的增减性是解题的关键. 5. (2015 江苏省无锡市) tan45o的值为() A.1 2 B.1 C. 2 2 D. 2

人事管理系统需求规格说明书

人事档案管理系统需求说明书 1.引言 1.1 编写的目的 人事档案管理是现代企业人力资源管理中的重要内容,也是人力资源开发利用的基础性工作。这份需求说明书分析了整个人事档案管理的基本流程,并按照现代企业的人力资源管理模式进行设计,符合现代企业人力资源的管理标准。所以,这份说明书主要是面向现代企业的经理和软件开发公司的项目经理。 1.2 背景 (a)该系统名为:现代企业人事资源管理系统 (b)提出者:梁东旭 开发者:某软件开发公司开发小组 (c)本系统能为其他的系统提供人事数据 1.3 定义 数据字典:关于数据的信息的集合,也即是对数据流图中包含的元素的定义的集合。 数据流图:是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。 状态转换图:简称状态图,通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。 1.4 参考资料 引用资料 [1]张海藩. 软件工程导论(第五版) . 北京:清华大学出版社,2008.2 2.任务概述 2.1 目标 人事档案管理是现代企业人事资源管理中的重要内容,也是人力资源开发利用的基础性工作。人事档案管理在信息化之前,在人员进出、离退休、升迁、岗位变动、职称变动、学位变动,以及档案管理人员的变动等方面存在诸多不利于管理的地方,不适应现代的企业管理形势和人力资源开发利用的要求。 开发人事档案管理系统使企业的人事档案管理工作实现了信息化、规范化,不仅使企业能够高效率完成人事管理的日常工作,还使企业深入开发利用人力资源成为可能。 22用户的特点 本软件的最终用户是企业人事部门的工作人员。部门有专职的人事数据录入人员,具有一定的计算机操作知识;系统的维护人员是企业的信息中心的信息维护员,对网络和数据库

特殊角的三角函数值及计算

特殊角及计算 归纳结果 0° 30° 45° 60° 90° si nA cosA ta nA c otA 当锐角越来越大时, 的正弦值越来___________,的余弦值越来___________。 当锐角α越来越大时, α的正切值越来___________,α的余切值越来___________。 1:求下列各式的值. (1)cos 2 60°+sin 2 60°. (2)cos 45sin 45? ? -t an45°. 2:(1)如图(1),在Rt △ABC 中,∠C=90,6,B C3,求∠A 的度数. (2)如图(2),已知圆锥的高AO 等于圆锥的底面半径OB 3,求a. 一、应用新知: 1。(1)(si n60°-tan30°)cos45°= 。(2)若0sin 23=-α,则锐角α= . 2。在△AB C中,∠A=75°,2c osB=2,则ta nC= 。

3。求下列各式的值. (1)o 45cos 230sin 2-? (2)ta n30°-si n 60°·sin30° (3)c os45°+3t an30°+c os30°+2sin 60°—2tan4 5° (4)?+?+? +?- ?45sin 30cos 30tan 1 30sin 145cos 222 4。求适合下列条件的锐角. (1)2 1 cos =α??(2)33tan =α (3)2 2 2sin = α? (4)33)16cos(6=- α (5) (6) 6。如图,在△ABC 中,已知BC =1+ ,∠B=60°,∠C=45°,求AB 的长。 7.在△ABC 中,∠A 、∠B 为锐角,且有 ,则△ABC 的 形状是________________. |tanB-3|+(2sinA-3)2=002sin 2=-α01tan 3=-α 3

检验系统使用说明

lis检验系统模块设计思想大连疗养院CAIFOX 一、系统概述 该系统的功能设计从实用性和前瞻性出发,力求尽量满足检验人员的实际工作需要,减少工作量,为下一步进行检验系统(LIS)开发奠定基础。 系统功能包括检验系统初始化数据维护、申请单录入修改及查询、标本采集接收,申请单回报、费用自动计价、报告单打印归档。 系统特点: 1、简化操作。医生开检验申请单时,可根据检验科维护的具体检验项目开申请单。 2、细化责任。护士可打印待采标本单床旁采集标本,打印已采标本单送检与检验科进 行标本核对。 3、介面友好。在医生开单、护士采集、检验回报等窗口增加友好提示。 4、为检验LIS接口程序做准备。 二、检验系统模块流程图

第三部分:检验申请回报操作说明 更新步骤: 第一步:计价项目维护 第二步:检验科基础数据维护 第三步:正常开单即可 一、计价项目维护 在计价项目维护中加一条项目分类为“检验”;项目编码为“kjj100001”;项目名称为“空计价”的记录,其它录入信息如下。 二、检验科基础数据维护 本系统中检验类别依据《医疗护理技术操作常规》(第四版)第三十篇检验科常规中检查分类定义,不可修改。检验单打印时取此处检验类别为检验单标头。 维护流程:实验室→检验仪器或方法→检验项目→项目组名称→项目组合对照(一)实验室定义:实验室名称可自定义。实验室名称修改后要点击相应的按 钮保存即可。在检验科工作站中按照实验室的名称进行检验单归类(详细说明见检验科工作站)。

(二) 检验仪器或方法定义:可定义仪器的名称、简称、所属检验类别、输入码、采集标本的类型、使用状态及备注。 1、添加:可定义仪器名称、简称、所属检验类别、标本类型、输入码、使用状态及备注。除备注以外,其它数据均不可为空。 2、修改:仪器名称、简称、标本类型、输入码、使用状态及备注可随时修改。如该仪器

各类常用量表使用及分析

各类常用量表使用及分析,包括: 1、中国科学院心理研究所心理测量系统全新版(16PF 、SCL-90、EPQ成人、EPQ少年、焦虑量表、抑郁量表)的使用与分析。16PF 、SCL-90、艾森克人格、焦虑量表、抑郁量表是心理咨询中常用的测量工具,也都是世界十大通用量表,并被劳动部列为心理咨询师职业技能标准项目。16PF也就是16种人格因素测查量表。它是美国卡特尔教授编制的,共187道题目,是测量成年人个性的量表。心理所专家根据社会需要开发了三维评价系统,增加了决策能力、心理健康、工作风格三方面的评价。个性化专家诊断报告更适合人才选拔与考量的需要。以上量表无论是医院、学校在心理咨询工作中还是在企事业单位的人才选拔中都是必备的量表。 2、青少年心理健康与学习能力综合测评系统团体版。含SAS、SDS、16PF 、SCL-90、EPQ 成人、EPQ少年、中学生学习能力测验、中学生学习状况综合诊断测验、青少年心理健康测验、瑞文智力(联合型)量表。这套系统可以满足学校心理咨询室建立心理档案的需要,为学校心理咨询提供可靠的依据。可以进行团体测量。有班级各项实用数据的人数及占全体人数的百分比统计。实用、快速、准确、方便。 3、中学生学习能力综合测评系统:含中学生学习能力测验、中学生学习状况综合诊断测验。该测验从学习热情、学习有无计划、听课方法、读书和记笔记地方法、记忆和思考方法、应试方法、家庭、学校环境、师生关系、同学关系和身心健康等方面入手,综合分析影响学生学习适应性的各项因素,能够诊断学生学业不良的原因,准确判断学习困难的根源具体所在并指出改进方法,以提高他们的学习适应性和学习能力,促进学业增长乃至全面素质的提高,为教师和家长指导学生的学习提供极为丰富的资料。 4、青少年心理健康测验(MHT):MHT是我国心理学工作者根据日本铃木清等人编制的量表修订而成,用来测查中学生心理健康状况的量表。有100道题目,含有8个内容量表和1个效度量表,测查中学生学习焦虑、对人焦虑、孤独倾向、自责倾向、过敏倾向、身体症状、恐怖倾向、冲动倾向等方面问题。此量表针对性强,非常适和青少年心理咨询工作中使用。 5、托尼非语文智力测验(TONI—2):本世纪修订的最新、最符合儿童、少年智力现状的量表。托尼非语文智力测验(TONI—2)是美国心理学家L.Brown等于1982年编制,1990年修订的。我所查子秀教授与国际合作研究超长儿童心理近20年,在筛查儿童智力工作中深感目前社会上正在使用的那些量表常模落后,已不适应当前儿童的智力实际情况。为此于2000年引进并修订了TONI—2,制定了中国常模。TONI-2在科研、教育筛查工作中应用效果良好,它区分度大,智力落后、正常、超长的情况都能很好区分,避免了智力测查的失真现象。 6、美国明尼苏达多项个性调查量表第二版(MMPI—2):MMPI量表是美国1942年制定,我所于七十年代修订的。美国于二十世纪八十年代对其进行了修订,简记为MMPI—2。我所张建新、宋维真等教授于九十年代对MMPI—2进行了标准化工作,制定了中国常模,2003年完成手册编制及计算机化操作,它更加适应现代人的心理特征。MMPI—2的应用范围广泛:在医疗和心理咨询领域,该量表不但可以帮助医生和心理咨询人员分析正常人的个性特征、个性偏离,还可以对心理疾病和精神疾病进行鉴别和诊断;在司法领域可以帮助鉴别涉案人员是否有神经、精神疾病;在教育、职业选拔尤其在高级人才选拔方面,(如:运动员、飞行员、特殊兵种、高级管理人才等)也有广泛用途。

特殊三角函数值的计算

特殊三角函数值的计算一.选择题(共10小题) 1.2cos60°=() A.1 B .C .D . 2.在△ABC中,∠A,∠B都是锐角,tanA=1, sinB=,你认为△ABC最确切的判断是() A.等腰三角形B.等腰直角三角形 C.直角三角形D.锐角三角形 3.tan45°sin45°﹣2sin30°cos45°+tan30°=() A . B . C . D . 4.=() A . B . C .D.1 5.cos60°+tan45°的值等于() A . B . C .D.1 6.在Rt△ABC中,∠C=90°,cosA=,则sinB的值为() A . B . C . D . 7.在△ABC中,∠C=90°,cosA=,那么∠B的度数为() A.60°B.45°C.30°D.30°或60° 8.在△ABC中,若|sinA ﹣|+(1﹣tanB)2=0,则∠C的度数是()A.45°B.60°C.75°D.105° 9.如果α是锐角,且sinα=,那么cos(90°﹣α)的值为() A . B . C . D . 10.在Rt△ABC中,∠C=90°,如果sinA=,那么sinB的值是() A . B . C .D.3 二.填空题(共10小题) 11.在△ABC中,∠C=90°,若tanA=,则sinB=. 12.在△ABC中,若|sinA ﹣|+(cosB ﹣)2=0,则∠C的度数是.13.在Rt△ABC中,∠C=90°,sinA=,则tanA=. 14.计算:2sin245°﹣tan45°=. 15.计算:3tan30°+sin45°=. 16.已知α为锐角,且sin(α﹣10°)=,则α等于度. 17.已知α为锐角,且满足tan(α+10°)=1,则α为度.18.△ABC中,∠C=90°,tanA=,则sinA+cosA=. 19.已知:tanx=2,则=. 20.若α为锐角,且sinα+cosα=,则sinα?cosα=. 三.解答题(共15小题) 21.计算.2cos60°+4sin60°?tan30°﹣cos245°

企业人事档案管理系统

企业人事档案管理系统 作者:XXX 日期:2020年6月7日 此文档格式为word,下载后可编辑修改。 企业人事档案管理系统 摘要 人事档案管理系统就是典型管理信息系统,通过人事档案管理系统对人事档案进行管理具有人工管理所无法比拟的优点——例如:检索迅速、查找方便、可

靠性高、存储量大、保密性好、寿命长、成本低等。 一个设计完善,运行稳定的人事档案管理系统可以使人们从繁重的传统手工管理中解脱出来,从而提高企业人事档案管理的工作效率,协助企业更好的完成人事档案管理工作;因此,利用计算机对企业人事档案进行管理是必然趋势,人事档案管理系统是企业管理工作中不可缺少的。所以在毕业设计中,我选择开发人事档案管理系统。 对于人事档案管理系统的设计主要包括后台数据库的建立、维护以及前端应用程序的开发两个方面。对于前者而言要求建立起数据一致性及完整性强、数据安全性好的数据库。对于后者而言则要求具备应用程序功能全,易使用等,运行稳定等特点。因此,我选用的开发软件是Microsoft 公司出品的Visual Fox Pro6.0。 关键字:人事档案管理;信息系统;VISUAL FOXPRO;数据库设计 目录 摘要 (1) 第一章企业人事管理的重要意义 (3) 第二章人事管理在企业管理的重要性 (5) 2.1 人事档案管理与管理信息的关系 (5) 2.2 人事档案管理在企业管理中的重要性 (7) 第三章人事档案管理系统的开发 (8)

3.1 开发人事档案管理的重要基础知识 (8) 3.1.1数据库 (8) 3.1.2面向对象的程序设计 (9) 3.2 开发人事档案管理系统的准备工作 (10) 3.2.1 人事档案管理系统的总体规划 (10) 3.2.2 人事档案管理系统的开发方法选择 (11) 第四章开发人事管理系统的详细说明 (14) 4.1 系统设计目标 (14) 4.2 总体结构和主要功能 (14) 4.2.1 人事档案管理系统的功能分析 (14) 4.2.2 开发的企业人事档案系统的功能概述 (15) 4.3 系统开发方法和开发环境的选择 (15) 4.4 数据库设计 (15) 4.4.1 数据库概念结构设计 (15) 4.4.2 数据库逻辑结构设计 (16) 4.5 各个功能模块的创建及程序设计 (20) 4.5.1 功能模块的创建 (20) 4.5.2 主控程序模块的程序设计 (37) 第五章企业人事档案管理系统的实现 (38) 5.1 系统使用说明书 (38) 5.2 系统的维护 (39) 结束语 (41) 参考文献 (42) 致谢 (43) 第一章企业人事管理的重要意义 中华人民共和国第六后全国人民代表大会常务委员会第二十二次会议于1987年9月5日通过的《中华人民共和国档案法》第二条规定:档案是指过去和现在的国家机构、社会组织以及个人从事政治、军事、经济、科学、技术、文化、宗教等活动直接形成的对国家和社会有保存价值的各种文字、图表、声像等不同形式的历史记录。 人事档案作为档案的一种,是人事(劳动)管理部门,根据人事工作需要,以个人姓名为特征集中保存起来的反映员工个人经历、德才情况、工作实绩等方面

神经心理学量表检查指南

痴呆临床诊断和试验研究的常用量表 上文罗列了在痴呆诊断及鉴别诊断中较常见的测试量表。本文将就目前临床和研究工作中最常用的心理测评量表进行详细介绍。这些量表多简单、实用,希望给大家的工作带来帮助。 神经心理测验的操作要点 1.主试人员须经过培训。 2.面对受试者,主试人员应态度和蔼、语气温和,以消除患者的不合作情绪,使其配合完成测试。 检测环境应安静、通风、舒适、光线良好。室内一般只有主试和被试二人,即使在床边也要注意避免旁人及家属的干扰。 3.严格按照各套量表的手册执行检测,使用统一的指导语,有时间限制的要严格执行,有规定可 以给予一定范围内帮助的应按规定提供。同时,主试者使用的语言应能让被试者充分理解。要避免超过指导语和规定内容的暗示,也不要敷衍了事,减少应该告知受试者的信息。 1. 简易精神状态量表(Mini-Mental State Examination, MMSE)[1-3]

该表的筛查范围包括定向能力(10分)、语言功能(8分)、词语即刻回忆(3分)、延迟回忆(3分)、结构模仿(1分),计算力(5分),满分30分,得分愈高表示认知功能愈好。其设计者Folstein认为, MMSE≥27分为正常, 21-26分为轻度, 10-20分为中度, <10分为重度。 1991年Molloy等发表了标准的简易精神状态量表版本(sMMSE),规范了指导用语,便于多中心研究。由于文化背景的关系,我国仍采用Folstein的中文修订版,并且按照教育程度设立不同的痴呆界定值:文盲≤17分,小学≤20分,中学≤22分,大学≤23分, 即提示有认知功能缺损[3]。 MMSE的分析指标为总分,不能把单项分值视为相应的认知功能表现,也不能仅依据低于MMSE总分的划界分作出痴呆诊断,必须结合其它多种测试工具以及神经影像学表现和生化表现等等。 MMSE检查没有时间限制,对病人感到困难的项目,避免给予过多的压力,对患者的成功要进行表扬,建立亲善的关系,使病人感到舒适。本量表的优点在于操作简便,整个检查耗时5~10分钟,特别适用于老年人群,可作为大样本流行病学调查的筛查工具。它在评估中、重度认知损害时假阴性率极低;另外,MMSE的低分及其下降速度可以作为痴呆预后的预测因素,5年随访研究表明正常衰老时MMSE减少约0.25分/年,病理衰老约4分/年。 MMSE缺点是易受教育程度的影响,文化程度较高的老年人可能有假阴性,文化程度低的可能假阳性。此外,量表的语言功能主要测查左半球病变所致的认知功能缺陷,对右半球和额叶病变引起的认知功能障碍不够敏感,不能用于不同病因的鉴别诊断,作为认知减退的随访工具也不够敏感。 2.画钟测验(Clock Drawing Test, CDT)[4] 操作方法: 请患者画一个钟面并把数字标在正确的位置上。画好后,请他把指针标于11点10分或8点20分的位置。 评分方法: CDT有多种评分方法,此处介绍的是4分评分法,该方法较为简单、敏感、易于操作。 画好一个封闭的圆1分 数字的位置准确1分 12个数字均没有漏掉1分 将指针置于正确位置1分 本测验对顶叶和额叶损害敏感,常用于筛查视空间觉和视构造觉的功能障碍;还可以反映语言理解、短时记忆、数字理解、执行能力。还有一种常用的施测和评分方法是要求受试者模仿已画好的钟,反映结构能力。CDT在门诊非常实用,受文化背景、教育程度影响小。但是单独应用它进行痴呆筛查时效度偏低。CDT评分降低、评定者怀疑有痴呆时,必须做进一步的检查(如MMSE)。 研究表明画钟测验得分与MMSE的相关性在0.82~0.85左右,能区分83%的痴呆患者,并能区分92%伴和不伴结构损害的痴呆患者。Brodaty和Moore(1997年)研究发现[5],在28名AD中只有20名MMSE得分低于24分,但通过画钟测验则发现24名患者有认知功能缺损。这项研究结果提示画钟测验从正常人中检出AD的敏感性是86%,特异性是96%。 3.阿尔茨海默病评定量表-认知(Alzheimer’s Disease Assessment Scale-Cognitive section, ADAS-Cog)[6]

相关主题
文本预览
相关文档 最新文档