每300毫秒获得一次鼠标所在位置的x的值和y的值

#include "stdafx.h"
#include <Windows.h>

int _tmain(int argc, _TCHAR* argv[])
{
 POINT curpos; //在内存中,具体的说应该是在栈中而不是堆中申请了一个内存,内存大小不知道.
 while (1)      //无限循环
 {
  GetCursorPos(&curpos);  //函数GetCursorPos把获得的鼠标位置数据放在&curpos首地址的地方.用的是取地址符号.因为curpos不是指针变量.
  printf("x=%d,y=%d,", curpos.x, curpos.y);
  Sleep(300);  //每300毫秒取一次鼠标的地址.
  
 }
 return 0;
}


BOOL GetCursorPos( 
  LPPOINT lpPoint
);
 
 
 Parameters
  
  

lpPoint

[out] Long pointer to a POINT structure that receives the screen coordinates of the cursor.

//lpPoint 为长指针,这个指针是指向POINT 的结构体的.

//这个机构体接收屏幕坐标系的鼠标/光标位置数据的

Return Value


Nonzero indicates success. Zero indicates failure. To get extended error information, call GetLastError.

//返回值类型为BOOL型

//返回非零的数表示获取屏幕光标位置成功.如果返回的是0,表示获取屏幕光标位置失败.

typedef struct tagPOINT {
  LONG x;
  LONG y;
} POINT;

//POINT 为机构体,里面有两个参数,屏幕光标X坐标和y坐标.

This structure defines the x- and y-coordinates of a point.//这个机构体定义一个点的x/y的坐标.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 MSP430F6638 代码,用于每10毫秒监测一次 INA21X 电流: ``` #include <msp430.h> #include <stdint.h> #define INA_ADDR 0x40 // INA21X 地址 #define INA_REG 0x01 // INA21X 寄存器 void i2c_init(void); void i2c_write(uint8_t addr, uint8_t reg, uint8_t data); uint16_t i2c_read(uint8_t addr, uint8_t reg); void main(void) { WDTCTL = WDTPW | WDTHOLD; // 关闭看门狗定时器 i2c_init(); // 初始化 I2C 总线 while(1) { uint16_t current = i2c_read(INA_ADDR, INA_REG); // 读取 INA21X 电流 // 处理电流 // ... __delay_cycles(10000); // 延迟 10 毫秒 } } void i2c_init(void) { I2CCTL |= I2CEN + MST; // 开启 I2C 总线并进入主模式 I2CDIV = 0x0A; // 设置 I2C 时钟分频器 P3SEL |= BIT0 + BIT1; // 配置 P3.0 和 P3.1 为 I2C 引脚 } void i2c_write(uint8_t addr, uint8_t reg, uint8_t data) { while(I2CCTL & STP); // 等待总线空闲 I2CSA = addr; // 设置 I2C 地址 I2CCTL |= TRX; // 进入发送模式 I2CCTL |= STA; // 发送起始位 while(!(IFG2 & UCB0TXIFG)); // 等待发送缓冲区空闲 UCB0TXBUF = reg; // 发送寄存器地址 while(!(IFG2 & UCB0TXIFG)); // 等待发送缓冲区空闲 UCB0TXBUF = data; // 发送数据字节 while(!(IFG2 & UCB0TXIFG)); // 等待发送缓冲区空闲 I2CCTL |= STP; // 发送停止位 } uint16_t i2c_read(uint8_t addr, uint8_t reg) { uint16_t data = 0; while(I2CCTL & STP); // 等待总线空闲 I2CSA = addr; // 设置 I2C 地址 I2CCTL |= TRX; // 进入发送模式 I2CCTL |= STA; // 发送起始位 while(!(IFG2 & UCB0TXIFG)); // 等待发送缓冲区空闲 UCB0TXBUF = reg; // 发送寄存器地址 while(!(IFG2 & UCB0TXIFG)); // 等待发送缓冲区空闲 I2CCTL |= MST; // 进入从模式 I2CCTL &= ~TRX; // 进入接收模式 I2CCTL |= STT; // 发送重复起始位 while(!(IFG2 & UCB0RXIFG)); // 等待接收缓冲区接收到第一个字节 data = UCB0RXBUF << 8; // 读取高位字节 while(!(IFG2 & UCB0RXIFG)); // 等待接收缓冲区接收到第二个字节 data |= UCB0RXBUF; // 读取低位字节 while(I2CCTL & STP); // 等待总线空闲 return data; } ``` 在 `main()` 函数中,通过调用 `i2c_read()` 函数读取 INA21X 的电流。每次读取完电流后,使用 `__delay_cycles()` 函数延迟 10 毫秒,然后再次读取 INA21X 电流。在 `i2c_read()` 函数中,使用 I2C 总线与 INA21X 通信,读取指定寄存器中的数据。这里只读取了一个16位的数据,如果需要读取其他寄存器,可以在 `i2c_read()` 函数中添加相应的代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值