www.open-tager.ru

открытый лазертаг форум
Текущее время: 25 апр 2024, 15:47

Часовой пояс: UTC + 3 часа [ Летнее время ]


Реклама

Правила форума


В разделе запрещены - обсуждение оборудования не поддерживающего открытых протоколов, реклама и ссылки на готовые продукты лазертага, обсуждение политики производителей и самих производителей. Виден всем.



Начать новую тему Ответить на тему  [ Сообщений: 1089 ]  На страницу Пред.  1 ... 98, 99, 100, 101, 102, 103, 104 ... 109  След.
Автор Сообщение
 Заголовок сообщения: Re: LTArmada
СообщениеДобавлено: 06 июл 2017, 11:54 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
DiBor писал(а):
Pingvin писал(а):
Ща начну тоже самое делать под радиомодули.
И... вуа-ля - будут беспроводные датчики! ;) :)
Пока в таких корпусах, да...

Радио модули будут использоваться для каких целей, вернее какие возможности Вы планируете с ними реализовать?


Как замена блютусу.
Облепился ими с ног до головы - топология то мультиточечная!
Лишь бы памяти и оперативки хватило.

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTArmada
СообщениеДобавлено: 06 июл 2017, 19:03 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Не... f030 для радиомодуля не подходит, вот кандидат

STM32F042K6T6
Изображение

или вот
STM32F051K8T6

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTArmada
СообщениеДобавлено: 11 июл 2017, 13:53 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Сенсор для бюджетной повязки.
Либо ws2812b + ИК диод + 5 проводков = RBG сенсор +ИК
Либо классика: 4 провода и красный светодиод вместо ИК


Вложения:
RGB-Sensor-Schematic.png
RGB-Sensor-Schematic.png [ 31.8 KiB | Просмотров: 9724 ]
RGB Sensor PCB_bot.png
RGB Sensor PCB_bot.png [ 14.7 KiB | Просмотров: 9724 ]
RGB Sensor PCB_top.png
RGB Sensor PCB_top.png [ 17.6 KiB | Просмотров: 9724 ]

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!
Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTArmada
СообщениеДобавлено: 17 авг 2017, 06:40 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Снова занялся радиомодулями.
Получил два новых радиомодуля.
До этого один из двух имеющихся у меня радиомодулей сломался.
Радиомодули можно подключать к двум разным портам - к порту ЖКИ или к порту для датчиков.

Планирую сделать так - в оружии радиомодуль будет подключатся к порту датчиков, а в бандане - к порту ЖКИ.

Если подключенный к порту для сенсоров радиомодуль уже работает, то для того, чтобы использовать ЖКИ порт, нужно отключить драйвер ЖКИ.

При существующей структкре проекта это сделать непросто.
Основной код перегружен низкоуровневыми функциями для работы с железом.


А так как оборудование может быть разным (цветной или черно-белый ЖКИ, например), то ещё много макроопределений.
Код стал сложным для понимания.

Конечно - мне, в первую очередь - хотелось поскорее проверить работоспособность своих идей, качество кода было на втором плане.
Теперь, когда концепция в целом оправдала себя, пришло время занятся качеством кода.

Необходимо все низкоуроневые функции спрятать в драйверах.
Написать прослойку "middlware", чтобы был единый интерфейс для работы с подключаемыми устройствами и при использовании различных устройств код основной программы не менялся.

Вот такая непростая задача...

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTArmada
СообщениеДобавлено: 23 авг 2017, 05:35 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Причёсываю код помаленьку.
Добился, казалось, невозможного - всего 3 предупреждения при сборке! :)

Код:
       [cc] E:\Repositories\ARMaDa\FirmWare\trunk\Projects\LaserTag\ARMada_from_git\rtos_103_SDIO_FAT_complite\main.c:2916:3: warning: implicit declaration of function 'memmem' [-Wimplicit-function-declaration]
       [cc]    if (memmem(record,record_len,parametersPointers[index],param_len)!='\0'/*NULL*/)
       [cc] E:\Repositories\ARMaDa\FirmWare\trunk\Projects\LaserTag\ARMada_from_git\rtos_103_SDIO_FAT_complite\FATFS\src\option\syscall.c:15:1: warning: "/*" within comment [-Wcomment]
       [cc]  ^
       [cc]  // ret = TRUE;     /* uITRON (nothing to do) */
       [cc] E:\Repositories\ARMaDa\FirmWare\trunk\Projects\LaserTag\ARMada_from_git\rtos_103_SDIO_FAT_complite\FATFS\src\option\syscall.c:61:20: warning: "/*" within comment [-Wcomment]
       [cc]  ^
       [cc]  /*------------------------------------------------------------------------*/

Два вообще не в моих файлах, а в syscall.c
Одно тоже непонятное, так как все что надо подключено, а компилятор говорит - не задекларирована функция.
Ну и сам код становиться куда более читабельным.
Было
Код:

bool configure_bluetooth(void)//настраиваем блютус модуль
{

   bool at_res;
#ifdef    COLOR_LCD
   static volatile TextParamStruct TS;
   TS.XPos =  0;
   TS.YPos = 10;
   TS.Size = 0;
   TS.Font = StdFont;
   TS.TxtCol = iWhite;//iGreen;//iRed;
   TS.BkgCol =iBlack;//iWhite;
#endif


   USART_DeInit(USART1);
   InitCOM1(38400);
   bt_set_at_commands_mode(true);
   vTaskDelay(100);
   bt_reset();
   BL_ON;

   at_res = send_test_at_command();
   if(!at_res){
#ifndef    COLOR_LCD
      lcd8544_putstr(0, 8, "38400 тест не прошел", 0); // вывод первой строки
      if (!screen_auto_refresh) lcd8544_dma_refresh(); // вывод буфера на экран ! без этого ничего видно не будет !
#else


      if(xSemaphoreTake(xColorLCDSemaphore, (portTickType)(TIC_FQR*2)/*600*/ )== pdTRUE)//если LCD занят, ждем 2 с
      {
         while (!(SPI3->SR & SPI_SR_TXE)); // Wait for bus free
         while (SPI3->SR & SPI_SR_BSY);
         init_spi3();
         SB(0x36, Reg); //Set Memory access mode
#if          LCD_MODUL_VERSION == 2
         SB((0x08 |(1<<7)|(1<<6)), Dat);
#elif    LCD_MODUL_VERSION == 1
         SB((0x08 /*|(1<<7)*/), Dat);
#endif
         PStr("38400: Test error", &TS);
         xSemaphoreGive(xColorLCDSemaphore);
      }
#endif
      USART_DeInit(USART1);
      InitCOM1(9600);
      vTaskDelay(100);
   }
   if(strlen(armadaSystem.bluetooth.name))//если строка с именем не пустая
   {

#ifndef    COLOR_LCD
      lcd8544_putstr(0, 16, "Имя: ", 0); // вывод первой строки
      lcd8544_putstr(8, 16, armadaSystem.bluetooth.name, 0); // вывод первой строки
      if (!screen_auto_refresh) lcd8544_dma_refresh(); //
#else
      if(xSemaphoreTake(xColorLCDSemaphore, (portTickType)(TIC_FQR*2)/*600*/ )== pdTRUE)//если LCD занят, ждем 2 с
      {
         while (!(SPI3->SR & SPI_SR_TXE)); // Wait for bus free
         while (SPI3->SR & SPI_SR_BSY);
         init_spi3();
         SB(0x36, Reg); //Set Memory access mode
#if          LCD_MODUL_VERSION == 2
         SB((0x08 |(1<<7)|(1<<6)), Dat);
#elif    LCD_MODUL_VERSION == 1
         SB((0x08 /*|(1<<7)*/), Dat);
#endif
         TS.XPos =  0;
         TS.YPos +=10;
         PStr( "Name: ", &TS);
         PStr(armadaSystem.bluetooth.name, &TS);
         xSemaphoreGive(xColorLCDSemaphore);
      }
#endif


      at_res = send_set_at_command(at_name,armadaSystem.bluetooth.name);
#ifdef COLOR_LCD
      if(xSemaphoreTake(xColorLCDSemaphore, (portTickType)(TIC_FQR*2)/*600*/ )== pdTRUE)//если LCD занят, ждем 2 с
               {
                  while (!(SPI3->SR & SPI_SR_TXE)); // Wait for bus free
                  while (SPI3->SR & SPI_SR_BSY);
                  init_spi3();
                  SB(0x36, Reg); //Set Memory access mode
#if          LCD_MODUL_VERSION == 2
         SB((0x08 |(1<<7)|(1<<6)), Dat);
#elif    LCD_MODUL_VERSION == 1
         SB((0x08 /*|(1<<7)*/), Dat);
#endif
                  TS.XPos =  0;
                  TS.YPos +=10;
                  if (at_res) PStr( "OK", &TS);
                  else PStr( "ERROR", &TS);
                  xSemaphoreGive(xColorLCDSemaphore);
               }

#else
      if (at_res)
            {

               lcd8544_putstr(0, 24, "Имя успешно задано ", 0); // вывод первой строки
               if (!screen_auto_refresh) lcd8544_dma_refresh(); //


            }

#endif
   }
   if(strlen(armadaSystem.bluetooth.cmode))//если строка с именем не пустая
   {
#ifdef COLOR_LCD
      if(xSemaphoreTake(xColorLCDSemaphore, (portTickType)(TIC_FQR*2)/*600*/ )== pdTRUE)//если LCD занят, ждем 2 с
               {
                  while (!(SPI3->SR & SPI_SR_TXE)); // Wait for bus free
                  while (SPI3->SR & SPI_SR_BSY);
                  init_spi3();
                  SB(0x36, Reg); //Set Memory access mode
#if          LCD_MODUL_VERSION == 2
         SB((0x08 |(1<<7)|(1<<6)), Dat);
#elif    LCD_MODUL_VERSION == 1
         SB((0x08 /*|(1<<7)*/), Dat);
#endif
                  TS.XPos =  0;
                  TS.YPos +=10;
                  PStr( at_cmode, &TS);
                  PStr( "=", &TS);
                  PStr( armadaSystem.bluetooth.cmode, &TS);
                  xSemaphoreGive(xColorLCDSemaphore);
               }
#endif
      at_res = send_set_at_command(at_cmode,armadaSystem.bluetooth.cmode);

#ifdef COLOR_LCD
      if(xSemaphoreTake(xColorLCDSemaphore, (portTickType)(TIC_FQR*2)/*600*/ )== pdTRUE)//если LCD занят, ждем 2 с
               {
                  while (!(SPI3->SR & SPI_SR_TXE)); // Wait for bus free
                  while (SPI3->SR & SPI_SR_BSY);
                  init_spi3();
                  SB(0x36, Reg); //Set Memory access mode
#if          LCD_MODUL_VERSION == 2
         SB((0x08 |(1<<7)|(1<<6)), Dat);
#elif    LCD_MODUL_VERSION == 1
         SB((0x08 /*|(1<<7)*/), Dat);
#endif
                  TS.XPos =  0;
                  TS.YPos +=10;
                  if (at_res) PStr( "OK", &TS);
                  else PStr( "ERROR", &TS);
                  xSemaphoreGive(xColorLCDSemaphore);
               }
#endif



   }
   if(strlen(armadaSystem.bluetooth.role))//если строка с именем не пустая
   {
#ifdef COLOR_LCD
      if(xSemaphoreTake(xColorLCDSemaphore, (portTickType)(TIC_FQR*2)/*600*/ )== pdTRUE)//если LCD занят, ждем 2 с
               {
                  while (!(SPI3->SR & SPI_SR_TXE)); // Wait for bus free
                  while (SPI3->SR & SPI_SR_BSY);
                  init_spi3();
                  SB(0x36, Reg); //Set Memory access mode
#if          LCD_MODUL_VERSION == 2
         SB((0x08 |(1<<7)|(1<<6)), Dat);
#elif    LCD_MODUL_VERSION == 1
         SB((0x08 /*|(1<<7)*/), Dat);
#endif
                  TS.XPos =  0;
                  TS.YPos +=10;
                  PStr( at_role, &TS);
                  PStr( "=", &TS);
                  PStr( armadaSystem.bluetooth.role, &TS);
                  xSemaphoreGive(xColorLCDSemaphore);
               }
#endif


      at_res = send_set_at_command(at_role,armadaSystem.bluetooth.role);
#ifdef COLOR_LCD
      if(xSemaphoreTake(xColorLCDSemaphore, (portTickType)(TIC_FQR*2)/*600*/ )== pdTRUE)//если LCD занят, ждем 2 с
               {
                  while (!(SPI3->SR & SPI_SR_TXE)); // Wait for bus free
                  while (SPI3->SR & SPI_SR_BSY);
                  init_spi3();
                  SB(0x36, Reg); //Set Memory access mode
#if          LCD_MODUL_VERSION == 2
         SB((0x08 |(1<<7)|(1<<6)), Dat);
#elif    LCD_MODUL_VERSION == 1
         SB((0x08 /*|(1<<7)*/), Dat);
#endif
                  TS.XPos =  0;
                  TS.YPos +=10;
                  if (at_res) PStr( "OK", &TS);
                  else PStr( "ERROR", &TS);
                  xSemaphoreGive(xColorLCDSemaphore);
               }
#endif



   }
   if(strlen(armadaSystem.bluetooth.mac_adress_for_bind))//если строка с именем не пустая
   {

#ifdef COLOR_LCD
      if(xSemaphoreTake(xColorLCDSemaphore, (portTickType)(TIC_FQR*2)/*600*/ )== pdTRUE)//если LCD занят, ждем 2 с
               {
                  while (!(SPI3->SR & SPI_SR_TXE)); // Wait for bus free
                  while (SPI3->SR & SPI_SR_BSY);
                  init_spi3();
                  SB(0x36, Reg); //Set Memory access mode
#if          LCD_MODUL_VERSION == 2
         SB((0x08 |(1<<7)|(1<<6)), Dat);
#elif    LCD_MODUL_VERSION == 1
         SB((0x08 /*|(1<<7)*/), Dat);
#endif
                  TS.XPos =  0;
                  TS.YPos +=10;
                  PStr( "BIND:", &TS);
//                  PStr( "=", &TS);
                  PStr( armadaSystem.bluetooth.mac_adress_for_bind, &TS);
                  xSemaphoreGive(xColorLCDSemaphore);
               }
#endif
      at_res = send_set_at_command(at_bind,armadaSystem.bluetooth.mac_adress_for_bind);
#ifdef COLOR_LCD
      if(xSemaphoreTake(xColorLCDSemaphore, (portTickType)(TIC_FQR*2)/*600*/ )== pdTRUE)//если LCD занят, ждем 2 с
               {
                  while (!(SPI3->SR & SPI_SR_TXE)); // Wait for bus free
                  while (SPI3->SR & SPI_SR_BSY);
                  init_spi3();
                  SB(0x36, Reg); //Set Memory access mode
#if          LCD_MODUL_VERSION == 2
         SB((0x08 |(1<<7)|(1<<6)), Dat);
#elif    LCD_MODUL_VERSION == 1
         SB((0x08 /*|(1<<7)*/), Dat);
#endif
                  TS.XPos =  0;
                  TS.YPos +=10;
                  if (at_res) PStr( "OK", &TS);
                  else PStr( "ERROR", &TS);
                  xSemaphoreGive(xColorLCDSemaphore);
               }
#endif

   }
   if(strlen(armadaSystem.bluetooth.pswd))//если строка с именем не пустая
      {
#ifdef COLOR_LCD
      if(xSemaphoreTake(xColorLCDSemaphore, (portTickType)(TIC_FQR*2)/*600*/ )== pdTRUE)//если LCD занят, ждем 2 с
               {
                  while (!(SPI3->SR & SPI_SR_TXE)); // Wait for bus free
                  while (SPI3->SR & SPI_SR_BSY);
                  init_spi3();
                  SB(0x36, Reg); //Set Memory access mode
#if          LCD_MODUL_VERSION == 2
         SB((0x08 |(1<<7)|(1<<6)), Dat);
#elif    LCD_MODUL_VERSION == 1
         SB((0x08 /*|(1<<7)*/), Dat);
#endif
                  TS.XPos =  0;
                  TS.YPos +=10;
                  PStr( "PASSWORD:", &TS);
//                  PStr( "=", &TS);
                  PStr( armadaSystem.bluetooth.pswd, &TS);
                  xSemaphoreGive(xColorLCDSemaphore);
               }
#endif

         at_res = send_set_at_command(at_pswd,armadaSystem.bluetooth.pswd);
#ifdef COLOR_LCD
      if(xSemaphoreTake(xColorLCDSemaphore, (portTickType)(TIC_FQR*2)/*600*/ )== pdTRUE)//если LCD занят, ждем 2 с
               {
                  while (!(SPI3->SR & SPI_SR_TXE)); // Wait for bus free
                  while (SPI3->SR & SPI_SR_BSY);
                  init_spi3();
                  SB(0x36, Reg); //Set Memory access mode
#if          LCD_MODUL_VERSION == 2
         SB((0x08 |(1<<7)|(1<<6)), Dat);
#elif    LCD_MODUL_VERSION == 1
         SB((0x08 /*|(1<<7)*/), Dat);
#endif
                  TS.XPos =  0;
                  TS.YPos +=10;
                  if (at_res) PStr( "OK", &TS);
                  else PStr( "ERROR", &TS);
                  xSemaphoreGive(xColorLCDSemaphore);
               }
#endif

      }
   bt_set_at_commands_mode(false);
   USART_DeInit(USART1);
   if(armadaSystem.bluetooth.baudrate) InitCOM1(armadaSystem.bluetooth.baudrate);
   else InitCOM1(BAUDRATE);
   bt_reset();
   vTaskDelay(TIC_FQR*2);
#ifndef    COLOR_LCD
   BL_OFF;
#endif
}



Стало
Код:

void configure_bluetooth(void)//настраиваем блютус модуль
{

   bool at_res;
   unsigned char line_counter=0;
   unsigned char line_on_screen=display_vertical_screen_resolution()/display_standard_symbol_height();


   USART_DeInit(USART1);
   InitCOM1(38400);
   bt_set_at_commands_mode(true);
    vTaskDelay(100);
    bt_reset();
    BL_ON;
   display_put_string(0,line_counter++, (const unsigned char *)"Set BT");

    at_res = send_test_at_command();

    if(!at_res){
       if(!(line_counter<line_on_screen)){
           vTaskDelay(150);
           line_counter=0;
           display_clear_screen();
       }
       display_put_string(0,display_standard_symbol_height()*(line_counter++),(const unsigned char*)"38400: Test error");

       USART_DeInit(USART1);
       InitCOM1(9600);
       vTaskDelay(100);
    }
   if(strlen((const char*)armadaSystem.bluetooth.name))//если строка с именем не пустая
   {

       if(!((line_counter+1)<line_on_screen)){
           vTaskDelay(150);
           line_counter=0;
           display_clear_screen();
       }
      at_res = send_set_at_command((char*)at_name,(char*)armadaSystem.bluetooth.name);
      display_put_string(0,display_standard_symbol_height()*(line_counter),(const unsigned char*)"Name: ");
      display_put_string(display_standard_symbol_width()*5,display_standard_symbol_height()*(line_counter++),(const unsigned char*)armadaSystem.bluetooth.name);

      if (at_res)
         {
            display_put_string(0,display_standard_symbol_height()*(line_counter++),(const unsigned char*)"OK");
         }
      else
         {
            display_put_string(0,display_standard_symbol_height()*(line_counter++),(const unsigned char*)"ERROR");
         }
   }
   if(strlen((const char*)armadaSystem.bluetooth.cmode))//если строка с именем не пустая
   {

      if(!((line_counter+1)<line_on_screen)){
           vTaskDelay(150);
           line_counter=0;
           display_clear_screen();
       }

      at_res = send_set_at_command((char*)at_cmode,(char*)armadaSystem.bluetooth.cmode);
      display_put_string(0,display_standard_symbol_height()*(line_counter),at_cmode);
      display_put_string(display_standard_symbol_width()*8,display_standard_symbol_height()*(line_counter),(const unsigned char*)"=");
      display_put_string(display_standard_symbol_width()*9,display_standard_symbol_height()*(line_counter++),(const unsigned char*)armadaSystem.bluetooth.cmode);
      if (at_res)
               {
                  display_put_string(0,display_standard_symbol_height()*(line_counter++),(const unsigned char*)"OK");
               }
            else
               {
                  display_put_string(0,display_standard_symbol_height()*(line_counter++),(const unsigned char*)"ERROR");
               }
   }
   if(strlen((const char*)armadaSystem.bluetooth.role))//если строка с именем не пустая
   {
      if(!((line_counter+1)<line_on_screen)){
           vTaskDelay(150);
           line_counter=0;
           display_clear_screen();
       }
      at_res = send_set_at_command((char*)at_role,(char*)armadaSystem.bluetooth.role);
      display_put_string(0,display_standard_symbol_height()*(line_counter),at_role);
      display_put_string(display_standard_symbol_width()*7,display_standard_symbol_height()*(line_counter),(const unsigned char*)"=");
      display_put_string(display_standard_symbol_width()*8,display_standard_symbol_height()*(line_counter++),(const unsigned char*)armadaSystem.bluetooth.role);
      if (at_res)
               {
                  display_put_string(0,display_standard_symbol_height()*(line_counter++),(const unsigned char*)"OK");
               }
            else
               {
                  display_put_string(0,display_standard_symbol_height()*(line_counter++),(const unsigned char*)"ERROR");
               }
   }
   if(strlen((const char*)armadaSystem.bluetooth.mac_adress_for_bind))//если строка с именем не пустая
   {
      if(!((line_counter+1)<line_on_screen)){
           vTaskDelay(150);
           line_counter=0;
           display_clear_screen();
       }
      at_res = send_set_at_command((char*)at_bind,( char*)armadaSystem.bluetooth.mac_adress_for_bind);
      display_put_string(0,display_standard_symbol_height()*(line_counter),(const unsigned char*)"BIND:");
      display_put_string(display_standard_symbol_width()*5,display_standard_symbol_height()*(line_counter++),(const unsigned char*)armadaSystem.bluetooth.mac_adress_for_bind);
      if (at_res)
         {
            display_put_string(0,display_standard_symbol_height()*(line_counter++),(const unsigned char*)"OK");
         }
      else
         {
            display_put_string(0,display_standard_symbol_height()*(line_counter++),(const unsigned char*)"ERROR");
         }
   }
   if(strlen((const char*)armadaSystem.bluetooth.pswd))//если строка с именем не пустая
      {

      if(!((line_counter+1)<line_on_screen)){
           vTaskDelay(150);
           line_counter=0;
           display_clear_screen();
       }
         at_res = send_set_at_command((char*)at_pswd,(char*)armadaSystem.bluetooth.pswd);
         display_put_string(0,display_standard_symbol_height()*(line_counter),(const unsigned char*)"PASSWORD:");
         display_put_string(display_standard_symbol_width()*9,display_standard_symbol_height()*(line_counter++),(const unsigned char*)armadaSystem.bluetooth.pswd);
         if (at_res)
         {
            display_put_string(0,display_standard_symbol_height()*(line_counter++),(const unsigned char*)"OK");
         }
         else
         {
            display_put_string(0,display_standard_symbol_height()*(line_counter++),(const unsigned char*)"ERROR");
         }
      }
   bt_set_at_commands_mode(false);
   GPIO_ResetBits(GPIOC, GPIO_Pin_4);//
   USART_DeInit(USART1);
   if(armadaSystem.bluetooth.baudrate) InitCOM1(armadaSystem.bluetooth.baudrate);
   else InitCOM1(BAUDRATE);
//   bt_reset();
   vTaskDelay(TIC_FQR*2);
#ifndef    COLOR_LCD
   BL_OFF;
#endif
}





Работы ещё много, но процесс идет...
;) :)

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTArmada
СообщениеДобавлено: 23 авг 2017, 09:48 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 27 ноя 2011, 00:22
Сообщений: 1569
Откуда: Україна
Pingvin писал(а):
Причёсываю код помаленьку.
Добился, казалось, невозможного - всего 3 предупреждения при сборке! :)
....
....
...Одно тоже непонятное, так как все что надо подключено, а компилятор говорит - не задекларирована функция....


Возможно функция есть в *.с-файле, но не задекларирована в *.h

_________________
Нет предела совершенству, но ресурсы заканчиваются быстро.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTArmada
СообщениеДобавлено: 23 авг 2017, 10:32 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Pacifist писал(а):
Pingvin писал(а):
Причёсываю код помаленьку.
Добился, казалось, невозможного - всего 3 предупреждения при сборке! :)
....
....
...Одно тоже непонятное, так как все что надо подключено, а компилятор говорит - не задекларирована функция....


Возможно функция есть в *.с-файле, но не задекларирована в *.h

Она как то хитро задекларирована
Код:
_PTR    _EXFUN(memmem, (const _PTR, size_t, const _PTR, size_t));


рядом же
Код:
_PTR    _EXFUN(mempcpy,(_PTR, const _PTR, size_t));


на mempcpy не ругается.

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTArmada
СообщениеДобавлено: 24 авг 2017, 10:12 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Я возвращаюсь к тем скриптов.
Есть задумка: пишем скрипты-обработчики разных событий (язык можно придумать самим).
Скрипты компилятся в байт-код, который скидываем на SD карту.
Отводим в оперативке массивы под это безобразие - благо оперативки 64 кило, хватит.
В самой прошивке при включении загружаем с SD карты байт-коды в эти массивы и обработчики событий при наступлении таковых выполняют свой байт-код (из оперативки).

Причешу исходники, буду думать в этом направлении.

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTArmada
СообщениеДобавлено: 24 авг 2017, 23:55 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 27 ноя 2011, 00:22
Сообщений: 1569
Откуда: Україна
Сделайте как в Qt сигнально-слотовый механизм. Слоты заранее определены и зависят от железа (те же таймеры, ИК приёмник, выходные GPIO и т.д.).
А в данных "программы устройства" задавайте им правила что с чем соединить :)

_________________
Нет предела совершенству, но ресурсы заканчиваются быстро.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTArmada
СообщениеДобавлено: 25 авг 2017, 10:15 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Pacifist писал(а):
Сделайте как в Qt сигнально-слотовый механизм. Слоты заранее определены и зависят от железа (те же таймеры, ИК приёмник, выходные GPIO и т.д.).
А в данных "программы устройства" задавайте им правила что с чем соединить :)

Совершенно верно.

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 1089 ]  На страницу Пред.  1 ... 98, 99, 100, 101, 102, 103, 104 ... 109  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB