Compare commits

..

1 Commits

Author SHA1 Message Date
bmy
92395b9bb7 feat: 增加灯条与蜂鸣器接口 2024-06-02 18:25:28 +08:00
2 changed files with 36 additions and 17 deletions

View File

@@ -74,69 +74,92 @@ void by_messy_loop(void)
buff_t_u8[1] = 5; // 设置复位速度 5 buff_t_u8[1] = 5; // 设置复位速度 5
by_can_send_stdd(0x008, buff_t_u8, 1, 100); by_can_send_stdd(0x008, buff_t_u8, 1, 100);
break; break;
case 0x43: // 设置转台末端执行器复位 case 0x43: // 设置转台末端执行器复位
by_frame_send(cmd, buff); // 正确接收后直接返回原文 by_frame_send(cmd, buff); // 正确接收后直接返回原文
buff_t_u8[0] = 0; buff_t_u8[0] = 0;
by_can_send_stdd(0x009, buff_t_u8, 1, 100); by_can_send_stdd(0x009, buff_t_u8, 1, 100);
break; break;
case 0x44: // 设置x轴位置 (增量)
case 0x44: // 设置 x 轴位置 (增量)
by_frame_send(cmd, buff); by_frame_send(cmd, buff);
buff_t_u8[0] = 1; // 增量模式 buff_t_u8[0] = 1; // 增量模式
buff_t_u8[1] = buff[0]; // 拷贝设置速度 buff_t_u8[1] = (uint8_t)(buff[0] & 0xFF); // 拷贝设置速度
memcpy(&buff_t_u8[2], &buff[1], sizeof(float)); // 拷贝设置距离 memcpy(&buff_t_u8[2], &buff[1], sizeof(float)); // 拷贝设置距离
by_can_send_stdd(0x006, buff_t_u8, 8, 100); by_can_send_stdd(0x006, buff_t_u8, 8, 100);
break; break;
case 0x46: // 设置z轴位置 (增量)
case 0x46: // 设置 z 轴位置 (增量)
by_frame_send(cmd, buff); by_frame_send(cmd, buff);
buff_t_u8[0] = 1; // 增量模式 buff_t_u8[0] = 1; // 增量模式
buff_t_u8[1] = buff[0]; // 拷贝设置速度 buff_t_u8[1] = (uint8_t)(buff[0] & 0xFF); // 拷贝设置速度
memcpy(&buff_t_u8[2], &buff[1], sizeof(float)); // 拷贝设置距离 memcpy(&buff_t_u8[2], &buff[1], sizeof(float)); // 拷贝设置距离
by_can_send_stdd(0x008, buff_t_u8, 8, 100); by_can_send_stdd(0x008, buff_t_u8, 8, 100);
break; break;
case 0x47: // 设置x轴位置 (绝对)
case 0x47: // 设置 x 轴位置 (绝对)
by_frame_send(cmd, buff); by_frame_send(cmd, buff);
buff_t_u8[0] = 0; // 位置模式 buff_t_u8[0] = 0; // 位置模式
buff_t_u8[1] = buff[0]; // 拷贝设置速度 buff_t_u8[1] = (uint8_t)(buff[0] & 0xFF); // 拷贝设置速度
memcpy(&buff_t_u8[2], &buff[1], sizeof(float)); // 拷贝设置距离 memcpy(&buff_t_u8[2], &buff[1], sizeof(float)); // 拷贝设置距离
by_can_send_stdd(0x006, buff_t_u8, 8, 100); by_can_send_stdd(0x006, buff_t_u8, 8, 100);
break; break;
case 0x49: // 设置z轴位置 (绝对)
case 0x49: // 设置 z 轴位置 (绝对)
by_frame_send(cmd, buff); by_frame_send(cmd, buff);
buff_t_u8[0] = 0; // 增量模式 buff_t_u8[0] = 0; // 增量模式
buff_t_u8[1] = buff[0]; // 拷贝设置速度 buff_t_u8[1] = (uint8_t)(buff[0] & 0xFF); // 拷贝设置速度
memcpy(&buff_t_u8[2], &buff[1], sizeof(float)); // 拷贝设置距离 memcpy(&buff_t_u8[2], &buff[1], sizeof(float)); // 拷贝设置距离
by_can_send_stdd(0x008, buff_t_u8, 8, 100); by_can_send_stdd(0x008, buff_t_u8, 8, 100);
break; break;
case 0x50: // 设置夹爪摇臂角度 case 0x50: // 设置夹爪摇臂角度
by_frame_send(cmd, buff); by_frame_send(cmd, buff);
memcpy(buff_t_f, buff, sizeof(float)); memcpy(buff_t_f, buff, sizeof(float));
buff_t_u16[0] = (int16_t)(buff_t_f[0]); buff_t_u16[0] = (int16_t)(buff_t_f[0]);
by_can_send_stdd(0x009, (uint8_t *)&buff_t_u16, 2, 100); by_can_send_stdd(0x009, (uint8_t *)&buff_t_u16, 2, 100);
break; break;
case 0x51: // 设置夹爪角度 case 0x51: // 设置夹爪角度
by_frame_send(cmd, buff); by_frame_send(cmd, buff);
memcpy(buff_t_f, buff, sizeof(float)); memcpy(buff_t_f, buff, sizeof(float));
buff_t_u16[0] = (int16_t)(buff_t_f[0]); buff_t_u16[0] = (int16_t)(buff_t_f[0]);
by_can_send_stdd(0x00A, (uint8_t *)&buff_t_u16, 2, 100); by_can_send_stdd(0x00A, (uint8_t *)&buff_t_u16, 2, 100);
break; break;
case 0x52: // 设置摄像头角度 case 0x52: // 设置摄像头角度
by_frame_send(cmd, buff); by_frame_send(cmd, buff);
memcpy(buff_t_f, buff, sizeof(float)); memcpy(buff_t_f, buff, sizeof(float));
buff_t_u16[0] = (int16_t)(buff_t_f[0]); buff_t_u16[0] = (int16_t)(buff_t_f[0]);
by_can_send_stdd(0x00B, (uint8_t *)&buff_t_u16, 2, 100); by_can_send_stdd(0x00B, (uint8_t *)&buff_t_u16, 2, 100);
break; break;
case 0x53: // 设置顶端抓取机构角度 case 0x53: // 设置顶端抓取机构角度
by_frame_send(cmd, buff); by_frame_send(cmd, buff);
memcpy(buff_t_f, buff, sizeof(float)); memcpy(buff_t_f, buff, sizeof(float));
buff_t_u16[0] = (int16_t)(buff_t_f[0]); buff_t_u16[0] = (int16_t)(buff_t_f[0]);
by_can_send_stdd(0x00C, (uint8_t *)&buff_t_u16, 2, 100); by_can_send_stdd(0x00C, (uint8_t *)&buff_t_u16, 2, 100);
break; break;
case 0x54: // 设置托盘角度 case 0x54: // 设置托盘角度
by_frame_send(cmd, buff); by_frame_send(cmd, buff);
memcpy(buff_t_f, buff, sizeof(float)); memcpy(buff_t_f, buff, sizeof(float));
buff_t_u16[0] = (int16_t)(buff_t_f[0]); buff_t_u16[0] = (int16_t)(buff_t_f[0]);
by_can_send_stdd(0x00D, (uint8_t *)&buff_t_u16, 2, 100); by_can_send_stdd(0x00D, (uint8_t *)&buff_t_u16, 2, 100);
break; break;
case 0x61: // 设置闪灯
by_frame_send(cmd, buff);
memcpy(buff_t_u8, buff, sizeof(buff[1]));
gpio_bits_write(GPIOC, GPIO_PINS_3, buff_t_u8[0] ? FALSE : TRUE); // 灯条
break;
case 0x62: // 设置蜂鸣器
by_frame_send(cmd, buff);
memcpy(buff_t_u8, buff, sizeof(buff[1]));
gpio_bits_write(GPIOC, GPIO_PINS_2, buff_t_u8[0] ? FALSE : TRUE); // 灯条
break;
default: default:
break; break;
} }

View File

@@ -152,12 +152,8 @@ int main(void)
/* add user code end 2 */ /* add user code end 2 */
while(1) while (1) {
{
/* add user code begin 3 */ /* add user code begin 3 */
// gpio_bits_write(GPIOC, GPIO_PINS_3, !gpio_output_data_bit_read(GPIOC, GPIO_PINS_3));
// gpio_bits_write(GPIOC, GPIO_PINS_2, !gpio_output_data_bit_read(GPIOC, GPIO_PINS_2));
// DWT_Delay(1000000);
by_messy_loop(); by_messy_loop();
by_motion_loop(); by_motion_loop();
/* add user code end 3 */ /* add user code end 3 */