Global Informatics
void
TIM2_IRQHandler
(void
)
{
if
(TIM_GetITStatus (TIM2, TIM_IT_Update)! = RESET)
{
if
(counter == 251)
{ TIM_Cmd (TIM2, DISABLE);_Cmd (DMA2_Stream0, DISABLE);_Stream3_Chanel4_Configuration ();
}++;_ClearITPendingBit (TIM2, TIM_IT_Update); }}
Рисунок ПБ.1 - Продолжение
Текст программы для управления устройством измерения параметров аналоговых сигналов с ЭВМ. Текст программы представлен на рисунке ПБ.2.
using System;
using System. Collections. Generic;System.componentModel;System. Data;System. Drawing;System. Linq;System. Text;System. Windows. Forms;System. IO. Ports;ZedGraph;bluetooth
{partial class View: Form
{int SnapshotLenght = 250;double Vref = 3.3;ADC_Period;T3_Period;V3_Freq;SecondPerDivision;Tgen_Period;Vgen_Freq;byte [] ByteArray = new byte [SnapshotLenght];double [] IntArray = new double [SnapshotLenght];str_Rx;port = new SerialPort ("COM18", 115200, Parity. None, 8, StopBits. One);View ()
{();_1_1. Enabled = false;_1_2. Enabled = false;_1_3. Enabled = false;_1_4. Enabled = false;_1_5. Enabled = false;_1_6. Enabled = false;_1_7. Enabled = false;_1_8. Enabled = false;
}void View_Load (object sender, EventArgs e)
{. ZoomEvent += new ZedGraphControl. ZoomEventHandler (zedGraph_ZoomEvent);
}void OpenSpButton_Click (object sender, EventArgs e)
{();
}void reDraw ()
{();();
}
Рисунок ПБ.2 - Текст программыvoid CloseSpButoon_Click (object sender, EventArgs e)
{();
}void closeButton_Click (object sender, EventArgs e)
{();
}zedGraph_ZoomEvent (ZedGraphControl sender, ZoomState oldState, ZoomState newState)
{pane = sender. GraphPane;(pane. XAxis. Scale. Min <= 0)
{. XAxis. Scale. Min = 0;
}(pane. XAxis. Scale. Max >= 12)
{. XAxis. Scale. Max = 12;
}(pane. YAxis. Scale. Min <= 0)
{. YAxis. Scale. Min = 0;
}(pane. YAxis. Scale. Max >= Vref + 2)
{. YAxis. Scale. Max = Vref + 2;
}
}void openSerialPort ()
{. ReadBufferSize = 250;. ReceivedBytesThreshold = 250;. DataReceived += new SerialDataReceivedEventHandler (DataReceivedHandler);. Open ();
}void DataReceivedHandler (object sender, SerialDataReceivedEventArgs e)
{sp = (SerialPort) sender;. Read (ByteArray, 0, ByteArray. Length);
}void sendStrToPort (string str1)
{. Write (str1);
}void closeSerialPort ()
{. Close ();
}void changeInterval ()
{(int i = 0; i < ByteArray. Length; i++)
{[i] = Convert. ToDouble (ByteArray [i]);[i] = ( (IntArray [i] / SnapshotLenght) * Vref); // входной интервал - [0; 255], выходной интервал - [0; 3.3]
}}string convertByteToStr ()
{str_Rx = null;(int i = 0; i < ByteArray. Length; i++)
{str_Rx += i + ")" + " " + Convert. ToString (IntArray [i]) +
Рисунок ПБ.2 - Продолжение. NewLine; }str_Rx; }void DrawGraph ()
{panel = zedGraph. GraphPanelist = new PointPairList ();. CurveList. Clear ();y = 0;(double x = 0; x < 10-0.04; x +=0.04, y += 1)
{. Add (x, IntArray [y]);
}myCurve = panel. AddCurve ("ADC", list, Color. Red, SymbolType. None);. AxisChange ();. Invalidate ();
}void timer1_Tick (object sender, EventArgs e)
{();
}void pause_Click (object sender, EventArgs e)
{. Stop ();
}void start_Click (object sender, EventArgs e)
{. Start ();
}void button_1_1_Click (object sender, EventArgs e)
{("11");_Period = 1.17; // *SnapshotLenght;. Text = Convert. ToString (ADC_Period);
Статья в тему
Электромеханический следящий привод робота
Разработать
электромеханический следящий привод «плечевой» степени подвижности двухзвенного
плоского манипулятора робота, кинематическая схема которого изображена на рис.
1.
Рис
1. Расчётная кинематическая схема манипуляционного механизма.
Основные
технические требова ...