⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 distco.c

📁 单片机上的java虚拟机 用winavr 编译
💻 C
字号:
#include "iodefs.h"#include "distco.h"#include "i2c_master.h"#define LOBYTE(x)        (uint8_t)((uint16_t)x)#define HIBYTE(x)        (uint8_t)(((uint16_t)x)>>8)#define MAKE_WORD(hi,lo) (((uint8_t)hi*(uint16_t)0x100)+(uint8_t)lo)uint8_t distco_mode;uint8_t distco_distance[5];uint8_t distco_rc5_count;//uint8_t distco_rc5_frame[5];//uint8_t distco_rc5_size;uint16_t distco_rc5_cmd;uint8_t distco_transmit(){  if (i2c_start_transmission()==0)    return 0;  if (i2c_wait_transmission()==0)    return 0;  if (i2c_status()!=I2C_SUCCESS)    return 0;  return 1;}uint8_t distco_update(){  i2c_buf[1]=0xaf;  i2c_buf[2]=0xfe;  i2c_buf[3]=0xaf;  i2c_buf[4]=0xfe;  i2c_buf[5]=0xaf;  i2c_buf[6]=0xfe;  i2c_buf[7]=0xaf;  i2c_buf[8]=0xfe;  i2c_size = 9;  i2c_buf[0] = I2C_RX(DISTCO_I2C_ID);  if (!distco_transmit())    return 0;  distco_distance[0] = i2c_buf[1];  distco_distance[1] = i2c_buf[2];  distco_distance[2] = i2c_buf[3];  distco_distance[3] = i2c_buf[4];  distco_distance[4] = i2c_buf[5];  distco_rc5_count = i2c_buf[6];  uint16_t cmd = MAKE_WORD(i2c_buf[7], i2c_buf[8]);  if (cmd)    distco_rc5_cmd=cmd;  return 1;}uint8_t distco_stop(){  i2c_size = 2;  i2c_buf[0] = I2C_TX(DISTCO_I2C_ID);  i2c_buf[1] = 0x00;  return distco_transmit();}uint8_t distco_startMeasure(){  i2c_size = 2;  i2c_buf[0] = I2C_TX(DISTCO_I2C_ID);  i2c_buf[1] = 0x01;  return distco_transmit();}uint8_t distco_transmitRC5(uint16_t rc5){  i2c_size = 4;  i2c_buf[0] = I2C_TX(DISTCO_I2C_ID);  i2c_buf[1] = 0x02;  i2c_buf[2] = HIBYTE(rc5);  i2c_buf[3] = LOBYTE(rc5);  return distco_transmit();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -