Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp
00001 #include "mbed.h" 00002 #include "chip.h" 00003 #include "libuavcan/libuavcan/include/uavcan/build_config.hpp" //All default configuration options 00004 #include "libuavcan/libuavcan_drivers/stm32/driver/include/uavcan_stm32/build_config.hpp" //OS detection; Any General-Purpose timer 00005 #include "libuavcan/libuavcan/include/uavcan/node/subscriber.hpp" //Subscriber class 00006 #include <uavcan/equipment/actuator/Command.hpp> //message type 00007 #include "stm32f103c8t6.h" 00008 00009 00010 static PwmOut servo(PA_8); 00011 void move (); 00012 00013 extern uavcan::ICanDriver& getCanDriver(); 00014 extern uavcan::ISystemClock& getSystemClock(); 00015 00016 const unsigned NodeMemoryPoolSize = 16384; // Need calulate (tutorial 2). 00017 typedef uavcan::Node<NodeMemoryPoolSize> Node; 00018 00019 static Node& getNode() { 00020 static Node node(getCanDriver(), getSystemClock()); 00021 return node; 00022 } 00023 00024 int main() { 00025 confSysClock(); 00026 auto& node = getNode(); 00027 node.setNodeID(2); 00028 node.setName("Actuator"); 00029 if (node.start() > 0){ //<>? 00030 //обработка ошибок запуска 00031 } 00032 uavcan::Subscriber <uavcan::equipment::actuator::Command> sub(node); //define node to subscriber 00033 if (sub.start(move) > 0) { //запуск чтения 00034 //обработка ошибок 00035 } 00036 00037 node.setMoreOptional(); 00038 float input = 0; 00039 while(1) { 00040 if (node.spin(uavcan::MonotonicDuration::getInfinite()) < 0){ 00041 //обработчик ошибок 00042 } 00043 } 00044 } 00045 00046 void move (const ReceivedDataStructure<DataType_>& msg){ 00047 static bool a = true; 00048 if(a){ 00049 servo.period_ms(20); 00050 a = false; 00051 } 00052 servo = (msg.command_value / pi) / 2 + 1 //лучше перевести это в коэффициент 00053 }
Generated on Sun Jul 24 2022 04:27:17 by
1.7.2