2024-05-13 08:08:47 +00:00
|
|
|
|
/*
|
|
|
|
|
|
* Copyright (c) 2006-2021, RT-Thread Development Team
|
|
|
|
|
|
*
|
|
|
|
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
|
|
|
|
*
|
|
|
|
|
|
* Change Logs:
|
|
|
|
|
|
* Date Author Notes
|
|
|
|
|
|
* 2024-05-06 lijian the first version
|
|
|
|
|
|
*/
|
|
|
|
|
|
#include <inout.h>
|
|
|
|
|
|
|
|
|
|
|
|
IO_t IO;
|
|
|
|
|
|
|
|
|
|
|
|
//输入端口列表
|
2024-05-17 07:00:05 +00:00
|
|
|
|
rt_base_t input_pins[] = { GET_PIN(C, 2),
|
|
|
|
|
|
GET_PIN(C, 3),
|
|
|
|
|
|
GET_PIN(A, 5),
|
|
|
|
|
|
GET_PIN(A, 6),
|
|
|
|
|
|
GET_PIN(A, 7),
|
|
|
|
|
|
GET_PIN(C, 4),
|
|
|
|
|
|
GET_PIN(A, 8),
|
|
|
|
|
|
GET_PIN(C, 9),
|
2024-05-13 08:08:47 +00:00
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//输出端口列表
|
|
|
|
|
|
rt_base_t output_pins[] = {
|
|
|
|
|
|
|
2024-05-17 07:00:05 +00:00
|
|
|
|
// GET_PIN(B, 12), //4
|
|
|
|
|
|
// GET_PIN(B, 13), //5
|
|
|
|
|
|
// GET_PIN(B, 14), //6
|
|
|
|
|
|
// GET_PIN(B, 15), //7
|
|
|
|
|
|
// GET_PIN(C, 6), //8
|
|
|
|
|
|
// GET_PIN(C, 7), //3
|
|
|
|
|
|
// GET_PIN(C, 8), //2
|
|
|
|
|
|
// GET_PIN(A, 11), //1
|
2024-05-13 08:08:47 +00:00
|
|
|
|
|
2024-05-17 07:00:05 +00:00
|
|
|
|
GET_PIN(A, 11), //1
|
|
|
|
|
|
GET_PIN(C, 8), //2
|
|
|
|
|
|
GET_PIN(C, 7), //3
|
|
|
|
|
|
GET_PIN(B, 12), //4
|
|
|
|
|
|
GET_PIN(B, 13), //5
|
|
|
|
|
|
GET_PIN(B, 14), //6
|
|
|
|
|
|
GET_PIN(B, 15), //7
|
|
|
|
|
|
GET_PIN(C, 6), //8
|
|
|
|
|
|
};
|
2024-05-13 08:08:47 +00:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 端口中断回调函数
|
|
|
|
|
|
* @param args
|
|
|
|
|
|
*/
|
|
|
|
|
|
void gpio_irq_callback(void *args)
|
|
|
|
|
|
{
|
2024-05-17 07:00:05 +00:00
|
|
|
|
rt_base_t pin = (rt_base_t) (uintptr_t) args; // 获取触发中断的引脚号
|
|
|
|
|
|
// rt_kprintf("pin: %#x", pin , IO.IO_Data[0].Temp_Count);
|
2024-05-13 08:08:47 +00:00
|
|
|
|
switch (pin)
|
|
|
|
|
|
{
|
2024-05-17 07:00:05 +00:00
|
|
|
|
case IN0:
|
2024-05-13 08:08:47 +00:00
|
|
|
|
IO.IO_Data[0].Temp_Count++;
|
2024-05-17 07:00:05 +00:00
|
|
|
|
if (IO.IO_Flag.log) {
|
|
|
|
|
|
rt_kprintf("Pin0:%d\n", IO.IO_Data[0].Temp_Count);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-05-13 08:08:47 +00:00
|
|
|
|
break;
|
2024-05-17 07:00:05 +00:00
|
|
|
|
case IN1:
|
2024-05-13 08:08:47 +00:00
|
|
|
|
IO.IO_Data[1].Temp_Count++;
|
2024-05-17 07:00:05 +00:00
|
|
|
|
if (IO.IO_Flag.log) {
|
|
|
|
|
|
rt_kprintf("Pin1:%d\n", IO.IO_Data[1].Temp_Count);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-05-13 08:08:47 +00:00
|
|
|
|
break;
|
2024-05-17 07:00:05 +00:00
|
|
|
|
case IN2:
|
2024-05-13 08:08:47 +00:00
|
|
|
|
IO.IO_Data[2].Temp_Count++;
|
2024-05-17 07:00:05 +00:00
|
|
|
|
if (IO.IO_Flag.log) {
|
|
|
|
|
|
rt_kprintf("Pin2:%d\n", IO.IO_Data[2].Temp_Count);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-05-13 08:08:47 +00:00
|
|
|
|
break;
|
2024-05-17 07:00:05 +00:00
|
|
|
|
case IN3:
|
2024-05-13 08:08:47 +00:00
|
|
|
|
IO.IO_Data[3].Temp_Count++;
|
2024-05-17 07:00:05 +00:00
|
|
|
|
if (IO.IO_Flag.log) {
|
|
|
|
|
|
rt_kprintf("Pin3:%d\n", IO.IO_Data[3].Temp_Count);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-05-13 08:08:47 +00:00
|
|
|
|
break;
|
2024-05-17 07:00:05 +00:00
|
|
|
|
case IN4:
|
2024-05-13 08:08:47 +00:00
|
|
|
|
IO.IO_Data[4].Temp_Count++;
|
2024-05-17 07:00:05 +00:00
|
|
|
|
if (IO.IO_Flag.log) {
|
|
|
|
|
|
rt_kprintf("Pin4:%d\n", IO.IO_Data[4].Temp_Count);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-05-13 08:08:47 +00:00
|
|
|
|
break;
|
2024-05-17 07:00:05 +00:00
|
|
|
|
case IN5:
|
2024-05-13 08:08:47 +00:00
|
|
|
|
IO.IO_Data[5].Temp_Count++;
|
2024-05-17 07:00:05 +00:00
|
|
|
|
if (IO.IO_Flag.log) {
|
|
|
|
|
|
rt_kprintf("Pin5:%d\n", IO.IO_Data[5].Temp_Count);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-05-13 08:08:47 +00:00
|
|
|
|
break;
|
2024-05-17 07:00:05 +00:00
|
|
|
|
case IN6:
|
2024-05-13 08:08:47 +00:00
|
|
|
|
IO.IO_Data[6].Temp_Count++;
|
2024-05-17 07:00:05 +00:00
|
|
|
|
if (IO.IO_Flag.log) {
|
|
|
|
|
|
rt_kprintf("Pin6:%d\n", IO.IO_Data[6].Temp_Count);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-05-13 08:08:47 +00:00
|
|
|
|
break;
|
2024-05-17 07:00:05 +00:00
|
|
|
|
case IN7:
|
2024-05-13 08:08:47 +00:00
|
|
|
|
IO.IO_Data[7].Temp_Count++;
|
2024-05-17 07:00:05 +00:00
|
|
|
|
if (IO.IO_Flag.log) {
|
|
|
|
|
|
rt_kprintf("Pin7:%d\n", IO.IO_Data[7].Temp_Count);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-05-13 08:08:47 +00:00
|
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//配置输入引脚
|
|
|
|
|
|
void configure_inpin(rt_base_t pin)
|
|
|
|
|
|
{
|
|
|
|
|
|
// 设置引脚模式为上拉输入
|
|
|
|
|
|
rt_pin_mode(pin, PIN_MODE_INPUT_PULLUP);
|
|
|
|
|
|
|
|
|
|
|
|
rt_kprintf(" pin: %d %#x\r\n", pin, pin);
|
|
|
|
|
|
/* 绑定中断,下降沿模式,回调函数名为 */
|
2024-05-17 07:00:05 +00:00
|
|
|
|
rt_pin_attach_irq(pin, PIN_IRQ_MODE_FALLING, gpio_irq_callback, (void *) (uintptr_t) pin);
|
2024-05-13 08:08:47 +00:00
|
|
|
|
/* 使能中断 */
|
|
|
|
|
|
rt_pin_irq_enable(pin, PIN_IRQ_ENABLE);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 输入引脚初始化
|
|
|
|
|
|
*/
|
|
|
|
|
|
void gpio_input_init(void)
|
|
|
|
|
|
{
|
2024-05-17 07:00:05 +00:00
|
|
|
|
rt_kprintf(" IN pin list:\r\n");
|
2024-05-13 08:08:47 +00:00
|
|
|
|
|
|
|
|
|
|
for (rt_uint8_t var = 0; var < INPUT_NUM; var++)
|
|
|
|
|
|
{
|
|
|
|
|
|
configure_inpin(input_pins[var]);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 输出引脚默认为高电平
|
|
|
|
|
|
* @param pin
|
|
|
|
|
|
*/
|
2024-05-17 07:00:05 +00:00
|
|
|
|
void configure_outpin(rt_base_t pin)
|
|
|
|
|
|
{
|
2024-05-13 08:08:47 +00:00
|
|
|
|
// 设置引脚模式为输出模式
|
|
|
|
|
|
rt_pin_mode(pin, PIN_MODE_OUTPUT);
|
|
|
|
|
|
// 默认为高电平
|
|
|
|
|
|
rt_pin_write(pin, PIN_HIGH);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//输出引脚初始化
|
2024-05-17 07:00:05 +00:00
|
|
|
|
void gpio_output_init(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
for (rt_uint8_t var = 0; var < OUTPUT_NUM; var++)
|
|
|
|
|
|
{
|
2024-05-13 08:08:47 +00:00
|
|
|
|
configure_outpin(output_pins[var]);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//获取端口电平触发次数
|
2024-05-17 07:00:05 +00:00
|
|
|
|
rt_uint32_t get_IO_count(rt_uint8_t io)
|
|
|
|
|
|
{
|
2024-05-13 08:08:47 +00:00
|
|
|
|
return IO.IO_Data[io].Temp_Count;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-05-17 07:00:05 +00:00
|
|
|
|
//获取端口电平值
|
|
|
|
|
|
rt_uint8_t get_IO_Value()
|
|
|
|
|
|
{
|
|
|
|
|
|
return IO.IO_Flag.Value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
rt_uint8_t get_IO_NeedleCountUpdateFlag()
|
|
|
|
|
|
{
|
|
|
|
|
|
return IO.IO_Flag.NeedleCountUpdateFlag;
|
2024-07-12 08:22:49 +00:00
|
|
|
|
// return IO.IO_Data[IO.IO_Flag.Needle_io].Temp_Count;
|
2024-05-17 07:00:05 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
2024-07-12 08:22:49 +00:00
|
|
|
|
void set_IO_NeedleCountUpdateFlag(rt_uint8_t flag)
|
|
|
|
|
|
{
|
|
|
|
|
|
IO.IO_Flag.NeedleCountUpdateFlag = flag;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-05-17 07:00:05 +00:00
|
|
|
|
void set_IO_Needle_io(rt_uint8_t io)
|
|
|
|
|
|
{
|
|
|
|
|
|
IO.IO_Flag.Needle_io = io;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
rt_uint32_t get_IO_NeedleCount_sum()
|
|
|
|
|
|
{
|
2024-07-12 08:22:49 +00:00
|
|
|
|
return IO.IO_Data[IO.IO_Flag.Needle_io].Temp_Count;
|
|
|
|
|
|
// return IO.IO_Data[IO.IO_Flag.Needle_io].NeedleCount_Sum;
|
2024-05-17 07:00:05 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void set_IO_NeedleCount_sum(rt_uint8_t count)
|
|
|
|
|
|
{
|
|
|
|
|
|
IO.IO_Data[IO.IO_Flag.Needle_io].NeedleCount_Sum = count;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @brief 确认端口电平.当端口从高电平变为低电平代表次数+1
|
|
|
|
|
|
* @param none
|
|
|
|
|
|
* @return: None
|
|
|
|
|
|
*/
|
|
|
|
|
|
void updateKeyValue(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
//#define IN0 0x22 //1
|
|
|
|
|
|
//#define IN1 0x23 //2 锁1状态
|
|
|
|
|
|
//#define IN2 0x5 //3 锁2状态
|
|
|
|
|
|
//#define IN3 0x6 //4 锁3状态
|
|
|
|
|
|
//#define IN4 0x7 //5 右盖板检测
|
|
|
|
|
|
//#define IN5 0x24 //6 左盖板检测
|
|
|
|
|
|
//#define IN6 0x8 //7 启停
|
|
|
|
|
|
//#define IN7 0x29 //8 主轴
|
|
|
|
|
|
|
|
|
|
|
|
IO.IO_Flag.Value |= rt_pin_read(IN0) << 0;
|
|
|
|
|
|
IO.IO_Flag.Value |= rt_pin_read(IN1) << 1;
|
|
|
|
|
|
IO.IO_Flag.Value |= rt_pin_read(IN2) << 2;
|
|
|
|
|
|
IO.IO_Flag.Value |= rt_pin_read(IN3) << 3;
|
|
|
|
|
|
IO.IO_Flag.Value |= rt_pin_read(IN4) << 4;
|
|
|
|
|
|
IO.IO_Flag.Value |= rt_pin_read(IN5) << 5;
|
|
|
|
|
|
IO.IO_Flag.Value |= rt_pin_read(IN6) << 6;
|
|
|
|
|
|
IO.IO_Flag.Value |= rt_pin_read(IN7) << 7;
|
|
|
|
|
|
IO.IO_Flag.Value = ~IO.IO_Flag.Value;
|
|
|
|
|
|
|
|
|
|
|
|
// rt_uint8_t i = 0;
|
|
|
|
|
|
//
|
|
|
|
|
|
// for (i = 0; i < INPUT_NUM; i++)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// //跳过转速和针数口
|
|
|
|
|
|
// if (i == IO.IO_Flag.Speed_io || i==IO.IO_Flag.Needle_io)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// continue;
|
|
|
|
|
|
// }
|
|
|
|
|
|
//
|
|
|
|
|
|
//
|
|
|
|
|
|
// if (rt_pin_read(input_pins[i]) == 0)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// rt_thread_mdelay(10);
|
|
|
|
|
|
// if (rt_pin_read(input_pins[i]) == 0)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// IO.IO_Data[i].Key = 1;
|
|
|
|
|
|
// IO.IO_Data[i].Key_Flag = 1;
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
// else
|
|
|
|
|
|
// {
|
|
|
|
|
|
// //rt_kprintf("\n");
|
|
|
|
|
|
// // rt_kprintf("key 0 \n");
|
|
|
|
|
|
// IO.IO_Data[i].Key = 0;
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
//
|
|
|
|
|
|
//
|
|
|
|
|
|
// for (i = 0; i < INPUT_NUM; i++)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// if (IO.IO_Data[i].Key_Flag == 1)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// if (IO.IO_Data[i].Key == 0)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// IO.IO_Data[i].Count += 1;
|
|
|
|
|
|
// IO.IO_Data[i].Key_Flag = 0;
|
|
|
|
|
|
//
|
|
|
|
|
|
// rt_kprintf("\n", IO.IO_Data[i].Count);
|
|
|
|
|
|
// if (IO.IO_Flag.log) {
|
|
|
|
|
|
// rt_kprintf("Count: %d , temp count %d\n", IO.IO_Data[i].Count, IO.IO_Data[i].Temp_Count);
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-05-15 09:41:42 +00:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @brief 计算转速,500毫秒的中断次数乘2为1秒次数,1秒次数乘60为rpm单位转速
|
|
|
|
|
|
* @param none
|
|
|
|
|
|
* @return: None
|
|
|
|
|
|
*/
|
|
|
|
|
|
void updateSpeed(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
rt_uint16_t tmp_start = 0;
|
|
|
|
|
|
rt_uint16_t tmp_end = 0;
|
|
|
|
|
|
//rt_tick_t tick_start = 0;
|
|
|
|
|
|
//rt_tick_t tick_end = 0;
|
|
|
|
|
|
rt_uint16_t temp = 0;
|
|
|
|
|
|
|
|
|
|
|
|
temp = IO.IO_Data[IO.IO_Flag.Speed_io].Speed;
|
|
|
|
|
|
tmp_start = IO.IO_Data[IO.IO_Flag.Speed_io].Temp_Count;
|
|
|
|
|
|
|
|
|
|
|
|
//tick_start = rt_tick_get_millisecond();
|
|
|
|
|
|
rt_thread_mdelay(500);
|
|
|
|
|
|
//tick_end = rt_tick_get_millisecond();
|
|
|
|
|
|
|
|
|
|
|
|
tmp_end = IO.IO_Data[IO.IO_Flag.Speed_io].Temp_Count;
|
|
|
|
|
|
|
|
|
|
|
|
if (tmp_end < tmp_start)
|
|
|
|
|
|
{
|
|
|
|
|
|
IO.IO_Data[IO.IO_Flag.Speed_io].Speed = (tmp_end + 65535 - tmp_start) * 120;
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
IO.IO_Data[IO.IO_Flag.Speed_io].Speed = (tmp_end - tmp_start) * 120;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-05-17 07:00:05 +00:00
|
|
|
|
if (IO.IO_Flag.log)
|
|
|
|
|
|
{
|
|
|
|
|
|
rt_kprintf("Speed: %d %d\n", IO.IO_Flag.Speed_io + 1, IO.IO_Data[IO.IO_Flag.Speed_io].Speed);
|
2024-05-15 09:41:42 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
2024-05-17 07:00:05 +00:00
|
|
|
|
// if(tmp_end < tmp_start){
|
|
|
|
|
|
// IO.IO_Data[i].Temp_Speed = (tmp_end + 65535 - tmp_start) / ((tick_end - tick_start) / 1000);
|
|
|
|
|
|
// }
|
|
|
|
|
|
// else {
|
|
|
|
|
|
// IO.IO_Data[i].Temp_Speed = (tmp_end - tmp_start) / ((tick_end - tick_start) / 1000);
|
|
|
|
|
|
// }
|
2024-05-15 09:41:42 +00:00
|
|
|
|
|
|
|
|
|
|
if (temp != IO.IO_Data[IO.IO_Flag.Speed_io].Speed)
|
|
|
|
|
|
{
|
|
|
|
|
|
IO.IO_Flag.SpeedUpdateFlag = 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
IO.IO_Flag.SpeedUpdateFlag = 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-05-17 07:00:05 +00:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @brief 计算针数,500毫秒的中断次数,NeedleCount为临时针数,会清零,NeedleCount_Sum为针数总和
|
|
|
|
|
|
* @param none
|
|
|
|
|
|
* @return: None
|
|
|
|
|
|
*/
|
|
|
|
|
|
void updateNeedleCount(void)
|
|
|
|
|
|
{
|
2024-07-12 08:22:49 +00:00
|
|
|
|
//
|
2024-05-17 07:00:05 +00:00
|
|
|
|
|
2024-07-12 08:22:49 +00:00
|
|
|
|
if (IO.IO_Data[IO.IO_Flag.Needle_io].Count!=IO.IO_Data[IO.IO_Flag.Needle_io].Temp_Count) {
|
|
|
|
|
|
IO.IO_Data[IO.IO_Flag.Needle_io].Count = IO.IO_Data[IO.IO_Flag.Needle_io].Temp_Count;
|
2024-05-17 07:00:05 +00:00
|
|
|
|
IO.IO_Flag.NeedleCountUpdateFlag = 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-07-12 08:22:49 +00:00
|
|
|
|
return;
|
|
|
|
|
|
//DATU需求
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// rt_thread_mdelay(500);
|
|
|
|
|
|
// rt_uint32_t tempCount = 0;
|
|
|
|
|
|
// if ((IO.IO_Data[IO.IO_Flag.Needle_io].Temp_Count - tempCount))
|
|
|
|
|
|
// {
|
|
|
|
|
|
// IO.IO_Data[IO.IO_Flag.Needle_io].NeedleCount = IO.IO_Data[IO.IO_Flag.Needle_io].Temp_Count - IO.IO_Data[IO.IO_Flag.Needle_io].NeedleCount_last;
|
|
|
|
|
|
// IO.IO_Data[IO.IO_Flag.Needle_io].NeedleCount_Sum += IO.IO_Data[IO.IO_Flag.Needle_io].NeedleCount;
|
|
|
|
|
|
// IO.IO_Flag.NeedleCountUpdateFlag = 1;
|
|
|
|
|
|
// //微工厂需求针数要没有变化清零,下列注释,NeedleCount_Sum+=变为=
|
|
|
|
|
|
// IO.IO_Data[IO.IO_Flag.Needle_io].NeedleCount = 0;
|
|
|
|
|
|
// IO.IO_Data[IO.IO_Flag.Needle_io].NeedleCount_last = IO.IO_Data[IO.IO_Flag.Needle_io].Temp_Count;
|
|
|
|
|
|
// if (IO.IO_Flag.log) {
|
|
|
|
|
|
// rt_kprintf("NeedleCount: %d %d\n", IO.IO_Data[IO.IO_Flag.Needle_io].NeedleCount_Sum, IO.IO_Flag.Needle_io);
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
// else
|
|
|
|
|
|
// {
|
|
|
|
|
|
// IO.IO_Flag.NeedleCountUpdateFlag = 0;
|
|
|
|
|
|
// IO.IO_Data[IO.IO_Flag.Needle_io].NeedleCount = 0;
|
|
|
|
|
|
// IO.IO_Data[IO.IO_Flag.Needle_io].NeedleCount_last = IO.IO_Data[IO.IO_Flag.Needle_io].Temp_Count;
|
|
|
|
|
|
//
|
|
|
|
|
|
// }
|
2024-05-17 07:00:05 +00:00
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-05-13 08:08:47 +00:00
|
|
|
|
//控制台更改电平
|
2024-05-17 07:00:05 +00:00
|
|
|
|
void IO_key(int argc, char**argv)
|
|
|
|
|
|
{
|
2024-05-13 08:08:47 +00:00
|
|
|
|
|
|
|
|
|
|
rt_uint8_t var = atoi(argv[1]);
|
|
|
|
|
|
rt_uint8_t var2 = atoi(argv[2]);
|
2024-05-17 07:00:05 +00:00
|
|
|
|
if (var2)
|
|
|
|
|
|
{
|
2024-05-13 08:08:47 +00:00
|
|
|
|
rt_pin_write(output_pins[var], PIN_HIGH);
|
2024-05-17 07:00:05 +00:00
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
2024-05-13 08:08:47 +00:00
|
|
|
|
rt_pin_write(output_pins[var], PIN_LOW);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-05-17 07:00:05 +00:00
|
|
|
|
MSH_CMD_EXPORT(IO_key, <0-7> <0-1>);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void set_IO_log(rt_uint8_t log){
|
|
|
|
|
|
IO.IO_Flag.log = log;
|
|
|
|
|
|
}
|