Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
|
ob:o7:example:pccontrol [2022/03/12 10:04] iadenisov создано |
ob:o7:example:pccontrol [2022/03/13 13:59] (текущий) iadenisov |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | Если подключить к микроконтроллеру драйвер L293D, то возможно управлять мотором, | + | ====== Передача данных между МК и ПК ====== |
| - | С помощью модуля MicroSTM32F1TPorts возможно принимать пакеты с идентификаторами от ПК. | + | |
| + | Если подключить к микроконтроллеру драйвер L293D, то возможно управлять мотором, | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | С помощью модуля | ||
| Код для микроконтроллера: | Код для микроконтроллера: | ||
| Строка 69: | Строка 74: | ||
| END Main. | END Main. | ||
| </ | </ | ||
| + | |||
| + | |||
| + | Программа для ПК на языке Компонентный Паскаль: | ||
| + | < | ||
| + | MODULE KrisControl1; | ||
| + | |||
| + | IMPORT MicroTPorts; | ||
| + | |||
| + | TYPE MessagesHandler = POINTER TO RECORD (MicroTPorts.MessagesHandler) END; | ||
| + | |||
| + | CONST | ||
| + | motorStartForward = 021X; | ||
| + | motorStartBackward = 022X; | ||
| + | motorStop = 023X; | ||
| + | |||
| + | VAR | ||
| + | p: MicroTPorts.Port; | ||
| + | mh: MessagesHandler; | ||
| + | |||
| + | PROCEDURE (h: MessagesHandler) MessageReceived (id: SHORTCHAR; IN a: ARRAY OF SHORTCHAR; len: INTEGER); | ||
| + | BEGIN | ||
| + | END MessageReceived; | ||
| + | |||
| + | PROCEDURE Open*(port: ARRAY OF CHAR); | ||
| + | BEGIN | ||
| + | IF p = NIL THEN | ||
| + | p := MicroTPorts.NewPort(port, | ||
| + | IF p # NIL THEN | ||
| + | Log.String(" | ||
| + | END | ||
| + | END | ||
| + | END Open; | ||
| + | |||
| + | PROCEDURE Close*; | ||
| + | BEGIN | ||
| + | MicroTPorts.Close(p); | ||
| + | Log.String(" | ||
| + | END Close; | ||
| + | |||
| + | PROCEDURE Forward*; | ||
| + | VAR a: ARRAY 1 OF SHORTCHAR; | ||
| + | BEGIN | ||
| + | MicroTPorts.SendMessage(p, | ||
| + | END Forward; | ||
| + | |||
| + | PROCEDURE Backward*; | ||
| + | VAR a: ARRAY 1 OF SHORTCHAR; | ||
| + | BEGIN | ||
| + | MicroTPorts.SendMessage(p, | ||
| + | END Backward; | ||
| + | |||
| + | PROCEDURE Stop*; | ||
| + | VAR a: ARRAY 1 OF SHORTCHAR; | ||
| + | BEGIN | ||
| + | MicroTPorts.SendMessage(p, | ||
| + | END Stop; | ||
| + | |||
| + | BEGIN | ||
| + | NEW(mh) | ||
| + | CLOSE | ||
| + | Close | ||
| + | END KrisControl1. | ||
| + | |||
| + | Комнады для управления: | ||
| + | |||
| + | " | ||
| + | |||
| + | KrisControl1.Forward | ||
| + | |||
| + | KrisControl1.Backward | ||
| + | |||
| + | KrisControl1.Stop | ||
| + | |||
| + | KrisControl1.Close | ||
| + | </ | ||
| + | |||
| + | Эти команды возможно привязать к кнопкам, | ||
| + | |||
| + | {{ : | ||