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

📄 motco.c

📁 单片机上的java虚拟机 用winavr 编译
💻 C
字号:
#include "iodefs.h"#include "motco.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)int16_t motco_speed_l;int16_t motco_speed_r;int16_t motco_ticks_l;int16_t motco_ticks_r;float motco_pos_x;float motco_pos_y;float motco_pos_ori;uint8_t motco_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 motco_update(){  i2c_size=9;  i2c_buf[0] = I2C_RX(MOTCO_I2C_ID);  if (motco_transmit()==0)    return 0;  motco_ticks_l = MAKE_WORD(i2c_buf[1], i2c_buf[2]);  motco_ticks_r = MAKE_WORD(i2c_buf[3], i2c_buf[4]);  motco_speed_l = MAKE_WORD(i2c_buf[5], i2c_buf[6]);  motco_speed_r = MAKE_WORD(i2c_buf[7], i2c_buf[8]);  return 1;}uint8_t motco_stop(){  i2c_size = 2;  i2c_buf[0] = I2C_TX(MOTCO_I2C_ID);  i2c_buf[1] = 0x00;  return motco_transmit();}uint8_t motco_setPWM(int16_t left, int16_t right){  i2c_size = 6;  i2c_buf[0] = I2C_TX(MOTCO_I2C_ID);  i2c_buf[1] = 0x01;  i2c_buf[2] = HIBYTE(left);  i2c_buf[3] = LOBYTE(left);  i2c_buf[4] = HIBYTE(right);  i2c_buf[5] = LOBYTE(right);  return motco_transmit();}uint8_t motco_setSpeed(int16_t left, int16_t right){  i2c_size = 6;  i2c_buf[0] = I2C_TX(MOTCO_I2C_ID);  i2c_buf[1] = 0x02;  i2c_buf[2] = HIBYTE(left);  i2c_buf[3] = LOBYTE(left);  i2c_buf[4] = HIBYTE(right);  i2c_buf[5] = LOBYTE(right);  return motco_transmit();}uint8_t motco_setParameters(int8_t ki, int8_t kp, int8_t kd){  i2c_size = 5;  i2c_buf[0] = I2C_TX(MOTCO_I2C_ID);  i2c_buf[1] = 0x03;  i2c_buf[2] = ki;  i2c_buf[3] = kp;  i2c_buf[4] = kd;  return motco_transmit();}uint8_t motco_resetOdometry(int16_t left, int16_t right){  i2c_size = 6;  i2c_buf[0] = I2C_TX(MOTCO_I2C_ID);  i2c_buf[1] = 0x04;  i2c_buf[2] = HIBYTE(left);  i2c_buf[3] = LOBYTE(left);  i2c_buf[4] = HIBYTE(right);  i2c_buf[5] = LOBYTE(right);  return motco_transmit();}

⌨️ 快捷键说明

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